UbuntuにParkPlaceをインストール

久しぶりにAmazon S3を使う必要が有ったので、テスト環境としてParkPlaceを準備。でも、起動に失敗してしまう(汗)。数ヶ月前までは正常に動作していたはずなのだが、いつの間にか動作環境が壊れてしまったのだろうか。再インストールを試みようとするが、前回インストールした時の記録がどこにも残っていない(さらに汗)。「必要な情報は見つからない」とはマーフィーの法則通りだ。仕方なく試行錯誤しつつインストールを試みたので、今回はその覚え書。

手元のRails環境では下記の問題があった。

問題:LoadError mkmfが発生する

 extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
        from extconf.rb:1
  • 対策:ライブラリの不足が原因なので追加インストールする。
sudo apt-get install ruby1.8-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install libsqlite3-ruby

問題:SQLite3エラーが発生する

% ./bin/parkplace 
-- RubyTorrent found, torrent support is turned on.
-- TORRENT SUPPORT IS EXTREMELY EXPERIMENTAL -- WHAT I MEAN IS: IT PROBABLY DOESN'T WORK.
!! Your SQLite3 adapter isn't a compiled extension.
!! Please check out http://code.whytheluckystiff.net/camping/wiki/BeAlertWhenOnSqlite3 for tips.
  • 対策:sqlite3-rubyをインストールする。
% sudo gem install sqlite3-ruby
Password:
Building native extensions.  This could take a while...
Successfully installed sqlite3-ruby-1.2.5
1 gem installed
Installing ri documentation for sqlite3-ruby-1.2.5...

問題:NameErrorが発生する

% ./bin/parkplace 
./lib/parkplace.rb:10: uninitialized constant ActiveRecord::Base (NameError)
  • 対策:意味不明なメッセージだが、新しいバージョンのcampingが原因と分かったので取りあえずアンインストールしておいた。
% sudo gem  uninstall camping
Select gem to uninstall:
 1. camping-1.5.180
 2. camping-2.0
 3. All versions
> 2
Successfully uninstalled camping-2.0

この状態でようやく起動できるようになった。

% ./bin/parkplace 
-- No RubyTorrent found, torrent support disbled.
** ParkPlace example is running at http://127.0.0.1:3002/
** Visit http://127.0.0.1:3002/control/ for the control center.

念のため記載しておくと、現在の各バージョンは下記の通り。

% gem list
*** LOCAL GEMS ***
activerecord (2.2.2)
activesupport (2.2.2)
builder (2.1.2)
camping (1.5.180)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.7)
gem_plugin (0.2.3)
markaby (0.5)
metaid (1.0)
mongrel (1.1.5)
rack (1.1.0)
sqlite3-ruby (1.2.5)

activerecordなど、新しすぎるバージョンも良くないようだ。本番環境のサーバなら一意にバージョンを指定できるけど、いろいろなバージョンを次々に入れて動かしている開発環境では、こんな細かい情報がずっと後になって役立つことが多い(これで安心)。また、MacOS X (10.6.3)でも同様の構成で動作可能だった。

なお、ParkPlaceの配布元だったサイトはアクセスできないようだ。

githubには様々なparkplaceが載っているが、今回は下記のソースコードを利用した。

問題はローカル環境で開発している時です。ネットワーク接続が必須なのは非常に面倒ですし、何よりAmazon S3は有料のWeb APIなので、開発しているだけで課金されてしまうのは問題です。そこで使うのがAmazon S3クローンであるParkPlaceです。このソフトウェアはクローンとは言っても置き換えを目指すのではなく、Amazon S3を利用したソフトウェア開発を便利にするために提供されているソフトウェアになります。

Amazon S3クローンを作る·Park Place MOONGIFT