使用源码在CentOS上安装PostgreSQL

经过

由于我在包管理器(如yum或apt)中安装起来非常方便的,但由于我有机会在CentOS7.5中从源代码安装PostgreSQL,这也是我大约20年来第一次这样做,所以我记下了一些备忘录。

环境

# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

步骤

暫時以以下步驟完成了。

准备帐户

为了使用PostgreSQL,我们需要准备一个专用账户。我们还要为该账户创建一个名为“postgres”的账户,并指定其主目录。

# useradd -m -d /home/postgres postgres

我也会设置密码。

# passwd postgres
ユーザー postgres のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

准备必要的工具

准备获取源代码并编译所需的工具。
(我们可以使用yum完成这个任务!)

# yum -y groupinstall Development Tools
# yum -y install readline-devel
# yum -y install zlib-devel zlib wget vim

获取PostgreSQL的源代码

我使用wget进行获取。
由于在官方网站上可以查看到版本列表,所以我选择了v12.4版本。
PostgreSQL文件浏览器。

# wget https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz
...
100%[==========================================================>] 27,070,070   564KB/s 時間 72s
2020-09-30 17:46:23 (365 KB/s) - `postgresql-12.4.tar.gz' へ保存完了 [27070070/27070070]

源代码的展开

由于以焦油凝固,所以将其展开使其变得柔软。

# tar xvfz postgresql-12.4.tar.gz
...
postgresql-12.4/configure.in
postgresql-12.4/INSTALL

编译工作

编译已展开的源代码。(20年来的工作让我感到亲切)

# cd postgresql-12.4
# ./configure
# make
# make install
...
PostgreSQL installation complete.

切换账户

在安装完成后,可以使用先前创建的“postgres”帐户来操作PostgreSQL。

# exit
login:postgres
Password:
$ 

设置环境变量

由于未将安装的PostgreSQL的路径添加到通行路径中,因此请编辑.bash_profile等文件并将路径加入通行路径。

$ vim .bash_profile

编辑内容↓: 只需要一个选项,用中文将以下内容改写。

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH

登出 → 虽然可以再次登录,但觉得麻烦,所以选择在源代码处重新载入。

$ source .bash_profile

我会检查是否存在与PostgreSQL相关的命令。

$ which psql
/usr/local/pgsql/bin/psql

$ which initdb
/usr/local/pgsql/bin/initdb

路径通了!

尝试创建数据库群集。

在PostgreSQL中,首先需要创建数据库集群,因此可以通过指定目录来进行创建。

$ initdb -D /home/postgres/data --no-locale
...
Success. You can now start the database server using:
    pg_ctl -D /home/postgres/data -l logfile start

$ ls -l /home/postgres
合計 4
drwx------. 19 postgres postgres 4096  9月 30 18:12 data

尝试启动数据库集群。

使用创建的数据库集群并启动PostgreSQL。

$ pg_ctl start -D /home/postgres/data
...
 done
server started
$ 

让我们使用psql连接到数据库并尝试执行SQL语句!

我已经启动了,所以试试执行SQL语句。先用psql连接。

$ psql
psql (12.4)
Type "help" for help.
postgres=#

由于可以输入SQL文,所以快速尝试一下输入。

postgres=# SELECT now();
              now
-------------------------------
 2020-09-30 18:20:14.031968+09
(1 row)
postgres=# \q
$  

出来了。好久不见>PostgreSQL

总结

使用正直的软件包管理工具来准备非常轻松。
如果出于某些原因需要从源代码进行编译,我们只能边查阅手册边完成工作,所以让我们加油吧!

第16章 从源代码安装 psql 文档。

广告
将在 10 秒后关闭
bannerAds