Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 捆绑安装后Gems不在本地Gems中_Ruby On Rails_Ruby_Bundler_Rbenv_Rbenv Gemset - Fatal编程技术网

Ruby on rails 捆绑安装后Gems不在本地Gems中

Ruby on rails 捆绑安装后Gems不在本地Gems中,ruby-on-rails,ruby,bundler,rbenv,rbenv-gemset,Ruby On Rails,Ruby,Bundler,Rbenv,Rbenv Gemset,新机器。安装新的rbenv。安装新的rbenv gemset。新的ruby-2.0.0安装。新的rails 4.0.0应用程序 当我 $ bundle install 从rails应用程序目录,我得到 Your bundle is complete! It was installed into ./vendor/bundle 但是,如果我 $ gem list 据称安装的宝石都没有出现 我跑了 $ rbenv rehash 为什么会这样 其他信息: $ which bundle /usr

新机器。安装新的rbenv。安装新的rbenv gemset。新的ruby-2.0.0安装。新的rails 4.0.0应用程序

当我

$ bundle install
从rails应用程序目录,我得到

Your bundle is complete!
It was installed into ./vendor/bundle
但是,如果我

$ gem list
据称安装的宝石都没有出现

我跑了

$ rbenv rehash
为什么会这样

其他信息:

$ which bundle
/usr/local/var/rbenv/shims/bundle
$ rbenv which bundle
/usr/local/var/rbenv/versions/2.0.0-p247/bin/bundle
$ rbenv which ruby
/usr/local/var/rbenv/versions/2.0.0-p247/bin/ruby
$ ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
$ rbenv gemset active
blog
$ which rails
/usr/local/var/rbenv/shims/rails

此应用程序中的默认设置是安装到
供应商/捆绑包
。您可以通过
将其安装到gems安装后显示的./vendor/bundle
文本中来判断这一点

指定必须通过
--system
才能在系统位置安装:

--system: Install to the system location ($BUNDLE_PATH or $GEM_HOME) even
          if the bundle was previously installed somewhere else for this
          application

编辑:更多的解释是,当不使用
bundle exec
时,您的ruby只知道使用--system选项安装的gems。您可以从
vendor/bundle
或通过运行
bundle exec gem list
或(Casper注意到的)
bundle list
选择的任何路径查看gem。现在,您可以选择是在系统位置还是在应用程序目录中安装gem。

gem列表
不显示安装在供应商中的捆绑gem。请尝试使用
捆绑列表
<代码>宝石!=<代码>捆绑包。谢谢。好的,那么,假设我希望我的gems位于应用程序目录中,我如何将其与应用程序的rbenv gemset连接起来?如果您的gems仅在一个应用程序的范围内,那么您为什么需要gemset呢?我想您不能同时使用gemset和
--path
选项。尝试
bundle--system
,然后您的gems应该在gemset中。
bundle list
列出了为capistrano部署的应用程序安装的所有gems。默认情况下,对于capistrano部署的应用程序,gems安装在文件夹
//shared/bundle/ruby
下。从
/current
文件夹运行
gem list
,比如
/current$gem list
只列出全局安装的gem。要查看为应用程序安装的gem列表,我们应该运行
/current$bundle list