要約:OS BoxesCentOS 7イメージに、PostgreSQL RPM Building Project - Repository Packagesのリポジトリを追加するだけ。PostgreSQL 9.5アルファ版がyumでインストールでき、手軽に試せます。
Contents


前おき、実行環境
最近PostgreSQLの記事を書いてなかったところに、先週2日の9.5 Alpah 1リリースがあったので、とりあえずインストールしてメモ。既にCentOS 6.6の仮想マシンでは開発中のソースから入れて使っていて(関連記事:528日)、何か違う方法ないかな~と思ったら、OS BoxesというウェブサイトでVirtualBoxCentOS 7イメージファイルが配布されていたので使ってみました。PostgreSQL 9.5 Alpha 1のリリース文は下記。

»PostgreSQL 9.5 Alpha 1 Released

[実行環境]

• ホストOSWindows7 32bit
• ゲストOSCentOS 7 64bit
• ゲストOSの元 …
OS Boxes - CentOS 7(VDIファイル)
• 仮想化ソフトウェア … Portable VirtualBox 4.3.6

Portable VirtualBoxは文字通りVirtualBoxWindows上でポータブルに使うもの。68日の記事の最初に概要を書きました。ウェブ上で日本語の情報も結構あります。

OS BoxesにはVMwareVirtualBoxの仮想マシンのイメージファイルがあり、今回は ↓ CentOSのページにあったCentOS 7単体のVDIファイルを使用。7z形式で584MB、解凍すると2.6GB。GUIがあるのでサイズが大きいです。できればコンソールだけのminimalが良かったけど、今回は見当たらず。


Portable VirtualBoxCentOS 7の仮想マシン作成
最初にディスクのない仮想マシンを、適当な名前で作ります。


↓ ディスクなしを指定する所。警告が出ますが(二つ目の画像)構わず続行。ここで「既存のディスク」として先のVDIファイルを指定することもできます。自分は、仮想マシンのフォルダが出来てからそこにVDIを持ってきて指定する方が分かりやすいので、そういう流れ。


↓ 仮想マシンができたら設定画面を開いて適宜設定しつつ、ストレージ追加の所で「既存のディスクを選択」(二つ目、三つ目の画像)。ここでファイル選択ダイアログが出るので、おもむろに前項で紹介したOS BoxesVDIファイルを解凍して(四つ目の画像)指定します。


↓ ディスクをセットしたら仮想マシンの出来上がり。次に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の記事
「yumPostgreSQLをインストールしてみよう」を参考にとりあえずpostgresql95-serverだけ入れました。データベースサーバの機能はこれで使用可能。
# yum -y install postgresql95-server


同じくLet's postgresqlの記事
「CentOSPostgreSQLを使ってみよう!(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のバージョンも絡んでいるようで、少しずつ調べる予定。