Redmine 1.4.0が出ましたが、今までと違いrailsを同梱しなくなってしまいました。
また、gemのパッケージを管理するBundlerが適用されるようになり、非インターネット接続環境でのインストールが面倒になってしまいました。
1.3.2から1.4.0にアップデートするに当たり前のバージョンのように、必要なgemをあらかじめインストールしてからrakeコマンドを実行してみると、bundleのインストールが足りないとエラーになりました。残念ながら、bundleを通してインストールしないと、rakeコマンドがエラーになってしまうようです。
# rake db:migrate RAILS_ENV="production" Some gems may need to be installed or updated. Please run `bundle install --without development test`. #
ここで、エラーメッセージにあるコマンドを実行してみると、
# bundle --without development test Fetching gem metadata from http://rubygems.org/. Error Bundler::HTTPError during request to dependency API Fetching full source index from http://rubygems.org/ Could not reach http://rubygems.org/ #
と非インターネット接続環境なのでエラーになります。
調べまわっていると、bundleコマンドにも--localオプションがあるようです。
必要なgemをあらかじめ、
必要なgemは、
ただし、railsについては、Gemfileに書かれているrailsがさらに複数のgemに依存しているため、依存を含めて集めておく必要があります。(gem fetch -v 2.3.14 actionmailer のように)
そして、bundleコマンド実行ですが、
# bundle install --without development test postgresql sqlite --local
のように実行します。通常MySQLを使うので、PostgreSQLやSQLiteは使わないためです。