†CentOS5.8にPostgreSQL9.1.4をソースからインストールしました。RPMパッケージからインストールしても良いのですが、特定ユーザ以外はPostgreSQLの各種コマンド等のPATHが通らないようにしたかったため、ソースから手動でインストールしました。†PostgreSQL9.1.4のソースを以下のサイトからダウンロードしました。†PostgreSQLユーザを以下のコマンドで作成しました。所属グループ=503(postgres)尚、パスワードの設定はおこないませんでした。postgrespostgres:!!:15510:0:99999:7:::!!になっているのでパスワードロック状態なのが確認できます。インストールすることにします。本資料はダウンロードしたPostgreSQLのソースアーカイブは/tmpにあることにします。スイッチユーザします。~]#インストールするディレクトリの作成およびパーミッションの変更など以下のオペレーションでインストールするディレクトリの作成および設定を行いました。スイッチユーザします。コマンドでダウンロードしたpostgresql-9.1.4.tar.gzを展開します。/tmp/postgresql-9.1.4.tar.gztarballが展開されていること確認します。postgresql-9.1.4展開したディレクトリにcdします。pwd/home/postgres/postgresql-9.1.4configureを実行します。インストール先は/opt/pgsqlなのでprefixに/opt/pgsqlを指定します。ライブラリが不足している場合、以下のようなエラーが出力される場合があります。以下の記事を参考にflexをインストールしてください。以下のコマンドでreadlineのライブラリをインストールしてください。以下のコマンドでzlibのライブラリをインストールしてください。zlib-develmakeコマンドを実行します。入ります<snip>makeが完了したらインストール前に動作確認をしてみます。installでコンパイルしたPostgreSQLをインストールします。上記までの操作では、まだインストールされていません。することによりPostgreSQLがインストールされます。complete.インストールされたか確認してみます。binpostgresユーザの.bashrcを編集postgresユーザの.bashrcにインストールしたPostgreSQLを使用するための環境変数を設定します。本記事では、viを使って追記しました。~/.bashrc追記した内容は以下の通りです。展開したPostgreSQLソース内にcontribディレクトリがあります。contribディレクトリ内のstart-scriptsにlinuxというファイルが起動スクリプトの雛型になります。)このファイルをrootユーザで/etc/rc.d/init.d/にpostgresとファイル名を変更してコピーします。rootユーザでコピーした/etc/init.d/postgresを修正します。修正箇所はprefixとPGDATAです。以下のコマンドで上記で編集した起動スクリプトを登録します。6:offPGDATAで設定したディレクトリを作成します。(initdbします。)postgresユーザにスイッチユーザします。上記で.bashrc設定をした環境変数が反映されていることを確認してください。ロケールは--no-localeでinitdbします。pg_hba.confを修正します。当方、localhostのみで運用するつもりなので、デフォルトままです。serviceコマンドにてインストールしたpostgresqlを起動してみます。okpostgresユーザで接続してみます。5で自動起動するように設定されていました。全てoffの場合は、以下のコマンドで自動起動するように設定してください。onこれで、他のユーザアカウントにインストールしたPostgreSQLの環境変数を設定すれば、設定したユーザのみ使用可能となります。今回は、特定ユーザのみPostgreSQLを使用できるようにし、現在の環境に影響をあたえたくないのでPostgreSQLのシェアードライブラリをldconfigに設定しませんでした。設定したい場合は、/etc/ld.so.conf.dディレクトリにpostgresql.confのようにファイルを作成しシェアードライブラリのディレクトリを設定すればOKです。