PostgreSQL/CentOSでPostgreSQLをソースからコンパイルする手順
の編集
Top
/
PostgreSQL
/
CentOSでPostgreSQLをソースからコンパイルする手順
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * CentOSでPostgreSQLをソースからコンパイルする手順 [#g81a6f2a] PostgreSQLのソースを入手しソースからコンパイルしインストールする手順を記します。~ 最新のPostgreSQLを試してみたり、プライベートな環境を構築することができます。 使用したOSはCentOS5, CentOS6の2つです。~ CentOS5, CentOS6で操作に差異がある場合は、別途記述します。~ #contents #htmlinsertpcsp(db-top.html,db-sp.html) * PostgreSQLのソースコードを入手する [#dff76b33] [[NPO法人 日本PostgreSQLユーザ会>http://www.postgresql.jp/]]からPostgreSQLのソースコードをダウンロードすることができます。~ ブラウザを利用してダウンロードしてもよいですし、wgetやcurlコマンドを利用してダウンロードしてもよいでしょう。~ 本資料では、ブラウザを利用してダウンロードします。~ 本資料作成時の最新バージョンである、9.1.4のソースコードを利用します。 #ref(01.gif) * Cコンパイラなどの開発環境をインストールしていない場合 [#n18df6fe] CentOSで開発環境をインストールしていない場合は、以下の資料を参考に開発環境(ツール)をインストールしてください。 -[[CentOSで開発ツールを一括でインストールする>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%B8%80%E6%8B%AC%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.html]] -[[関連パッケージをインストール・アンインストールする方法>http://linux.just4fun.biz/CentOS/%E9%96%A2%E9%80%A3%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] * ダウンロードしたPostgreSQLを解凍します。 [#vce793f3] 以下、CentOS上での作業です。 ユーザアカウントはsakuraで行います。 以下の通り、ダウンロードしたPostgreSQLのソースコードはアカウントsakuraのホームディレクトリに保存しました。 [sakura@centos ~]$ pwd /home/sakura [sakura@centos ~]$ ls -l 合計 19984 -rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgresql-9.1.4.tar.gz * コンパイルする前にインストールが必要なパッケージなど [#fe57d004] CentOS5, CentOS6でPostgreSQLをソースコードからコンパイルするために必要なパッケージなどを以下に記します。 ** CentOS 5 [#t9091c8e] +flexのインストール(バージョンアップ)~ 記事を参考にflexをインストールしてください。 --[[flexのインストール>PostgreSQL/flexのインストール]] + readline-develパッケージのインストール + zlib-develパッケージのインストール ** CentOS 6 [#cfc21b82] + readline-develパッケージのインストール + zlib-develパッケージのインストール 以下にパッケージがインストールされていない場合にconfigureコマンドを利用すると出力される警告やエラーについて記します。~ コンパイルとインストールに進む方は「[[コンパイル&インストール>#eb61f7c7]]」に進んでください。 ** 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 old to use with PostgreSQL. *** Flex version 2.5.31 or later is required, but this is /usr/bin/flex version 2.5.4. configure: WARNING: *** The installed version of Flex, /usr/bin/lex, is too old to use with PostgreSQL. *** Flex version 2.5.31 or later is required, but this is /usr/bin/lex version 2.5.4. no configure: WARNING: *** Without Flex you will not be able to build PostgreSQL from Git nor *** change any of the scanner definition files. You can obtain Flex from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this because the Flex *** output is pre-generated.) ** readlineのライブラリ [#va6cfb3e] configure時に以下のメッセージが表示された場合は、readline-develがインストールされていないためです。~ 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. rootになり、以下のコマンドでreadline-develをインストールしてください。 yum -y install readline-devel ** zlibライブラリ [#l7a3da61] configure時に以下のメッセージが表示された場合は、zlib-develがインストールされていないためです。~ 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. 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 postgresql-9.1.4 -rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgresql-9.1.4.tar.gz 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を起動するために以下のようにPATHを設定します。~ .bashrcなどに追記すれば以後、有効になります。 export PATH=$HOME/pgsql/bin:$PATH - initdbをしてみる~ 上記のPATH設定によりinitdbコマンドがprefixで指定したディレクトリのbinディレクトリにインストールしたinitdbコマンドを示しています。 [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 owned by user "sakura". 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/1 ... ok <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.conf drwx------ 4 sakura sakura 4096 8月 9 00:07 pg_multixact 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 postgresql.conf - 作成したデータベースシステム(クラスタ)を起動してみます。~ pg_ctlコマンドにより起動します。 [sakura@centos ~]$ pg_ctl -D $HOME/sakura start server starting [sakura@centos ~]$ LOG: database system was shut down at 2012-08-09 00:07:32 JST LOG: autovacuum launcher started LOG: database system is ready to accept connections Enterキーを押せばプロンプトが戻ってきます。 - SQLを実行してみます。~ psqlコマンドを起動しSQLを実行してみます。~ データベースを作成していないので、最初からあるpostgresに接続しSQLを実行してみます。 [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 is shut down done server stopped * 関連資料 [#y90019a7] -[[PostgreSQLをソースからCentOSにインストール>PostgreSQL/PostgreSQLをソースからCentOSにインストール]] -[[CentOSで開発ツールを一括でインストールする>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%B8%80%E6%8B%AC%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.html]] -[[関連パッケージをインストール・アンインストールする方法>http://linux.just4fun.biz/CentOS/%E9%96%A2%E9%80%A3%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] -[[flexのインストール>PostgreSQL/flexのインストール]] #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * CentOSでPostgreSQLをソースからコンパイルする手順 [#g81a6f2a] PostgreSQLのソースを入手しソースからコンパイルしインストールする手順を記します。~ 最新のPostgreSQLを試してみたり、プライベートな環境を構築することができます。 使用したOSはCentOS5, CentOS6の2つです。~ CentOS5, CentOS6で操作に差異がある場合は、別途記述します。~ #contents #htmlinsertpcsp(db-top.html,db-sp.html) * PostgreSQLのソースコードを入手する [#dff76b33] [[NPO法人 日本PostgreSQLユーザ会>http://www.postgresql.jp/]]からPostgreSQLのソースコードをダウンロードすることができます。~ ブラウザを利用してダウンロードしてもよいですし、wgetやcurlコマンドを利用してダウンロードしてもよいでしょう。~ 本資料では、ブラウザを利用してダウンロードします。~ 本資料作成時の最新バージョンである、9.1.4のソースコードを利用します。 #ref(01.gif) * Cコンパイラなどの開発環境をインストールしていない場合 [#n18df6fe] CentOSで開発環境をインストールしていない場合は、以下の資料を参考に開発環境(ツール)をインストールしてください。 -[[CentOSで開発ツールを一括でインストールする>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%B8%80%E6%8B%AC%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.html]] -[[関連パッケージをインストール・アンインストールする方法>http://linux.just4fun.biz/CentOS/%E9%96%A2%E9%80%A3%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] * ダウンロードしたPostgreSQLを解凍します。 [#vce793f3] 以下、CentOS上での作業です。 ユーザアカウントはsakuraで行います。 以下の通り、ダウンロードしたPostgreSQLのソースコードはアカウントsakuraのホームディレクトリに保存しました。 [sakura@centos ~]$ pwd /home/sakura [sakura@centos ~]$ ls -l 合計 19984 -rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgresql-9.1.4.tar.gz * コンパイルする前にインストールが必要なパッケージなど [#fe57d004] CentOS5, CentOS6でPostgreSQLをソースコードからコンパイルするために必要なパッケージなどを以下に記します。 ** CentOS 5 [#t9091c8e] +flexのインストール(バージョンアップ)~ 記事を参考にflexをインストールしてください。 --[[flexのインストール>PostgreSQL/flexのインストール]] + readline-develパッケージのインストール + zlib-develパッケージのインストール ** CentOS 6 [#cfc21b82] + readline-develパッケージのインストール + zlib-develパッケージのインストール 以下にパッケージがインストールされていない場合にconfigureコマンドを利用すると出力される警告やエラーについて記します。~ コンパイルとインストールに進む方は「[[コンパイル&インストール>#eb61f7c7]]」に進んでください。 ** 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 old to use with PostgreSQL. *** Flex version 2.5.31 or later is required, but this is /usr/bin/flex version 2.5.4. configure: WARNING: *** The installed version of Flex, /usr/bin/lex, is too old to use with PostgreSQL. *** Flex version 2.5.31 or later is required, but this is /usr/bin/lex version 2.5.4. no configure: WARNING: *** Without Flex you will not be able to build PostgreSQL from Git nor *** change any of the scanner definition files. You can obtain Flex from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this because the Flex *** output is pre-generated.) ** readlineのライブラリ [#va6cfb3e] configure時に以下のメッセージが表示された場合は、readline-develがインストールされていないためです。~ 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. rootになり、以下のコマンドでreadline-develをインストールしてください。 yum -y install readline-devel ** zlibライブラリ [#l7a3da61] configure時に以下のメッセージが表示された場合は、zlib-develがインストールされていないためです。~ 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. 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 postgresql-9.1.4 -rw-r--r-- 1 sakura sakura 20437875 8月 8 22:56 postgresql-9.1.4.tar.gz 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を起動するために以下のようにPATHを設定します。~ .bashrcなどに追記すれば以後、有効になります。 export PATH=$HOME/pgsql/bin:$PATH - initdbをしてみる~ 上記のPATH設定によりinitdbコマンドがprefixで指定したディレクトリのbinディレクトリにインストールしたinitdbコマンドを示しています。 [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 owned by user "sakura". 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/1 ... ok <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.conf drwx------ 4 sakura sakura 4096 8月 9 00:07 pg_multixact 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 postgresql.conf - 作成したデータベースシステム(クラスタ)を起動してみます。~ pg_ctlコマンドにより起動します。 [sakura@centos ~]$ pg_ctl -D $HOME/sakura start server starting [sakura@centos ~]$ LOG: database system was shut down at 2012-08-09 00:07:32 JST LOG: autovacuum launcher started LOG: database system is ready to accept connections Enterキーを押せばプロンプトが戻ってきます。 - SQLを実行してみます。~ psqlコマンドを起動しSQLを実行してみます。~ データベースを作成していないので、最初からあるpostgresに接続しSQLを実行してみます。 [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 is shut down done server stopped * 関連資料 [#y90019a7] -[[PostgreSQLをソースからCentOSにインストール>PostgreSQL/PostgreSQLをソースからCentOSにインストール]] -[[CentOSで開発ツールを一括でインストールする>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E4%B8%80%E6%8B%AC%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.html]] -[[関連パッケージをインストール・アンインストールする方法>http://linux.just4fun.biz/CentOS/%E9%96%A2%E9%80%A3%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.html]] -[[flexのインストール>PostgreSQL/flexのインストール]] #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する
添付ファイル:
01.gif
666件
[
詳細
]