2021SC@SDUSC
获取文件
官网下载链接
点击上面网页后,可以看到如下界面
由于我们需要源代码,因此注意Source code部分,看到file browser这个超链接,点击之后可以进入版本选择界面。如下图
可以选择自己想要的版本,我是选择了最新版本的v14beta3(我make不成功,遂修改为v12.0版本)。点进去后可以看到如下的界面
可以看到有很多文件,但其实可以分为两个部分,后缀名为tar.bz2.*的和后缀名为tar.gz.*的两个部分。我们只需要选择一个部分即可——因为bz2和gz都是unix系统下的压缩文件,区别就是前者压缩率更高。其实md5和sha256文件也无需下载,只是为了用户在本地验证文件完整性用的。因此,我只下载了 postgresql-14beta3.tar.bz2 这个文件到linux。
解压
tar -xjf postgresql-12.0.tar.bz2
注意要在当前目录打开命令行,或者cd到当前目录,或者输入文件的绝对路径,输入指令后就可以将刚才的压缩文件解压到当前目录。
编译以及初始化
首先进入到刚才解压生成的文件夹,可以看到一个INSTALL文件,打开后可以看到编译安装的流程。由于我们需要调试,因此安装过程会多点步骤,但大体是一致的。
- 首先是进行configure,目的是生成各种makefile,为下一步make作准备。
./configure --prefix=`pwd`/psql --enable-debug --enable-thread-safety --enable-cassert CFLAGS='-O0'
更详细的参数解析
- prefix是更改安装目录
- debug是开启debug,方便调试
- cassert是开发检查用
- CFLAGS这个是取消代码优化,方便后续代码的追踪。为了确保修改成功,需要在执行完这个指令后,前往src文件夹中生成的makefile.global文件中查找CFLAGS找到如下图所示位置,看看是否有-g和-O0两个参数。
输入指令后需要等待完成即可,可能会报错提示缺少某些库,按照提示去找到相应的库安装即可。
-
接下来进行make
make -j2
make需要消耗的时间较长,因此推荐采用多核编译,也就是-jx,x为你的核数。整个过程会耗时若干分钟。
成功后会提示如上界面。但是我对最新版本的make一直出现问题,不会出现上述语句,因此我回退到了10.0版本进行make,终于成功。 -
接下来进行make install
make install -j2
同理,仍推荐多线程安装。
install成功后会出现上述语句。 -
接下来进行数据库的初始化
sudo adduser <username> mkdir psql/data psql/bin/initdb -D psql/data
初始化成功后即如上界面,输入相应指令即可启动数据库服务 -
接下来进行数据库的启动
psql/bin/pg_ctl -D psql/data -l logfile start
如上图所示,即启动成功。
可以输入如下指令,查看进程是否在运行。ps ux|grep postgres
可以看到进程成功运行。 -
接下来进入数据库
psql/bin/createdb test psql/bin/psql
如此,即创建了一个名为test的数据库,并且进入到数据库中。
输入\q即可退出来。 -
接下来就是关闭数据库
psql/bin/pg_ctl -D psql/data stop
如上图,即成功退出。至此,postgresql的下载、解压、编译、安装、启动、关闭的流程就走完了。