PostgreSQLスキルアップノート(自己啓発のための個人サイト)
PostgreSQL9.1のソースからのインストール
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■
■■■■ PostgreSQL 9.1
■■■■
■◆■■ PostgreSQLのソースからのインストール(参考メモ)
■■■■
■■■■ 2012/07
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
自分用のメモです。
後にパッケージによるインストールに変更したため、このページは参考として保存。
【ダウンロード】
http://www.postgresql.org/ftp/source/
【参照サイト】
マニュアル(PostgreSQL 9.1.4文書)
第 15章 ソースコードからインストール
http://www.postgresql.jp/document/9.1/html/installation.html
【その他】
参考・contribについて
http://lets.postgresql.jp/documents/technical/contrib/
■1■PostgreSQL 9.1の入手
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ダウンロード先
http://www.postgresql.org/ftp/source/
v9.1.4を選択
-------------------------------------------------
File Browser
Top → source → v9.1.4
Directories
[Parent Directory]
Files
postgresql-9.1.4.tar.bz2 2012-06-04 10:09:05 14.9 MB
postgresql-9.1.4.tar.bz2.md5 2012-06-04 10:09:05 59 bytes
postgresql-9.1.4.tar.gz 2012-06-04 10:09:11 19.5 MB ★
postgresql-9.1.4.tar.gz.md5 2012-06-04 10:09:11 58 bytes
-------------------------------------------------
postgresql-9.1.4.tar.gz
■2■OS環境(今回インストール要件)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PostgreSQLのインストールで必要なOSパッケージ
http://www.postgresql.jp/document/9.1/html/install-requirements.html
[root@kvm00 ~]# rpm -qa | grep make
automake-1.11.1-1.2.el6.noarch
make-3.81-19.el6.x86_64
[root@kvm00 ~]# rpm -qa | grep gcc
gcc-4.4.6-3.el6.x86_64
gcc-gfortran-4.4.6-3.el6.x86_64
libgcc-4.4.6-3.el6.x86_64
gcc-c++-4.4.6-3.el6.x86_64
[root@kvm00 ~]# rpm -qa | grep readline
readline-6.0-3.el6.x86_64
★develがない
[root@kvm00 ~]# rpm -qa | grep zlib
zlib-1.2.3-27.el6.x86_64
★develがない
[root@kvm00 ~]# rpm -qa | grep -i flex
flex-2.5.35-8.el6.x86_64
[root@kvm00 ~]# rpm -qa | grep -i bison
bison-2.4.1-5.el6.x86_64
・GNU makeのバージョン3.80以上が必要です。
gmake --version
・ ISO/ANSI Cコンパイラ(最低限C89-準拠)が必要です。
GCC の最近のバージョンをお勧めしますが、
PostgreSQLは異なるベンダの、様々なコンパイラを使用して構築できることで知られています。
[root@kvm00 ~]# rpm -qa | grep gcc
gcc-4.4.6-3.el6.x86_64
gcc-gfortran-4.4.6-3.el6.x86_64
libgcc-4.4.6-3.el6.x86_64
gcc-c++-4.4.6-3.el6.x86_64
・ GNU Readlineライブラリは、デフォルトで使用されます。
これによりpsql(PostgreSQLコマンドラインSQLインタプリタ)は入力したコマンドの記憶、
さらに、カーソルキーを使用した過去のコマンドの再実行や編集ができるようになります。
これは非常に役に立ちますので、強く推奨します。
使用したくない場合は、configureに--without-readlineオプションを指定する必要があります。
その代わりとして、BSDライセンスのlibeditライブラリを使用することもできます。
このライブラリは元々NetBSDで開発されていました。
libeditライブラリはGNUのReadlineと互換性があり、libreadlineを認識できなかった場合や
configureのオプションに--with-libedit-preferredが使用された場合に使用されます。
パッケージベースのLinuxディストリビューションを使用し、
そのディストリビューションの中で★readlineとreadline-develパッケージが別個に存在していた場合、
両方とも必要ですので注意してください。
[root@kvm00 CentOS_6.2_Final]# rpm -qa | grep readl
readline-6.0-3.el6.x86_64
readline-develの方が入っていない・・
以下DVDより
[root@kvm00 CentOS_6.2_Final]# find . | grep readl|sort
./Packages/compat-readline5-5.2-17.1.el6.i686.rpm
./Packages/compat-readline5-5.2-17.1.el6.x86_64.rpm
./Packages/readline-6.0-3.el6.i686.rpm
./Packages/readline-6.0-3.el6.x86_64.rpm
./Packages/readline-devel-6.0-3.el6.i686.rpm
./Packages/readline-devel-6.0-3.el6.x86_64.rpm
上記のうち、
./Packages/readline-devel-6.0-3.el6.x86_64.rpm
を追加する
【□】 rpm -ivh ./Packages/readline-devel-6.0-3.el6.x86_64.rpm
・zlib圧縮ライブラリはデフォルトで使用されます。
これを使用したくなければ、configureに対し--without-zlibを指定しなければなりません。
このオプションを使用すると、pg_dumpおよびpg_restore内の圧縮アーカイブサポートが無効になります。
[root@kvm00 ~]# rpm -qa | grep zlib
zlib-1.2.3-27.el6.x86_64
・・・develがないため後のconfigureでエラーになる
このため、DVDに存在する以下のうち、zlib-devel-1.2.3-27.el6.x86_64.rpmを入れておく。
[root@kvm00 CentOS_6.2_Final]# find . | grep zlib
./Packages/jzlib-1.0.7-7.5.el6.x86_64.rpm
./Packages/zlib-1.2.3-27.el6.i686.rpm
./Packages/zlib-devel-1.2.3-27.el6.i686.rpm
./Packages/zlib-1.2.3-27.el6.x86_64.rpm
./Packages/zlib-devel-1.2.3-27.el6.x86_64.rpm
【□】 rpm -ivh ./Packages/zlib-devel-1.2.3-27.el6.x86_64.rpm
■3■postgresユーザの設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
普通にOSユーザとして作成する。
su -
useradd postgres
passwd postgres
su - postgres
exit
このユーザは一般的には「PostgreSQLの管理ユーザ」となる。
■4■資材の配置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
su - postgres
mkdir -p /download/postgres91src (任意)
/download/postgres91src 配下に以下のダウンロードファイルを配置する
・・ postgresql-9.1.4.tar.gz
cd /download/postgres91src
ls -l
tar xzvf postgresql-9.1.4.tar.gz
cd postgresql-9.1.4
■5■PostgreSQLインストール1 make
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9.1.4の場合
./configure
------(今回は非実施)---------------------------------------------------------
./configure --enable-nls
configure実行時に--enable-nlsオプションを付けることで日本語メッセージを使えるようになる。
要確認(マニュアルより)
--enable-nls[=LANGUAGES]
各国語サポート(NLS)、つまり、英語以外の言語によるプログラムメッセージの表示機能を有効にします。
LANGUAGESはオプションであり、サポートさせたい言語コードを空白で区切ったリストを指定します。
例えば、--enable-nls='de fr'などとします (指定したリストと実際に用意された翻訳との論理積が自動的に計算されます)。
リストに何も指定しなかった場合、利用可能な翻訳すべてがインストールされます。
このオプションを使用するためには、gettext APIの実装が必要です。上記を参照してください。
--------------------------------------------------------------------------------
mkdir build_dir;cd build_dir;pwd
「 /path/to/source/tree/configure [options go here] 」
つまり
/download/postgres91src/postgresql-9.1.4/configure
gmakeは以下のいずれか。worldの方を使う
gmake
gmake world manや追加モジュールcontribを含め、全てを構築する場合
【□】 PostgreSQL, contrib, and documentation successfully made. Ready to install.
と表示されること
■6■PostgreSQLインストール2 リグレッションテスト
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
リグレッションテスト
インストールを行う前に、新しく構築したサーバをテストしたい場合、
この時点でリグレッションテストを実行することができます。
リグレッションテストとは、使用するマシンにおいてPostgreSQLが、
開発者の想定通りに動作することを検証するためのテストのまとまりです。次のように入力します。
gmake check
(これは root では動作しません。非特権ユーザとして実行してください。)
第30章にはテスト結果の表示に関する詳しい情報があります。
同じコマンドを入力することで、後にいつでもテストを繰り返すことができます。
【□】 All 126 tests passed.と表示されること
■7■PostgreSQLインストール3 インストール
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ファイルのインストール
rootにて
【□】 su
【□】 gmake install-world
【参考】その他の方法
gmake install
gmake install-docs ドキュメント(HTMLやman)もインストール
gmake install-world すべて
【参考】--------------------------------------------
アンインストール:. インストールを取り消すには、gmake uninstall コマンドを使います。
しかし、作成済みのディレクトリは削除されません。
-----------------------------------------------------
【参考】当初でていたエラーはすべてそれぞれのdevelがないことが原因 OSを入れる際に注意
checking for library containing readline... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.
onfigure: 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.
■8■PostgreSQLインストール後の設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 vi .bash_profile
【□】 以下を追加
# add postgresRPM
#export PATH=/usr/pgsql-9.1/bin:$PATH
#export LD_LIBRARY_PATH=/usr/pgsql-9.1/lib:$LD_LIBRARY_PATH
# add postgresSRC
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
【□】 一度ログアウトして確認
su - postgres
env | grep PATH
#ls -ld /usr/pgsql-9.1/lib
ls -ld /usr/local/pgsql/
【□】 この状態で実際にpsqlを実行してみる。
[postgres@dbsv ~]$ psql
psql: could not connect server
・・・とりあえずパスが正しく、psqlは起動できる。
(この時点ではまだDBもなくエラーになる)
■9■initdb (データベースクラスタの作成)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 以下によりデータベースクラスとの作成を行う。
su - postgres
ls -l /home/postgres
initdb --encoding=UTF8 --no-locale /home/postgres/data
【参考】指定するロケール
OSS-DB試験での推奨はロケールなし(=ロケールC)の指定が推奨されている。
(理由はOSS教科書参照)
initdbの詳細別記
■10■postgresユーザの環境変数の追加設定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
環境変数PGDATAを追加。(この場所でしなければならない訳ではない)
本当はあらかじめ環境変数PGDATAを指定すれば
initdb実行時のディレクトリ指定などは要らなくなる。
【□】 以下を実行する
──────────────────────────────
cd
vi .bash_profile
export PATH
# add postgresRPM
#export PATH=/usr/pgsql-9.1/bin:$PATH
#export LD_LIBRARY_PATH=/usr/pgsql-9.1/lib:$LD_LIBRARY_PATH
# add postgresSRC
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
# 追加 RPM
#export MANPATH=$MANPATH:/usr/pgsql-9.1/share/man
# 追加 SRC
export MANPATH=$MANPATH:=/usr/local/pgsql/share/man
# 追加 共通
export PGDATA=/home/postgres/data
──────────────────────────────
MANPATHの指定は任意
【□】一度postgresをログアウトし、再ログイン
manコマンドが使えるか以下により確認
【□】 man initdb
PGDATAの確認は次項以降にて
■11■データベースを起動・停止
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 起動
pg_ctl start
psql -l
【□】 再起動
pg_ctl restart
psql -l
【□】 停止
pg_ctl stop
psql -l
もう一度起動しておく
【□】 pg_ctl start
以上