PostgreSQL/CentOSでPostgreSQLをソースからコンパイルする手順
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* CentOSでPostgreSQLをソースからコンパイルする手順 [#g81a...
PostgreSQLのソースを入手しソースからコンパイルしインスト...
最新のPostgreSQLを試してみたり、プライベートな環境を構築...
使用したOSはCentOS5, CentOS6の2つです。~
CentOS5, CentOS6で操作に差異がある場合は、別途記述します。~
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* PostgreSQLのソースコードを入手する [#dff76b33]
[[NPO法人 日本PostgreSQLユーザ会>http://www.postgresql.jp...
ブラウザを利用してダウンロードしてもよいですし、wgetやcur...
本資料では、ブラウザを利用してダウンロードします。~
本資料作成時の最新バージョンである、9.1.4のソースコードを...
#ref(01.gif)
* Cコンパイラなどの開発環境をインストールしていない場合 [...
CentOSで開発環境をインストールしていない場合は、以下の資...
-[[CentOSで開発ツールを一括でインストールする>http://linu...
-[[関連パッケージをインストール・アンインストールする方法...
* ダウンロードしたPostgreSQLを解凍します。 [#vce793f3]
以下、CentOS上での作業です。
ユーザアカウントはsakuraで行います。
以下の通り、ダウンロードしたPostgreSQLのソースコードはア...
[sakura@centos ~]$ pwd
/home/sakura
[sakura@centos ~]$ ls -l
合計 19984
-rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgr...
* コンパイルする前にインストールが必要なパッケージなど [#...
CentOS5, CentOS6でPostgreSQLをソースコードからコンパイル...
** CentOS 5 [#t9091c8e]
+flexのインストール(バージョンアップ)~
記事を参考にflexをインストールしてください。
--[[flexのインストール>PostgreSQL/flexのインストール]]
+ readline-develパッケージのインストール
+ zlib-develパッケージのインストール
** CentOS 6 [#cfc21b82]
+ readline-develパッケージのインストール
+ zlib-develパッケージのインストール
以下にパッケージがインストールされていない場合にconfigure...
コンパイルとインストールに進む方は「[[コンパイル&インスト...
** CentOS5に必要なflexのバージョンアップ [#w5b856e1]
configureで以下のWARNINGが出力される原因はflexのバージョ...
以下リンクはflexをソースコードからインストールする記事で...
記事を参考にflexをインストールしてください。
-[[flexのインストール>PostgreSQL/flexのインストール]]
checking for flex... configure: WARNING:
*** The installed version of Flex, /usr/bin/flex, is too...
*** Flex version 2.5.31 or later is required, but this i...
configure: WARNING:
*** The installed version of Flex, /usr/bin/lex, is too ...
*** Flex version 2.5.31 or later is required, but this i...
no
configure: WARNING:
*** Without Flex you will not be able to build PostgreSQ...
*** change any of the scanner definition files. You can...
*** a GNU mirror site. (If you are using the official d...
*** PostgreSQL then you do not need to worry about this ...
*** output is pre-generated.)
** readlineのライブラリ [#va6cfb3e]
configure時に以下のメッセージが表示された場合は、readline...
configure: error: readline library not found
If you have readline already installed, see config.log f...
failure. It is possible the compiler isn't looking in t...
Use --without-readline to disable readline support.
rootになり、以下のコマンドでreadline-develをインストール...
yum -y install readline-devel
** zlibライブラリ [#l7a3da61]
configure時に以下のメッセージが表示された場合は、zlib-dev...
configure: error: zlib library not found
If you have zlib already installed, see config.log for d...
failure. It is possible the compiler isn't looking in t...
Use --without-zlib to disable zlib support.
rootになり、以下のコマンドでzlib-develをインストールして...
yum -y install zlib-devel
* コンパイル&インストール [#eb61f7c7]
以下の手順でPostgreSQLのソースコードのコンパイルとインス...
+ PostgreSQLソースのtarボールの展開~
以下のコマンドで展開します。
tar zxvf postgresql-9.1.4.tar.gz
展開が完了するとホームディレクトリは以下のようになります。
[sakura@centos ~]$ ls -ltr
合計 19988
drwxrwxr-x 6 sakura sakura 4096 6月 1 08:25 postgr...
-rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgr...
postgresql-9.1.4ディレクトリが作成されPostgreSQLのソース...
#br
+ 展開したディレクトリにcdする
cd postgresql-9.1.4
#br
+ configureコマンドを実行する
./configure --prefix=$HOME/pgsql
上記の--prefixはインストールするディレクトリになります。~
ホームディレクトリのpgsqlにインストールするように指示して...
#br
+ makeコマンドを実行(ソースコードのコンパイル)
make
#br
以下のメッセージが表示されればコンパイルは完了です。
All of PostgreSQL successfully made. Ready to install.
#br
+ make install コマンドを実行~
configureで指定したprefixのディレクトリにPostgreSQLがイン...
[sakura@centos postgresql-9.1.4]$ make install
<snip>
PostgreSQL installation complete.
#br
$HOME/pgsqlにインストールされているのが確認できます。
[sakura@centos postgresql-9.1.4]$ ls -l $HOME/pgsql
合計 16
drwxrwxr-x 2 sakura sakura 4096 8月 9 00:00 bin
drwxrwxr-x 6 sakura sakura 4096 8月 9 00:00 include
drwxrwxr-x 3 sakura sakura 4096 8月 9 00:00 lib
drwxrwxr-x 6 sakura sakura 4096 8月 9 00:00 share
* インストールしたPostgreSQLを起動してみる [#ka746a3a]
ホームディレクトリ内にインストールしたPostgreSQLを起動す...
.bashrcなどに追記すれば以後、有効になります。
export PATH=$HOME/pgsql/bin:$PATH
- initdbをしてみる~
上記のPATH設定によりinitdbコマンドがprefixで指定したディ...
[sakura@centos postgresql-9.1.4]$ which initdb
~/pgsql/bin/initdb
#br
ホームディレクトリに戻りinitdbしてみます。
[sakura@centos postgresql-9.1.4]$ cd
[sakura@centos ~]$ initdb -D $HOME/sakura
The files belonging to this database system will be owne...
This user must also own the server process.
<snip>
creating directory /home/sakura/sakura ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /home/sakura/sakura/base/...
<snip>
Success. You can now start the database server using:
postgres -D /home/sakura/sakura
or
pg_ctl -D /home/sakura/sakura -l logfile start
- initdbの結果
$HOME/sakuraにinitdbにより作成されたデータベースシステム(...
[sakura@centos ~]$ ls -l sakura/
合計 80
-rw------- 1 sakura sakura 4 8月 9 00:07 PG_VERSION
drwx------ 5 sakura sakura 4096 8月 9 00:07 base
drwx------ 2 sakura sakura 4096 8月 9 00:07 global
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_clog
-rw------- 1 sakura sakura 4470 8月 9 00:07 pg_hba.conf
-rw------- 1 sakura sakura 1636 8月 9 00:07 pg_ident....
drwx------ 4 sakura sakura 4096 8月 9 00:07 pg_multix...
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_notify
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_serial
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_stat_tmp
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_subtrans
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_tblspc
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_twophase
drwx------ 3 sakura sakura 4096 8月 9 00:07 pg_xlog
-rw------- 1 sakura sakura 19168 8月 9 00:07 postgresq...
- 作成したデータベースシステム(クラスタ)を起動してみます。~
pg_ctlコマンドにより起動します。
[sakura@centos ~]$ pg_ctl -D $HOME/sakura start
server starting
[sakura@centos ~]$ LOG: database system was shut down a...
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
Enterキーを押せばプロンプトが戻ってきます。
- SQLを実行してみます。~
psqlコマンドを起動しSQLを実行してみます。~
データベースを作成していないので、最初からあるpostgresに...
[sakura@centos ~]$ psql postgres
psql (9.1.4)
Type "help" for help.
postgres=# select now();
now
-------------------------------
2012-08-09 00:13:27.710802+09
(1 row)
postgres-# \q
- PostgreSQLの停止をしてみます。
pg_ctlコマンドで起動したPostgreSQLを停止させます。
[sakura@centos ~]$ pg_ctl stop -D $HOME/sakura
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
LOG: shutting down
waiting for server to shut down....LOG: database system...
done
server stopped
* 関連資料 [#y90019a7]
-[[PostgreSQLをソースからCentOSにインストール>PostgreSQL/...
-[[CentOSで開発ツールを一括でインストールする>http://linu...
-[[関連パッケージをインストール・アンインストールする方法...
-[[flexのインストール>PostgreSQL/flexのインストール]]
#htmlinsertpcsp(db-btm.html,db-sp.html)
終了行:
#navi(../)
* CentOSでPostgreSQLをソースからコンパイルする手順 [#g81a...
PostgreSQLのソースを入手しソースからコンパイルしインスト...
最新のPostgreSQLを試してみたり、プライベートな環境を構築...
使用したOSはCentOS5, CentOS6の2つです。~
CentOS5, CentOS6で操作に差異がある場合は、別途記述します。~
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* PostgreSQLのソースコードを入手する [#dff76b33]
[[NPO法人 日本PostgreSQLユーザ会>http://www.postgresql.jp...
ブラウザを利用してダウンロードしてもよいですし、wgetやcur...
本資料では、ブラウザを利用してダウンロードします。~
本資料作成時の最新バージョンである、9.1.4のソースコードを...
#ref(01.gif)
* Cコンパイラなどの開発環境をインストールしていない場合 [...
CentOSで開発環境をインストールしていない場合は、以下の資...
-[[CentOSで開発ツールを一括でインストールする>http://linu...
-[[関連パッケージをインストール・アンインストールする方法...
* ダウンロードしたPostgreSQLを解凍します。 [#vce793f3]
以下、CentOS上での作業です。
ユーザアカウントはsakuraで行います。
以下の通り、ダウンロードしたPostgreSQLのソースコードはア...
[sakura@centos ~]$ pwd
/home/sakura
[sakura@centos ~]$ ls -l
合計 19984
-rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgr...
* コンパイルする前にインストールが必要なパッケージなど [#...
CentOS5, CentOS6でPostgreSQLをソースコードからコンパイル...
** CentOS 5 [#t9091c8e]
+flexのインストール(バージョンアップ)~
記事を参考にflexをインストールしてください。
--[[flexのインストール>PostgreSQL/flexのインストール]]
+ readline-develパッケージのインストール
+ zlib-develパッケージのインストール
** CentOS 6 [#cfc21b82]
+ readline-develパッケージのインストール
+ zlib-develパッケージのインストール
以下にパッケージがインストールされていない場合にconfigure...
コンパイルとインストールに進む方は「[[コンパイル&インスト...
** CentOS5に必要なflexのバージョンアップ [#w5b856e1]
configureで以下のWARNINGが出力される原因はflexのバージョ...
以下リンクはflexをソースコードからインストールする記事で...
記事を参考にflexをインストールしてください。
-[[flexのインストール>PostgreSQL/flexのインストール]]
checking for flex... configure: WARNING:
*** The installed version of Flex, /usr/bin/flex, is too...
*** Flex version 2.5.31 or later is required, but this i...
configure: WARNING:
*** The installed version of Flex, /usr/bin/lex, is too ...
*** Flex version 2.5.31 or later is required, but this i...
no
configure: WARNING:
*** Without Flex you will not be able to build PostgreSQ...
*** change any of the scanner definition files. You can...
*** a GNU mirror site. (If you are using the official d...
*** PostgreSQL then you do not need to worry about this ...
*** output is pre-generated.)
** readlineのライブラリ [#va6cfb3e]
configure時に以下のメッセージが表示された場合は、readline...
configure: error: readline library not found
If you have readline already installed, see config.log f...
failure. It is possible the compiler isn't looking in t...
Use --without-readline to disable readline support.
rootになり、以下のコマンドでreadline-develをインストール...
yum -y install readline-devel
** zlibライブラリ [#l7a3da61]
configure時に以下のメッセージが表示された場合は、zlib-dev...
configure: error: zlib library not found
If you have zlib already installed, see config.log for d...
failure. It is possible the compiler isn't looking in t...
Use --without-zlib to disable zlib support.
rootになり、以下のコマンドでzlib-develをインストールして...
yum -y install zlib-devel
* コンパイル&インストール [#eb61f7c7]
以下の手順でPostgreSQLのソースコードのコンパイルとインス...
+ PostgreSQLソースのtarボールの展開~
以下のコマンドで展開します。
tar zxvf postgresql-9.1.4.tar.gz
展開が完了するとホームディレクトリは以下のようになります。
[sakura@centos ~]$ ls -ltr
合計 19988
drwxrwxr-x 6 sakura sakura 4096 6月 1 08:25 postgr...
-rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgr...
postgresql-9.1.4ディレクトリが作成されPostgreSQLのソース...
#br
+ 展開したディレクトリにcdする
cd postgresql-9.1.4
#br
+ configureコマンドを実行する
./configure --prefix=$HOME/pgsql
上記の--prefixはインストールするディレクトリになります。~
ホームディレクトリのpgsqlにインストールするように指示して...
#br
+ makeコマンドを実行(ソースコードのコンパイル)
make
#br
以下のメッセージが表示されればコンパイルは完了です。
All of PostgreSQL successfully made. Ready to install.
#br
+ make install コマンドを実行~
configureで指定したprefixのディレクトリにPostgreSQLがイン...
[sakura@centos postgresql-9.1.4]$ make install
<snip>
PostgreSQL installation complete.
#br
$HOME/pgsqlにインストールされているのが確認できます。
[sakura@centos postgresql-9.1.4]$ ls -l $HOME/pgsql
合計 16
drwxrwxr-x 2 sakura sakura 4096 8月 9 00:00 bin
drwxrwxr-x 6 sakura sakura 4096 8月 9 00:00 include
drwxrwxr-x 3 sakura sakura 4096 8月 9 00:00 lib
drwxrwxr-x 6 sakura sakura 4096 8月 9 00:00 share
* インストールしたPostgreSQLを起動してみる [#ka746a3a]
ホームディレクトリ内にインストールしたPostgreSQLを起動す...
.bashrcなどに追記すれば以後、有効になります。
export PATH=$HOME/pgsql/bin:$PATH
- initdbをしてみる~
上記のPATH設定によりinitdbコマンドがprefixで指定したディ...
[sakura@centos postgresql-9.1.4]$ which initdb
~/pgsql/bin/initdb
#br
ホームディレクトリに戻りinitdbしてみます。
[sakura@centos postgresql-9.1.4]$ cd
[sakura@centos ~]$ initdb -D $HOME/sakura
The files belonging to this database system will be owne...
This user must also own the server process.
<snip>
creating directory /home/sakura/sakura ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /home/sakura/sakura/base/...
<snip>
Success. You can now start the database server using:
postgres -D /home/sakura/sakura
or
pg_ctl -D /home/sakura/sakura -l logfile start
- initdbの結果
$HOME/sakuraにinitdbにより作成されたデータベースシステム(...
[sakura@centos ~]$ ls -l sakura/
合計 80
-rw------- 1 sakura sakura 4 8月 9 00:07 PG_VERSION
drwx------ 5 sakura sakura 4096 8月 9 00:07 base
drwx------ 2 sakura sakura 4096 8月 9 00:07 global
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_clog
-rw------- 1 sakura sakura 4470 8月 9 00:07 pg_hba.conf
-rw------- 1 sakura sakura 1636 8月 9 00:07 pg_ident....
drwx------ 4 sakura sakura 4096 8月 9 00:07 pg_multix...
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_notify
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_serial
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_stat_tmp
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_subtrans
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_tblspc
drwx------ 2 sakura sakura 4096 8月 9 00:07 pg_twophase
drwx------ 3 sakura sakura 4096 8月 9 00:07 pg_xlog
-rw------- 1 sakura sakura 19168 8月 9 00:07 postgresq...
- 作成したデータベースシステム(クラスタ)を起動してみます。~
pg_ctlコマンドにより起動します。
[sakura@centos ~]$ pg_ctl -D $HOME/sakura start
server starting
[sakura@centos ~]$ LOG: database system was shut down a...
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
Enterキーを押せばプロンプトが戻ってきます。
- SQLを実行してみます。~
psqlコマンドを起動しSQLを実行してみます。~
データベースを作成していないので、最初からあるpostgresに...
[sakura@centos ~]$ psql postgres
psql (9.1.4)
Type "help" for help.
postgres=# select now();
now
-------------------------------
2012-08-09 00:13:27.710802+09
(1 row)
postgres-# \q
- PostgreSQLの停止をしてみます。
pg_ctlコマンドで起動したPostgreSQLを停止させます。
[sakura@centos ~]$ pg_ctl stop -D $HOME/sakura
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
LOG: shutting down
waiting for server to shut down....LOG: database system...
done
server stopped
* 関連資料 [#y90019a7]
-[[PostgreSQLをソースからCentOSにインストール>PostgreSQL/...
-[[CentOSで開発ツールを一括でインストールする>http://linu...
-[[関連パッケージをインストール・アンインストールする方法...
-[[flexのインストール>PostgreSQL/flexのインストール]]
#htmlinsertpcsp(db-btm.html,db-sp.html)
ページ名: