PostgreSQL(9.2.4)のインストール
No

概要

対象

ユーザ

1 gccのインストール

PostgreSQLサーバ

root

2 makeのインストール

PostgreSQLサーバ

root

3 zlibのインストール

PostgreSQLサーバ

root

4 readlineのインストール

PostgreSQLサーバ

root

5 ｌibxmlのインストール

PostgreSQLサーバ

root

ページ 1

PostgreSQL(9.2.4)のインストール

6

PostgreSQLの管理者ユーザの作成

PostgreSQLサーバ

root

7

PostgreSQLのソースディレクト
PostgreSQLサーバ
リの作成

root

8

「postgresql-9.2.4.tar.gz」のPostgreSQLサーバ
入手

postgres9「postgresql-9.2.4.tar.gz」のPostgreSQLサーバ
展開

postgres10 configureスクリプトの実行

PostgreSQLサーバ

postgres

11 コンパイルの実行

PostgreSQLサーバ

postgres12 コンパイルのチェック

PostgreSQLサーバ

postgres13 インストール

PostgreSQLサーバ

root

ページ 2

PostgreSQL(9.2.4)のインストール

14

環境設定
(~postgres/.bash_profile)

PostgreSQLサーバ

postgres

環境設定
15 (~postgres/.postgres_profil PostgreSQLサーバ
e)postgres

データベース格納ディレクトリ
の作成

PostgreSQLサーバ

root

17 データベースクラスタの作成

PostgreSQLサーバ

postgres18 ログ出力先ディレクトリの作成

PostgreSQLサーバ

postgres

アーカイブログ格納ディレクトリ
PostgreSQLサーバ
作成

postgres

16

19

ページ 3

PostgreSQL(9.2.4)のインストール

20

PostgreSQLの設定ファイルのPostgreSQLサーバ
変更

postgres21

postgresqlの起動スクリプトのPostgreSQLサーバ
修正

root

22

postgresqlのサービス化(自動起動設定)

root

PostgreSQLサーバ

ページ 4

PostgreSQL(9.2.4)のインストール
コマンド# yum install gcc# yum install make# yum install zlib zlib-devel# yum install readline readline-devel# yum install libxml2 libxml2-devel

ページ 5

PostgreSQL(9.2.4)のインストール# useradd postgres# passwd postgres[新規パスワードを入力]# su - postgres# mkdir /usr/local/src/postgresql-9.2.4# chown postgres:postgres /usr/local/src/postgresql-9.2.4# cd /usr/local/src/# wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql9.2.4.tar.gz# su - postgres$ cd /usr/local/src/$ tar xvzf postgresql-9.2.4.tar.gz$ cd /usr/local/src/postgresql-9.2.4$ ./configure --with-libxml$ gmake world(略)
PostgreSQL, contrib, and documentation successfully made. Readyto install.

$ gmake check(略)============== shutting down postmaster=====================================All 131 tests passed.
=======================(略)# cd /usr/local/src/postgresql-9.2.4# gmake install-world(略)
PostgreSQL, contrib, and documentation installation complete.
#chown postgres:postgres -R /usr/local/pgsql/

ページ 6

PostgreSQL(9.2.4)のインストール$ vi ~postgres/.bash_profile(以下の値を追加)
if [ -f ~/.postgres_profile ]; then. ~/.postgres_profile
fi
PATH=$PATH:$HOME/bin
export PATH

$ vi ~postgres/.postgres_profile
export PATH
export PATH=/usr/local/pgsql/bin:$PATH
export MANPATH=/usr/local/pgsql/share/man:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PGDATA=/home/postgres/data# mkdir /home/postgres/data/# chown postgres:postgres /home/postgres/data/$ initdb -E UTF-8 --pgdata=/home/postgres/data/ --no-locale
The files belonging to this database system will be owned by user
"postgres".
This user must also own the server process.
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /home/postgres/data ... ok[省略]
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A,or--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:postgres -D /home/postgres/data/orpg_ctl -D /home/postgres/data/ -l logfile start$ mkdir /home/postgres/data/pg_log$ mkdir /home/postgres/pg_archivelog

ページ 7

PostgreSQL(9.2.4)のインストール$ vi /home/postgres/data/postgresql.conf(以下の値に変更)#archive_mode = off#archive_command = ''#logging_collector = off#listen_addresses = 'localhost'#log_line_prefix = ''#log_autovacuum_min_duration = -1
wal_level = minimal↓archive_mode = onarchive_command = 'cp %p /home/postgres/pg_archivelog/%f'logging_collector = onlisten_addresses = '0.0.0.0'
log_line_prefix = '[%m][%d][%u][%e][%p] 'log_autovacuum_min_duration = 0
wal_level = archive$ vi /home/postgres/data/pg_hba.conf
host allall
127.0.0.1/32
trust
host allall[接続許可IPアドレス]/32

trust# cd /usr/local/src/postgresql-9.2.4/contrib/start-scripts/# vi linux
以下を編集
PGDATA="/usr/local/pgsql/data"↓
PGDATA="/home/postgres/data"# cp -rp linux postgresql# chown root:root postgresql# chmod 755 postgresql# cd /usr/local/src/postgresql-9.2.4/contrib/start-scripts/# mv postgresql /etc/rc.d/init.d/# chkconfig --add postgresql

ページ 8

PostgreSQL(9.2.4)のインストール
確認 （確認コマンド等）# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
コンフィグオプション: ../configure --prefix=/usr--mandir=/usr/share/man --infodir=/usr/share/info --withbugurl=http://bugzilla.redhat.com/bugzilla --enablebootstrap --enable-shared --enable-threads=posix --enablechecking=release --with-system-zlib --enable-__cxa_atexit--disable-libunwind-exceptions --enable-gnu-unique-object--enable-languages=c,c++,objc,obj-c++,java,fortran,ada--enable-java-awt=gtk --disable-dssi --with-javahome=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcjmultifile --enable-java-maintainer-mode --with-ecjjar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib--with-ppl --with-cloog --with-tune=generic --witharch_32=i686 --build=x86_64-redhat-linux
スレッドモデル: posix
gcc
version# make-v 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC)
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
これはフリーソフトウェアです. 利用許諾についてはソースをご覧ください.
商業性や特定の目的への適合性の如何に関わらず, 無保証です.
This program built for x86_64-unknown-linux-gnu# yum list zlib zlib-devel[省略]
Installed Packages
zlib.x86_64@basezlib-devel.x86_64
@base
[省略]

1.2.3-27.el6
1.2.3-27.el6# yum list readlin readline-devel[省略]
Installed Packages
readline.x86_64
6.0-3.el6
201106060106.x86_64/6.0
readline-devel.x86_64
6.0-3.el6[省略]#yum list libxml2 libxml2-devel[省略]
Installed Packages
libxml2.x86_64@updateslibxml2-devel.x86_64@anaconda-CentOS@base

2.7.6-4.el6_2.4
2.7.6-4.el6_2.4

ページ 9

PostgreSQL(9.2.4)のインストール# su - postgres$※プロンプトが「$」に変更されていることを確認# ls -l /usr/local/src/(略)drwxrwxr-x 6 postgres postgres
postgresql-9.2.4

4096 2月 24 08:11 2012# ls -l /usr/local/src/(略)drwxr-xr-x 2 postgres postgres 4096 4月 5 12:19 2012
postgresql-9.2.4-rw-r--r-- 1 root root 20391547 4月 5 12:22 2012
postgresql-9.2.4.tar.gz$ ls -l /usr/local/src/(略)drwxrwxr-x 6 postgres postgres 4096 2月 24 08:11 2012
postgresql-9.2.4-rw-r--r-- 1 root root 20391547 4月 5 12:22 2012
postgresql-9.2.4.tar.gz$ ls -l /usr/local/src/postgresql-9.2.4/(略)-rw-r--r-- 1 postgres postgres 1489 2月 24 07:53 2012
Makefile※Makefileが作成されていること
エラーが表示されないこと

エラーが表示されないこと# ls -l /usr/local/(略)drwxr-xr-x 6 postgres postgres 4096 4月 5 11:41 2012
pgsql

ページ 10PostgreSQL(9.2.4)のインストール$ echo $PGDATA/home/postgres/data# ls -l /usr/local/pgsql/
drwxr-xr-x 2 postgres postgres 4096 4月 20 19:10 2012 bin
drwxr-xr-x 6 postgres postgres 4096 4月 20 19:10 2012
includedrwxr-xr-x 3 postgres postgres 4096 4月 20 19:10 2012 lib
drwxr-xr-x 8 postgres postgres 4096 4月 20 19:10 2012$ ls -l $PGDATA
合計 88-rw-------. 1 postgres postgres 4 11月 21 10:27 2013
PG_VERSION
drwx------. 5 postgres postgres 4096 11月 21 10:27 2013base
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013globaldrwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_clog-rw-------. 1 postgres postgres 4476 11月 21 10:27 2013
pg_hba.conf-rw-------. 1 postgres postgres 1636 11月 21 10:27 2013
pg_ident.conf
drwx------. 4 postgres postgres 4096 11月 21 10:27 2013
pg_multixact
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_notify
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_serial
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_snapshots
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_stat
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_stat_tmp

ページ 11PostgreSQL(9.2.4)のインストール$ pg_ctl status
pg_ctl: server is running (PID: 29672)/usr/local/pgsql/bin/postgres$ ll /home/postgres/data/pg_log/
合計 4-rw------- 1 postgres postgres 150 4月 6 11:39 2012
postgresql-2012-04-06_113905.log# ls -l /usr/local/src/postgresql-9.2.4/contrib/start-scripts/
合計 16-rw-r--r-- 1 postgres postgres 1529 2月 24 07:53 2012
freebsd-rw-r--r-- 1 postgres postgres 3017 6月 8 14:12 2012 linux
drwxrwxr-x 2 postgres postgres 4096 2月 24 08:08 2012 osx-rwxr-xr-# chkconfig --list | grep postgresql
postgresql
0:off 1:off 2:on 3:on

4:on

5:on

6:off

ページ 12

PostgreSQL(9.2.4)のインストール
備考（参考）
GPLの利用が難しい場合は、configureオプションに以下のオプションんを追記することでzlibを導入しないことが可能である。この場合、pg_dump/pg_restoreの圧縮アーカイブ機
能が利用できなくなります。
--without-zlib(参考）
GPLの利用が難しい場合は、configureオプションに以下のオプションを追記すること
readlineを導入しない事が可能である。
--without-readline
代替ソフトウェアとしてlibeditがあるため、configureオプションに以下のように追記することで導入可能である。
--with-libedit-preferred

ページ 13

PostgreSQL(9.2.4)のインストール

ページ 14

PostgreSQL(9.2.4)のインストール

ページ 15

PostgreSQL(9.2.4)のインストール（動いていない時例）$ view ~/data/pg_log/postgresql-xxx.log
LOG: end-of-line before authentication method
CONTEXT: line 103 of configuration file "/home/postgres/data/pg_hba.conf"
FATAL: could not load pg_hba.conｆ(設定ファイル pg_hba.conf 103行目にエラー）

ページ 16

PostgreSQL(9.3.x)のインストール
No

概要

対象

ユーザ

1 gccのインストール

PostgreSQLサーバ

root

2 makeのインストール

PostgreSQLサーバ

root

3 zlibのインストール

PostgreSQLサーバ

root

4 readlineのインストール

PostgreSQLサーバ

root

5 ｌibxmlのインストール

PostgreSQLサーバ

root

6

PostgreSQLの管理者ユーザの作成

PostgreSQLサーバ

root

7

PostgreSQLのソースディレクト
PostgreSQLサーバ
リの作成

root

ページ 17

PostgreSQL(9.3.x)のインストール

8「postgresql-9.3.x.tar.gz」の入手

PostgreSQLサーバ

root

9

「postgresql-9.3.x.tar.gz」の展開

PostgreSQLサーバ

postgres10 configureスクリプトの実行

PostgreSQLサーバ

postgres

11 コンパイルの実行

PostgreSQLサーバ

postgres12 コンパイルのチェック

PostgreSQLサーバ

postgres13 インストール

PostgreSQLサーバ

root

PostgreSQLサーバ

postgres

環境設定
15 (~postgres/.postgres_profil PostgreSQLサーバ
e)postgres

14

16

環境設定
(~postgres/.bash_profile)

データベース格納ディレクトリ
の作成

PostgreSQLサーバ

ページ 18rootPostgreSQL(9.3.x)のインストール

17 データベースクラスタの作成

PostgreSQLサーバ

postgres18 ログ出力先ディレクトリの作成

PostgreSQLサーバ

postgres19

アーカイブログ格納ディレクトリ
PostgreSQLサーバ
作成

postgres20

PostgreSQLの設定ファイルのPostgreSQLサーバ
変更

postgres21

postgresqlの起動スクリプトのPostgreSQLサーバ
修正

root

ページ 19PostgreSQL(9.3.x)のインストール

22

postgresqlのサービス化(自動起動設定)

PostgreSQLサーバ

ページ 20root

PostgreSQL(9.3.x)のインストール
コマンド# yum install gcc# yum install make# yum install zlib zlib-devel# yum install readline readline-devel# yum install libxml2 libxml2-devel# useradd postgres# passwd postgres[新規パスワードを入力]# su - postgres# mkdir /usr/local/src/postgresql-9.3.x# chown postgres:postgres /usr/local/src/postgresql-9.3.x

ページ 21PostgreSQL(9.3.x)のインストール# cd /usr/local/src/# wget http://ftp.postgresql.org/pub/source/v9.3.x/postgresql9.3.x.tar.gz$ cd /usr/local/src/$ tar xvzf postgresql-9.3.x.tar.gz$ cd /usr/local/src/postgresql-9.3.x$ ./configure --with-libxml$ gmake world(略)
PostgreSQL, contrib, and documentation successfully made. Readyto install.
$ gmake check(略)============== shutting down postmaster=====================================All 136 tests passed.
=======================(略)$ su# cd /usr/local/src/postgresql-9.3.x# gmake install-world(略)
PostgreSQL, contrib, and documentation installation complete.
# chown postgres:postgres -R /usr/local/pgsql/$ vi ~postgres/.bash_profile(以下の値を追加)
if [ -f ~/.postgres_profile ]; then. ~/.postgres_profile
fi
PATH=$PATH:$HOME/bin
export PATH
$ vi ~postgres/.postgres_profile
export PATH
export PATH=/usr/local/pgsql/bin:$PATH
export MANPATH=/usr/local/pgsql/share/man:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PGDATA=/home/postgres/data# mkdir /home/postgres/data/# chown postgres:postgres /home/postgres/data/# su - postgres

ページ 22

PostgreSQL(9.3.x)のインストール$ initdb -E UTF-8 --pgdata=/home/postgres/data/ --no-locale
The files belonging to this database system will be owned by user
"postgres".
This user must also own the server process.
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /home/postgres/data ... ok[省略]
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A,or--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:postgres -D /home/postgres/data/orpg_ctl -D /home/postgres/data/ -l logfile start$ mkdir /home/postgres/data/pg_log$ mkdir /home/postgres/pg_archivelog$ vi /home/postgres/data/postgresql.conf(以下の値に変更)#archive_mode = off#archive_command = ''#logging_collector = off#listen_addresses = 'localhost'#log_line_prefix = ''#log_autovacuum_min_duration = -1
wal_level = minimal↓archive_mode = onarchive_command = 'cp %p /home/postgres/pg_archivelog/%f'logging_collector = on
Listen_addresses = '0.0.0.0'
log_line_prefix = '[%m][%d][%u][%e][%p] 'log_autovacuum_min_duration = 0
wal_level = archive$ vi /home/postgres/data/pg_hba.conf
host allall
127.0.0.1/32
trust
host allall
接続許可IPアドレス/32

trust# cd /usr/local/src/postgresql-9.3.x/contrib/start-scripts/# cp -rp linux postgresql# vi postgresql
以下を編集
PGDATA="/usr/local/pgsql/data"↓
PGDATA="/home/postgres/data"# chown root:root postgresql# chmod 755 postgresql

ページ 23

PostgreSQL(9.3.x)のインストール# cd /usr/local/src/postgresql-9.3.x/contrib/start-scripts/# mv postgresql /etc/rc.d/init.d/# chkconfig --add postgresql

ページ 24

PostgreSQL(9.3.x)のインストール
確認 （確認コマンド等）# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
コンフィグオプション: ../configure --prefix=/usr--mandir=/usr/share/man --infodir=/usr/share/info --withbugurl=http://bugzilla.redhat.com/bugzilla --enablebootstrap --enable-shared --enable-threads=posix --enablechecking=release --with-system-zlib --enable-__cxa_atexit--disable-libunwind-exceptions --enable-gnu-unique-object--enable-languages=c,c++,objc,obj-c++,java,fortran,ada--enable-java-awt=gtk --disable-dssi --with-javahome=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcjmultifile --enable-java-maintainer-mode --with-ecjjar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib--with-ppl --with-cloog --with-tune=generic --witharch_32=i686 --build=x86_64-redhat-linux
スレッドモデル: posix# make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
これはフリーソフトウェアです. 利用許諾についてはソースをご覧ください.
商業性や特定の目的への適合性の如何に関わらず, 無保証です.
This program built for x86_64-unknown-linux-gnu# yum list zlib zlib-devel[省略]
Installed Packages
zlib.x86_64
1.2.3-29.el6@basezlib-devel.x86_64
1.2.3-29.el6
@base
[省略]
# yum list readline readline-devel[省略]
Installed Packages
readline.x86_64@base
readline-devel.x86_64
@base
[省略]
# yum list libxml2 libxml2-devel[省略]
Installed Packages
libxml2.x86_64@updateslibxml2-devel.x86_64

6.0-4.el6
6.0-4.el6

2.7.6-4.el6_2.4
2.7.6-4.el6_2.4# su - postgres$※プロンプトが「$」に変更されていることを確認# ls -l /usr/local/src/(略)drwxr-xr-x. 2 postgres postgres
postgresql-9.3.x

4096 11月 21 10:05 2013

ページ 25

PostgreSQL(9.3.x)のインストール# ls -l /usr/local/src/(略)drwxr-xr-x. 2 postgres postgres 4096 11月 21 10:05 2013
postgresql-9.3.x-rw-r--r--. 1 root root 22140691 9月 3 05:59 2013
postgresql-9.3.x.tar.gz$ ls -l /usr/local/src/(略)drwxrwxr-x. 6 postgres postgres 4096 9月 3 05:59 2013
postgresql-9.3.x-rw-r--r--. 1 root root 22140691 9月 3 05:59 2013
postgresql-9.3.x.tar.gz$ ls -l /usr/local/src/postgresql-9.3.x/(略)-rw-rw-r--. 1 postgres postgres 3767 11月 21 10:12 2013
GNUmakefile※Makefileが作成されていること
エラーが表示されないこと

エラーが表示されないこと# ls -l /usr/local/(略)drwxr-xr-x. 6 postgres postgres 4096 11月 21 10:22 2013
pgsql

$ echo $PGDATA/home/postgres/data# ls -l /usr/local/pgsql/
合計 16
drwxr-xr-x. 2 postgres postgres 4096 11月 21 10:22 2013 bin
drwxr-xr-x. 6 postgres postgres 4096 11月 21 10:22 2013
includedrwxr-xr-x. 4 postgres postgres 4096 11月 21 10:22 2013 lib

ページ 26

PostgreSQL(9.3.x)のインストール$ ls -l $PGDATA
合計 88-rw-------. 1 postgres postgres 4 11月 21 10:27 2013
PG_VERSION
drwx------. 5 postgres postgres 4096 11月 21 10:27 2013base
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013globaldrwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_clog-rw-------. 1 postgres postgres 4476 11月 21 10:27 2013
pg_hba.conf-rw-------. 1 postgres postgres 1636 11月 21 10:27 2013
pg_ident.conf
drwx------. 4 postgres postgres 4096 11月 21 10:27 2013
pg_multixact
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_notify
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_serial
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_snapshots
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_stat
drwx------. 2 postgres postgres 4096 11月 21 10:27 2013
pg_stat_tmp$ pg_ctl status
pg_ctl: server is running (PID: 29672)/usr/local/pgsql/bin/postgres$ ll /home/postgres/data/pg_log/
合計 4-rw------- 1 postgres postgres 150 4月 6 11:39 2012
postgresql-2012-04-06_113905.log# ls -l /usr/local/src/postgresql-9.3.x/contrib/start-scriptss/
合計 16-rw-r--r--. 1 postgres postgres 1529 9月 3 05:53 2013
freebsd-rw-r--r--. 1 postgres postgres 3467 11月 21 10:41 2013
linux
drwxrwxr-x. 2 postgres postgres 4096 9月 3 05:55 2013 osx-rw

ページ 27

PostgreSQL(9.3.x)のインストール# chkconfig --list | grep postgresql
postgresql
0:off 1:off 2:on 3:on

4:on

5:on

6:off

ページ 28

PostgreSQL(9.3.x)のインストール
備考（参考）
GPLの利用が難しい場合は、configureオプションに以下のオプションんを追記することでzlibを導入しないことが可能である。この場合、pg_dump/pg_restoreの圧縮アーカイブ機
能が利用できなくなります。
--without-zlib(参考）
GPLの利用が難しい場合は、configureオプションに以下のオプションを追記すること
readlineを導入しない事が可能である。
--without-readline
代替ソフトウェアとしてlibeditがあるため、configureオプションに以下のように追記することで導入可能である。
--with-libedit-preferred

以下、本手順書における”x”には導入するマイナーバージョンを代入する。

ページ 29PostgreSQL(9.3.x)のインストール--with-libxmlは,pg_statsinfoで利用します。

ページ 30PostgreSQL(9.3.x)のインストール（動いていない時例）$ view ~/data/pg_log/postgresql-xxx.log
LOG: end-of-line before authentication method
CONTEXT: line 103 of configuration file "/home/postgres/data/pg_hba.conf"
FATAL: could not load pg_hba.conｆ(設定ファイル pg_hba.conf 103行目にエラー）

ページ 31PostgreSQL(9.3.x)のインストール

ページ 32