メモ: 2008年9月アーカイブ

Rails自体をプロジェクト内に取り込む

Railsはシステムワイドにインストールして使うのが一般的だと思いますが、インストールされてるRailsのバージョンを気にしたり、ある日突然バージョンアップによって動かなくなったりするのを気にしたりしたくないので、プロジェクト内にインストールして使うようにしてみました。
こうしておくと、rubyがインストールされたシステムであれば、チェックアウトするだけですぐに動かす事ができるようになります。

rubygems をインストールする

"$TOPDIR/vendor/gems" にインストールします。
ドキュメントは必要ないのでインストールしません。

ruby setup.rb --prefix=$TOPDIR/vendor/gems --no-rdoc --no-ri

インストールした gem コマンドは直接は実行しないのですが、いちおう shebang を /usr/bin/env 経由で実行するように書き換えます。

vim $TOPDIR/vendor/gems/bin/gem
#!/usr/bin/env ruby

gem コマンドのラッパーを $TOPDIR/bin/gem に作ります。
環境変数 "$GEM_HOME" で rubygems がインストールされたディレクトリを指定します。
ruby の "-I" オプションで rubygems のライブラリのディレクトリを指定します。
今後はこれを実行する。

mkdir $TOPDIR/bin
vim $TOPDIR/bin/gem
#!/bin/sh
BIN_DIR=$(cd $(dirname $0); pwd)
TOP_DIR=$(dirname $BIN_DIR)
VENDOR_DIR=$TOP_DIR/vendor
GEM_DIR=$VENDOR_DIR/gems

GEM_HOME=$GEM_DIR /usr/bin/env ruby -I $GEM_DIR/lib \
$GEM_DIR/bin/$(basename $0) $*

ついでに ruby コマンドのラッパーも作る。

vim $TOPDIR/bin/ruby
#!/bin/sh
BIN_DIR=$(cd $(dirname $0); pwd)
TOP_DIR=$(dirname $BIN_DIR)
VENDOR_DIR=$TOP_DIR/vendor
GEM_DIR=$VENDOR_DIR/gems

GEM_HOME=$GEM_DIR /usr/bin/env ruby -I $GEM_DIR/lib $*

Railsをインストール

$TOPDIR/bin/gem を使って Rails をインストールします。
ドキュメントは必要ないのでインストールしません。
ドキュメントは大量にできるので、コミットすると大変な事になります。
最初ドキュメント込みで svk 使ってたら死にました。orz

$TOPDIR/bin/gem install --env-shebang --no-rdoc --no-ri rails

rails, rake コマンドのラッパーを作る。
$TOPDIR/bin/gem を汎用的に作っているので、シンボリックリンクをはるだけでおk。

ln -s gem $TOPDIR/bin/rails
ln -s gem $TOPDIR/bin/rake

プロジェクト開始

$TOPDIR/bin/rails コマンドでプロジェクトを開始する。

$TOPDIR/bin/rails $TOPDIR

動作確認

$TOPDIR/bin/ruby $TOPDIR/script/server

動いた!!\(^o^)/

今回はWebrick経由なので問題なく動いたけど、fcgi経由とかだと dispatch.* 辺りを調整しないとダメなはず。
その辺はまたやる。

このアーカイブについて

このページには、2008年9月以降に書かれたブログ記事のうちメモカテゴリに属しているものが含まれています。

前のアーカイブはメモ: 2007年4月です。

次のアーカイブはメモ: 2009年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。