使用源码在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 文档。