Rails 2.1・その10(gemの依存関係を明示的に指定)
自分のプロジェクトで使う gem はこれですので、すべからくインストールすべし!ということを指定できるようになりました。
まあ、gem 依存については私も大層な知識がないのでorz、頼みの rails-2.1.0/CHANGELOG ファイルを見ながらこの記事を書いてみようかなと思います。
config/environment.rb
さて、こういう風に設定しておいて実際プロジェクトを実行しようとすると怒られます。
怒られるというのは、environment.rb に指定した gem がインストールされていない場合は、怒られます。
rake gems:install しなさいよ、と言われているように、rake コマンドでなんとかしなさいとのお達しを授かります。
そこで以下の rake コマンドを使ってなんとかしましょう。
# インストールが必要な gem のうち、どれがインストールされているかを調べる
rake gems
# インストールが必要な gem を gem install してくれる。このコマンドは root 権限で実行せねばならんでしょう
rake gems:install
# gem install されている gem のうち、プロジェクトに必要な gem 全部を、vendor/gems/ ディレクトリの中にコピーしてくれる。
# こうすることでこの gem は frozen 状態となる。
rake gems:unpack
# gem install されている gem のうち、指定した gem を、vendor/gems/ ディレクトリの中にコピーしてくれる。
# こうすることでこの gem は frozen 状態となる。
rake gems:unpack GEM=gem名
# vendor/gems/ の中の gem を native extension へとビルドしてくれる。configure してくれたり make してくれたりですね。
rake gems:build
【広告】
まあ、gem 依存については私も大層な知識がないのでorz、頼みの rails-2.1.0/CHANGELOG ファイルを見ながらこの記事を書いてみようかなと思います。
config/environment.rb
Rails::Initializer.run do |config|
# bj という名前の gem パッケージが必要
config.gem "bj"
# hpricot という名前で、バージョンが0.6でリポジトリが http://code.whytheluckystiff.net の gem パッケージが必要
config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
# aws-s3 という名前の gem パッケージで、でもインストール先は aws/s3 になるようなパッケージが必要
config.gem "aws-s3", :lib => "aws/s3"
end
さて、こういう風に設定しておいて実際プロジェクトを実行しようとすると怒られます。
怒られるというのは、environment.rb に指定した gem がインストールされていない場合は、怒られます。
These gems that this application depends on are missing:
- bj
- hpricot
- aws-s3
Run "rake gems:install" to install them.
rake gems:install しなさいよ、と言われているように、rake コマンドでなんとかしなさいとのお達しを授かります。
そこで以下の rake コマンドを使ってなんとかしましょう。
# インストールが必要な gem のうち、どれがインストールされているかを調べる
rake gems
# インストールが必要な gem を gem install してくれる。このコマンドは root 権限で実行せねばならんでしょう
rake gems:install
# gem install されている gem のうち、プロジェクトに必要な gem 全部を、vendor/gems/ ディレクトリの中にコピーしてくれる。
# こうすることでこの gem は frozen 状態となる。
rake gems:unpack
# gem install されている gem のうち、指定した gem を、vendor/gems/ ディレクトリの中にコピーしてくれる。
# こうすることでこの gem は frozen 状態となる。
rake gems:unpack GEM=gem名
# vendor/gems/ の中の gem を native extension へとビルドしてくれる。configure してくれたり make してくれたりですね。
rake gems:build
【広告】