0

私の会社の IT 要件により、コンパイルが必要な gem は IT エンジニアがインストールする必要があり、純粋な ruby​​ gem はプロジェクトのサブフォルダーにインストールされます。これらのニーズを満たすために、宝石をさまざまなグループに分けました。

source 'http://rubygems.org'
gem 'rails', '3.0.0'
gem 'activerecord-oracle_enhanced-adapter', '~> 1.3.1'
gem 'memcache-client', :require => 'memcache'
gem 'builder'
gem 'acts_as_list'

group :development, :test do
  gem 'sqlite3-ruby', :require => 'sqlite3'
  gem 'ruby-debug19', :require => 'ruby-debug'
end

group :native do
  gem 'ruby-oci8'
  gem 'nokogiri'
end

インストール時に、実行するテストサーバーでビルドコマンドを実行しますbundle install --without native

これにより、Ruby のみのバージョンの gem が適切にインストールされます。その後、ビルド サーバーは、これから .bundle/configファイルを変更します。

--- 
BUNDLE_PATH: vendor/bundle
BUNDLE_WITHOUT: development:native
BUNDLE_DISABLE_SHARED_GEMS: "1"

これに

--- 
BUNDLE_PATH: vendor/bundle
BUNDLE_WITHOUT: development

ただし、まだ gem を正しくロードできません。

timetips1-lm27:~/ka$ ./script/rails c tii_test
どのソースにも ruby​​-oci8-2.0.4 が見つかりませんでした を
実行してみてくださいbundle install

Bundler に通常のロード パスを強制的に使用させる方法を見つけようとして、ソース コードを精査してきましたが、実際には思いつきませんでした。ソース コードを 2 日間凝視したことで、私の脳は焼き尽くされました。問題を解決する方法についてのアイデアはありますか?

4

1 に答える 1

0

したがって、私はすべてを正しく行っていることがわかりました。IT 部門は ruby​​-oci8 gem をインストールせず、手動で ruby​​-oci8 ライブラリをコンパイルして各サーバーにロードしました。

于 2010-09-29T19:56:21.100 に答える