PostgreSQL源码文件的获取以及编译安装

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文件,打开后可以看到编译安装的流程。由于我们需要调试,因此安装过程会多点步骤,但大体是一致的。
说明文件

  1. 首先是进行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两个参数。不放心可以去src文件夹中的makefile.global中查看修改输入指令后需要等待完成即可,可能会报错提示缺少某些库,按照提示去找到相应的库安装即可。
  1. 接下来进行make

    make -j2
    

    make需要消耗的时间较长,因此推荐采用多核编译,也就是-jx,x为你的核数。整个过程会耗时若干分钟。
    make成功
    成功后会提示如上界面。但是我对最新版本的make一直出现问题,不会出现上述语句,因此我回退到了10.0版本进行make,终于成功。

  2. 接下来进行make install

    make install -j2
    

    同理,仍推荐多线程安装。安装成功
    install成功后会出现上述语句。

  3. 接下来进行数据库的初始化

    sudo adduser <username>
    mkdir psql/data
    psql/bin/initdb -D psql/data
    

    在这里插入图片描述
    初始化成功后即如上界面,输入相应指令即可启动数据库服务

  4. 接下来进行数据库的启动

    psql/bin/pg_ctl -D psql/data -l logfile start
    

    启动成功
    如上图所示,即启动成功。
    可以输入如下指令,查看进程是否在运行。

    ps ux|grep postgres
    

    在这里插入图片描述
    可以看到进程成功运行。

  5. 接下来进入数据库

    psql/bin/createdb test
    psql/bin/psql
    

    如此,即创建了一个名为test的数据库,并且进入到数据库中。
    成功进入
    输入\q即可退出来。

  6. 接下来就是关闭数据库

    psql/bin/pg_ctl -D psql/data stop
    


    如上图,即成功退出。至此,postgresql的下载、解压、编译、安装、启动、关闭的流程就走完了。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值