【问题标题】:Bundler: forcing it to load from two different directoriesBundler:强制它从两个不同的目录加载
【发布时间】:2010-09-29 19:15:29
【问题描述】:

由于我公司的 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

但是它仍然无法正确加载宝石:

timetips1-lm27:~/ka$ ./script/rails c tii_test
在任何来源中都找不到 ruby​​-oci8-2.0.4
尝试运行bundle install

我一直在搜索源代码,试图找到一种方法来强制 Bundler 使用正常的加载路径,但结果确实很短,而且我的大脑因盯着源代码两天而被煎炸了。关于如何解决问题的任何想法?

【问题讨论】:

    标签: gem bundler


    【解决方案1】:

    所以事实证明我做的一切都是正确的。 IT 没有安装 ruby​​-oci8 gem,而是手动编译了 ruby​​-oci8 库并将其加载到每个服务器上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2012-07-25
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多