源码构建gpdb - 9dian/Index GitHub Wiki
OS: Centos6.7 root
安装python2.7.12,但同时兼容yum使用python2.6.6
[root@dev /opt]$ yum groupinstall "Development Tools" -y
[root@dev /opt]$ yum install zlib* openssl openssl-devel sqlite-devel -y
[root@dev /opt]$ yum install -y boost-system-1.41.0-28.el6.x86_64 boost-thread-1.41.0-28.el6.x86_64 policycoreutils-python
[root@dev /opt]$ wget http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
[root@dev /opt]$ mv Python-2.7.12.tar.xz /usr/local
[root@dev local]$ cd /usr/local
[root@dev local]$ unxz Python-2.7.12.tar.xz
[root@dev local]$ tar -vxf Python-2.7.12.tar
[root@dev /Python-2.7.12]$ ./configure --prefix=/usr/local/python --enable-shared --enable-loadable-sqlite-extensions --with-zlib
#修改Setup.dist文件
[root@dev /Python-2.7.12]$ vim ./Modules/Setup.dist
#找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注释并保存`
[root@dev /Python-2.7.12]$ make && make install
[root@dev ~]$ mv /usr/bin/python /usr/bin/python2.6.6
[root@dev ~]$ ln -s /usr/local/python/bin/python2.7 /usr/bin/python
#修改yum文件,将第一行的#!/usr/bin/python修改成 #!/usr/bin/python2.6.6
[root@dev ~]$ vim /usr/bin/yum
#查看python版本,已经更新为2.7.12
[root@dev ~]$ python -V
# 可选
[root@dev ~]$ bash -s 'cat >> /etc/ld.so.conf << eof
/usr/local/lib
/usr/local/lib64
eof'
[root@dev ~]$ /sbin/ldconfig
[root@dev ~]$ /sbin/ldconfig -v
[root@dev ~]$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[root@dev ~]$ python get-pip.py
[root@dev ~]$ pip -V
https://github.com/greenplum-db/gpdb/tree/5X_STABLE
https://github.com/greenplum-db/gpdb/tree/5.9.0
[root@dev ~]$ pip install conan
https://centos.pkgs.org/6/epel-x86_64/cmake3-3.6.1-3.el6.x86_64.rpm.html
# Download the latest epel-release rpm from
[root@dev ~]$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#Install epel-release rpm:
[root@dev ~]$ rpm -Uvh epel-release*rpm
[root@dev ~]$ yum install cmake3
[root@dev ~]$ ln -s /usr/bin/cmake3 /usr/bin/cmake
#README.CentOS.bash (https://github.com/greenplum-db/gpdb/blob/master/README.CentOS.bash)
[root@dev ~]$ sudo yum install -y epel-release [root@dev ~]$ sudo yum install -y \ apr-devel \ bison \ bzip2-devel \ cmake3 \ flex \ gcc \ gcc-c++ \ krb5-devel \ libcurl-devel \ libevent-devel \ libkadm5 \ libyaml-devel \ libxml2-devel \ openssl-devel \ perl-ExtUtils-Embed \ readline-devel \ xerces-c-devel \ zlib-devel
#python-dependencies.txt (https://github.com/greenplum-db/gpdb/blob/master/python-dependencies.txt)
[root@dev ~]$ pip install argparse==1.2.1 \ behave==1.2.4 \ ecdsa==0.13 \ epydoc==3.0.1 \ lockfile==0.9.1 \ logilab-astng==0.20.1 \ logilab-common==0.50.1 \ MarkupSafe==1.0 \ mock==1.0.1 \ paramiko==1.18.1 \ parse==1.8.2 \ psutil==4.0.0 \ pycrypto==2.6.1 \ pylint==0.21.0 \ setuptools==36.6.0 \ unittest2==0.5.1
===================================================================
Orca can now be installed on the local system using "make install" and be used as any normal system library
If you'd rather compile GPDB using ORCA in it's current location and then
install ORCA into the gpdb installation location then first run the top
level configure as follows:
LD_LIBRARY_PATH=/opt/gpdb-5.9.0/depends/build/lib ./configure
--with-libraries=/opt/gpdb-5.9.0/depends/build/lib
--with-includes=/opt/gpdb-5.9.0/depends/build/include
Then run "make". Then run "LD_LIBRARY_PATH=/opt/gpdb-5.9.0/depends/build/lib make install"
These steps should work on both MacOS and Linux
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-6-toolchain
#echo 'source scl_source enable devtoolset-6' >> ~/.bashrc
scl enable devtoolset-6 bash
# Configure build environment to install at /usr/local/gpdb ./configure --with-perl --with-python --with-libxml --with-gssapi --prefix=/usr/local/gpdb # Compile and install make -j8 make -j8 install # Bring in greenplum environment into your running shell source /usr/local/gpdb/greenplum_path.sh
[gpadmin@dev ~]$ cd gpAux/gpdemo
[gpadmin@dev gpdemo]$ . /usr/local/greenplum-db/greenplum_path.sh
#export DATADIRS=/home/gpadmin/gp_cluster_demo
[gpadmin@dev gpdemo]$ DATADIRS=/tmp/gpdb-cluster MASTER_PORT=15432 PORT_BASE=25432 make cluster
[gpadmin@dev gpdemo]$ make cluster
[gpadmin@dev gpdemo]$ psql -p 15432 postgres
[gpadmin@dev gpdemo]$ make clean
在没有网络的机器编译,安装。
rpmrebuild http://rpmrebuild.sourceforge.net/
yum install rpmrebuild
rpmrebuild -d . centos-release-scl-7-3.el6.centos.noarch
rpmrebuild -d . centos-release-scl-rh-2-3.el6.centos.noarch
rpmrebuild -d . devtoolset-6-6.1-1.el6.x86_64
rpmrebuild -d . devtoolset-6-binutils-2.27-10.el6.1.x86_64
rpmrebuild -d . devtoolset-6-dwz-0.12-1.el6.x86_64
rpmrebuild -d . devtoolset-6-dyninst-9.2.0-4.el6.x86_64
rpmrebuild -d . devtoolset-6-elfutils-0.168-3.el6.x86_64
rpmrebuild -d . devtoolset-6-elfutils-libelf-0.168-3.el6.x86_64
rpmrebuild -d . devtoolset-6-elfutils-libs-0.168-3.el6.x86_64
rpmrebuild -d . devtoolset-6-gcc-6.3.1-3.1.el6.x86_64
rpmrebuild -d . devtoolset-6-gcc-c++-6.3.1-3.1.el6.x86_64
rpmrebuild -d . devtoolset-6-gcc-gfortran-6.3.1-3.1.el6.x86_64
rpmrebuild -d . devtoolset-6-gdb-7.12.1-48.el6.x86_64
rpmrebuild -d . devtoolset-6-libquadmath-devel-6.3.1-3.1.el6.x86_64
rpmrebuild -d . devtoolset-6-libstdc++-devel-6.3.1-3.1.el6.x86_64
rpmrebuild -d . devtoolset-6-ltrace-0.7.91-13.el6.x86_64
rpmrebuild -d . devtoolset-6-make-4.1-3.el6.x86_64
rpmrebuild -d . devtoolset-6-memstomp-0.1.5-5.el6.x86_64
rpmrebuild -d . devtoolset-6-oprofile-1.1.0-4.el6.x86_64
rpmrebuild -d . devtoolset-6-perftools-6.1-1.el6.x86_64
rpmrebuild -d . devtoolset-6-runtime-6.1-1.el6.x86_64
rpmrebuild -d . devtoolset-6-strace-4.12-3.el6.x86_64
rpmrebuild -d . devtoolset-6-systemtap-3.0-8s.el6.x86_64
rpmrebuild -d . devtoolset-6-systemtap-client-3.0-8s.el6.x86_64
rpmrebuild -d . devtoolset-6-systemtap-devel-3.0-8s.el6.x86_64
rpmrebuild -d . devtoolset-6-systemtap-runtime-3.0-8s.el6.x86_64
rpmrebuild -d . devtoolset-6-toolchain-6.1-1.el6.x86_64
rpmrebuild -d . devtoolset-6-valgrind-3.12.0-1.el6.x86_64
使用rpmrebuild生成的scl-utils-201209XXX.rpm会有摘要不匹配问题。
[root@11_2_smdw rpms]# rpm -Uvh scl-utils-20120927-29.el6_9.x86_64.rpm Preparing... ########################################### [100%] 1:scl-utils ########################################### [100%] error: unpacking of archive failed on file /usr/bin/scl;5b3f0feb: cpio: Digest mismatch
下载scl-utils-20120927-27.el6_6.x86_64.rpm: http://vault.centos.org/6.6/updates/x86_64/Packages/?C=S;O=A