0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOSにPostgreSQLをソースコードからインストールする

Last updated at Posted at 2020-09-30

経緯

パッケージ管理(yumやapt等)で楽してインストールしたかったのですが、CentOS7.5にソースコードから20年ぶりぐらいにPostgreSQLをインストールする機会があったのでメモ。

環境

# 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 File Browser

# 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で固まってるので柔らかく展開します。

# 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.

アカウントの切り替え

インストール作業後、PostgreSQLの操作は先に作ったアカウント「postgres」で行います。

# exit
login:postgres
Password:
$ 

環境変数を設定

インストールしたPostgreSQLへのPATHが通ってないので、.bash_profileなど編集し
PATHを通します。

$ 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で再読み込みします。

$ source .bash_profile

PostgreSQL関係のコマンドがあるか確認してみます。

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

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

PATH通ってる~!

データベースクラスタを作成してみる。

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ドキュメント

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?