2018年4月23日月曜日

PostgreSQL9.6.9 ソースからのインストール 1/3

わざわざソースからインストールする必要性はないのですが、勉強がてらソースからインストールしました。

まずはPostgreSQLが導入されているか確認します。
# rpm -qa | grep postgres

もしPostgreSQLが存在していたら、次のコマンドで削除しておきます。
# sudo yum -y remove postgresql

コンパイルに必要なgcc、readline-devel、zlib-develをインストールします。
# yum -y install gcc
# yum -y install readline-devel zlib-devel

PostgreSQL のコンパイルや実行に使用するユーザ postgres を作成します。
# useradd postgres
# passwd postgres

ソースコードをダウンロードします。
# cd /usr/local/src/
# wget https://ftp.postgresql.org/pub/source/v9.6.9/postgresql-9.6.9.tar.gz

展開します。
# tar xzf postgresql-9.6.9.tar.gz

オーナーを変えるます。
# chown -R postgres /usr/local/src/postgresql-9.6.9

インストール先ディレクトリを作成し、オーナーを変えます。
# mkdir /usr/local/pgsql9.6.9
# chown postgres /usr/local/pgsql9.6.9

今後発生するVupによるパス差分をシンボリックリンクで吸収します。
# unlink /usr/local/pgsql
# ln -s /usr/local/pgsql9.6.9 /usr/local/pgsql

コンパイルの準備として、スイッチユーザーとディレクトリ移動します。
# su - postgres
$ cd /usr/local/src/postgresql-9.6.9

インストール先を指定して、Makefileを生成します。
$ ./configure --prefix=/usr/local/pgsql

コンパイル
$ make world

インストール
$ make install-world

worldを指定しますと、contribモジュールやドキュメントを含めてコンパイルします。

postgresユーザーの環境変数を設定します。
(postgresユーザー以外を使用する場合はそのユーザーも設定する。)
$ vi /home/postgres/.bash_profile
以下の内容を最下部に書いて保存します。
PGHOME=/usr/local/pgsql
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/LIB:$LD_LIBRARY_PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export PGDATA=/usr/local/pgsql/data

環境変数を反映させます。
$ . ~/.bash_profile

ソースからのインストールは以上です。 DBの設定は次回に続きます。