Kの系譜

ママは肉食 パパは草食 娘は雑食

【OSS】PostgreSQL 10 ソースからのインストール

f:id:kkkklog:20171026000305j:plain

1. 概要

Oracle Enterprise Linux 7 on Oracle VM VirtualBox での PostgreSQL 10 をソースからインストールする方法を紹介

2. 環境

ホストマシン

  • CPU : Intel (R) Core (TM) i7-6700 CPU @ 3.40GHz 3.40 GHz
  • メモリ : 32GB
  • ディスク : 1.8TB
  • OS : Windows 7 Professional Service Pack 1 (64 bit)
  • Oracle VM VirtualBox 5.1.28 r117968 (Qt5.6.2)
  • Oracle VM VirtualBox 5.1.28 Oracle VM VirtualBox Extension Pack

ゲストマシン

  • Oracle Enterprise Linux 7.4 (64 bit)
  • PostgreSQL 10

3. 参考

PostgreSQL 9.6.xをインストール(ソースからコンパイル)for CentOS 7.3 - Qiita

ソースファイルからPostgreSQLをインストールする手順(前編) | アシスト

PostgreSQL 9.6.5文書 第16章 ソースコードからインストール

PostgreSQL: Documentation: 10: PostgreSQL 10.1 Documentation

4. PostgreSQL 10のインストール

大まかな流れは以下

4-1. ソフトウェアの入手
4-2. ソフトウェアの確認
4-3. ユーザ作成
4-4. インストール作業
4-5. 環境変数の設定
4-6. 初期設定
4-7. 起動確認

4-1. ソフトウェアの入手

PostgreSQL 10 のソースは、PostgreSQL sourceから 入手
※利用規定は、Software eDelivery Cloudでダウンロード時に
 表示されるライセンス規約を確認して下さい

4-2. ソフトウェアの確認

PostgreSQL が入っているかの確認

# rpm -qa |grep postgres

存在する場合は、「rpm -e」コマンドで削除します
以下のパッケージを事前にインストールします

# yum install readline readline-devel gcc zlib-devel

パッケージが不足していると以下のエラーが出たりします

$ ./configure --prefix=/usr/local/pgsql

configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

4-3. ユーザ作成

PostgreSQLインストール用のユーザを作成します

# useradd -m -d /home/postgres postgres

4-4. インストール作業

# cd /usr/local/src
# tar xvzf postgresql-10.0.tar.gz
# chown -R postgres:postgres postgresql-10.0
# mkdir /usr/local/pgsql
# chown -R postgres:postgres /usr/local/pgsql
$ su - postgres
$ cd /usr/local/src/postgresql-10.0
$ ./configure --prefix=/usr/local/pgsql
$ less config.log
$ make
# make instal

必要に応じてログを取得しましょう

以下のコマンドだと、標準出力もログも取得出来てい感じ

$ make 2>&1 | tee make.log
# make install 2>&1 | tee make-install.log

ディレクトリが作成されたことを確認

# ls -l /usr/local/pgsql/
合計 12
drwxr-xr-x. 2 root root 4096 10月 25 23:02 bin
drwxr-xr-x. 4 root root 4096 10月 25 23:02 include
drwxr-xr-x. 4 root root 4096 10月 25 23:02 lib
drwxr-xr-x. 3 root root   24 10月 25 23:02 share

4-5. 環境変数の設定

.bash_profile に以下を追記します

LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH

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

4-6. データベースクラスタ作成

データベースクラスタを作成します
まずはデータベース用のディレクトリを作成

# mkdir /usr/local/pgsql/data
# chown postgres:postgres /usr/local/pgsql/data
# ls -ld /usr/local/pgsql/data

データベースクラスタを作成

$ initdb -D /usr/local/pgsql/data --encoding=utf8 --no-locale

以下のメッセージで正常完了を確認

Success. You can now start the database server using:

    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

4-7. 起動確認

最後に起動確認

$ pg_ctl -D /usr/local/pgsql/data/ -l pgsql.log start
waiting for server to start.... done
server started

$ psql
psql (10.0)
Type "help" for help.

postgres=# select version();
                                                 version

---------------------------------------------------------------------------------------------------------
 PostgreSQL 10.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
(1 row)

postgres=# \q

PostgreSQL 10 ソースからのインストールはこれで終了です

PostgreSQL 10 新機能

PostgreSQL 10 新機能の検証は以下を見て下さい

【OSS】PostgreSQL 10 パーティションInsert性能検証 - Kの系譜

ほなまた