18

我正在尝试使用此处的说明安装带有捆绑程序的 gem 的预发布版本。

“bundle install”输出将 gem 列为正在安装,但“gem list”找不到它。

我的宝石文件:

source :gemcutter

gem 'sinatra', '1.1.0', :git => 'http://github.com/sinatra/sinatra.git'
gem 'RedCloth', '4.2.3'

这是我其余示例代码的要点。

有没有人让这个场景起作用?

注意:我也在使用 RVM(在 OS X 上)。bundle show 确实将 gem(和依赖项)列为现有,但我无法正确解决它们。

谢谢。

4

4 回答 4

23

我会查看加载路径,并从那里进一步调试,例如:

...(master) $ irb
irb(main):001:0> $LOAD_PATH.count
=> 8
irb(main):004:0> require 'bundler/setup'
=> true
irb(main):005:0> $LOAD_PATH.count
=> 112
irb(main):006:0> 

Bundler 为您配置加载路径,这意味着默认情况下并非所有 gem 都包含在您的加载路径中。

此外,从捆绑器 git help

因为 Rubygems 缺乏处理来自 git 的 gem 的能力,所以从 git 存储库安装的任何 gem 都不会显示在gem list 中。但是,它们将在运行Bundler.setup 后可用。

最好的问候,希望这会有所帮助

ED

于 2011-09-19T17:28:27.527 回答
2

Bundler 可能已将其本地安装到您的应用程序中。这可能会有很大差异,具体取决于操作系统以及您是否使用 RVM。

的输出是bundle show sinatra什么?

就我而言,sinatra 安装在这里:

/home/marshall/.rvm/gems/ruby-1.8.7-p302@3846859/bundler/gems/sinatra-9cfa74a7f352

Sinatra 未显示在 gems 列表中,但如果我执行rackup.

于 2010-10-02T18:25:20.007 回答
0

使用 Shotgun 和 Bundler(仅限 git 存储库)似乎存在问题。

如果我使用 rackup 启动我的应用程序,一切都很好。我将进行更多调查,然后在其中一个(或两个)项目中提交错误。

于 2010-10-04T13:02:15.820 回答
0

通过 Engine Yard 上的捆绑器安装的 Gem 会转到不同的文件夹以隔离它们。

通常是/data/APP_NAME/shared/bundled_gems

可以肯定的是,.bundle/config在Engine Yard的APP文件夹中检查您的文件

于 2011-09-19T17:48:04.610 回答