2010-10-02 134 views
18

我正在尝试使用instructions here来安装捆绑软件的预发布版本的gem。从Github与Bundler安装gem

“捆绑安装”输出列出了安装的gem,但“gem list”未能找到它。

我的Gemfile:

source :gemcutter 

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

这里是一个gist与我的样本代码的其余部分。

有没有人得到这种情况下工作?

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

谢谢。

+0

是什么'rackup'的输出? – marshally 2010-10-02 18:37:49

回答

2

Bundler可能已经在本地安装到您的应用程序。根据操作系统以及您是否使用RVM,这可能会有很大差异。

bundle show sinatra的输出是什么?

在我的情况,西纳特拉在这里安装:

/home/marshall/.rvm/gems/[email protected]/bundler/gems/sinatra-9cfa74a7f352 

西纳特拉不宝石列表中显示,但服务器正常启动,如果我执行rackup

+0

束显示:由包包括宝石: * RedCloth(4.2.3) *捆绑(1.0.1) *机架(1.2.1) *屈(1.1.0 9cfa74a) *倾斜(1.1) – 2010-10-02 18:29:03

+0

之前应该提到,我使用的是RVM和OS X.所以我猜这个宝石是存在的,这个需求没有正确解决。 – 2010-10-02 18:33:21

0

它看起来像使用Shotgun和Bundler(仅限git存储库)存在问题。

如果我使用机架启动我的应用程序,一切都很好。我打算再调查一下,然后提交一个(或两个)项目的bug。

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 git help

因为RubyGems的缺乏处理从混帐宝石的能力,从一个Git仓库安装任何宝石将不会在宝石列表显示出来。但是,在运行Bundler.setup后,它们将可用。

最好的问候,希望这有助于

ED

0

宝石通过捆绑安装在Engine Yard的去一个不同的文件夹孤立他们。

通常/data/APP_NAME/shared/bundled_gems

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