要約:OS BoxesのCentOS 7イメージに、PostgreSQL RPM Building Project - Repository Packagesのリポジトリを追加するだけ。PostgreSQL 9.5アルファ版がyumでインストールでき、手軽に試せます。
前おき、実行環境
最近PostgreSQLの記事を書いてなかったところに、先週2日の9.5 Alpah 1リリースがあったので、とりあえずインストールしてメモ。既にCentOS 6.6の仮想マシンでは開発中のソースから入れて使っていて(関連記事:5月28日)、何か違う方法ないかな~と思ったら、OS BoxesというウェブサイトでVirtualBoxのCentOS 7イメージファイルが配布されていたので使ってみました。PostgreSQL 9.5 Alpha 1のリリース文は下記。 » PostgreSQL 9.5 Alpha 1 Released
[実行環境]
• ホストOS … Windows7 32bit • ゲストOS … CentOS 7 64bit • ゲストOSの元 … OS Boxes - CentOS 7(VDIファイル)
• 仮想化ソフトウェア … Portable VirtualBox 4.3.6
Portable VirtualBoxは文字通りVirtualBoxをWindows上でポータブルに使うもの。6月8日の記事の最初に概要を書きました。ウェブ上で日本語の情報も結構あります。 OS BoxesにはVMwareとVirtualBoxの仮想マシンのイメージファイルがあり、今回は ↓ CentOSのページにあったCentOS 7単体のVDIファイルを使用。7z形式で584MB、解凍すると2.6GB。GUIがあるのでサイズが大きいです。できればコンソールだけのminimalが良かったけど、今回は見当たらず。
Portable VirtualBoxでCentOS 7 の仮想マシン作成
最初にディスクのない仮想マシンを、適当な名前で作ります。 ↓ ディスクなしを指定する所。警告が出ますが(二つ目の画像)構わず続行。ここで「既存のディスク」として先のVDIファイルを指定することもできます。自分は、仮想マシンのフォルダが出来てからそこにVDIを持ってきて指定する方が分かりやすいので、そういう流れ。 ↓ 仮想マシンができたら設定画面を開いて適宜設定しつつ、ストレージ追加の所で「既存のディスクを選択」(二つ目、三つ目の画像)。ここでファイル選択ダイアログが出るので、おもむろに前項で紹介したOS BoxesのVDIファイルを解凍して(四つ目の画像)指定します。 ↓ ディスクをセットしたら仮想マシンの出来上がり。次にCentOS 7最初の起動と環境設定をします。
CentOS 7最初の起動と環境設定
仮想マシンを起動すると、最初の数秒間はモード選択待ちで、何もしなければ通常起動。特に問題なく、ユーザのパスワード入力画面を経てGUIが立ち上がりました(ユーザ情報は前述したOS Boxesのページにあり、今回はユーザ名・パスワードともosboxes.org)。 PostgreSQLインストールに進む前に、使い勝手のためなど若干の環境設定。まず画面を800x600に小さくし(コンソールしか使わないので)、複数ワークスペースは無しに。 ↓ Region & Languageでキーボードを日本語(106/109キー)に変え、キーボード設定でカーソル点滅オフ。これでGNOMEターミナルでもカーソル点滅しなくなります。 ↓ 有線LANをオン。これだけでネットワークにつながりました(ViurualBoxのネットワーク設定はNAT)。タイムゾーンを変更して時刻が同期され、CentOS 6.6であった「時計が9時間進む」現象もなし。 これで最小限の設定を終え、次に本題のPostgreSQL 9.5 Alpha 1インストールに進みます。
PostgreSQL 9.5 Alpha 1インストール
念のため再起動すると ↓ なぜか壁紙が明るく変わってました。アプリケーションメニューからターミナルを起動します。今回は使いませんが既にFirefoxがインストール済み。 PostgreSQL公式サイトに、yumインストール向け案内とレポジトリ一覧があります。後者(下記リンクの二つ目)からCentOS 7用を確認して、ターミナルでrpmコマンドで追加(ルート権限が必要)。 » PostgreSQL 9.5 alpha packages are ready for testing
» PostgreSQL RPM Building Project - Repository Packages
# rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-1.noarch.rpm
↓ PostgreSQL 9.5のパッケージを検索すると、確かにありました。PL/Pythonも既に。
yum list | grep postgresql95
パッケージがいくつかありますが、Let's postgresの記事「yumでPostgreSQLをインストールしてみよう」を参考にとりあえずpostgresql95-serverだけ入れました。データベースサーバの機能はこれで使用可能。
# yum -y install postgresql95-server
同じくLet's postgresqlの記事「CentOS で PostgreSQL を使ってみよう!(2)」を参考に、ユーザpostgresの存在を確認。ついでにパスワードも設定しました。
# id postgres
# passwd postgres
先ほどのyumインストール結果を、ディレクトリ構造で確認。/usr/pgsql-9.5/bin下に各種実行ファイルがあり、/var/lib/pgsql/9.5/dataがデータディレクトリでした。
ls /usr
ls /usr/pgsql-9.5
ls /usr/pgsql-9.5/bin

ls /var/lib/pgsql
ls /var/lib/pgsql/9.5
ls /var/lib/pgsql/9.5/data
ここからpostgresユーザで。まずデータベースクラスタの初期化を、pg_ctlコマンドにinitオプションを付けて実行します。データディレクトリの場所は、既に環境変数PGDATAに入っていたので省略。
su - postgres
/usr/pgsql-9.5/bin/pg_ctl init
初期化が成功したら、最後にPostgreSQL起動用のpg_ctlコマンドが表示されます。そのデータディレクトリが環境変数PGDATAと同じなのを一応確認して、pg_ctl startでサーバ起動。同じターミナルでpsqlを起動すると即接続し、PostgreSQL 9.5 Alpha 1の動作を確認できました。
echo $PGDATA
/usr/pgsql-9.5/bin/pg_ctl start
/usr/pgsql-9.5/bin/psql
↓ psqlを終了した後、忘れずにサーバ本体を停止します。
/usr/pgsql-9.5/bin/pg_ctl stop
以上、配布されてるVDIファイルをセットしてネットワークにつなぎ、リポジトリを追加してyumインストールするだけの簡単な作業でした。面倒なのはリポジトリの長いアドレスを間違えずに入力すること。 実は当初、VirtualBox GuestAdditionsを入れてホスト側 → ターミナルへコピペする環境を整えてから作業する予定でしたが、どうやってもVirtualBox GuestAdditionsインストールに失敗するため今回は諦め、改めてまっさらなVDIファイルから最短でPostgreSQL 9.5 Alpha 1インストールまで試しました。 VirtualBox GuestAdditionsがないと共有フォルダを作れないので、ちょっと困りもの。ウェブ検索すると似た症状の人が世界中にいるっぽい…VirtualBoxのバージョンも絡んでいるようで、少しずつ調べる予定。