我收到以下错误,即使我目前安装了Bundler gem(当我运行$ gem list时出现)。
ERROR: Gem bundler is not installed, run `gem install bundler` first.
我正在使用RVM,我的$ PATH如下:
/Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin:
/Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global/bin:
/Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin:
/Users/cjstingl/.rvm/bin:
/Users/cjstingl/.bin:
/usr/local/sbin:
/usr/local/Cellar/php/5.3.6/bin:
/usr/local/share/python:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin
这也是我的宝石环境
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.15
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
- INSTALLATION DIRECTORY: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd
- RUBY EXECUTABLE: /Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd
- /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => false
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "-n/usr/local/bin --no-ri --no-rdoc --no-user-install"
- REMOTE SOURCES:
- http://rubygems.org/
另外:使用bundle -v命令返回相同的错误
我尝试过破解RVM并重新安装,这似乎不起作用。我很难过,任何帮助都会受到赞赏。
答案 0 :(得分:94)
将以下内容(取自.bash_profile)添加到.bashrc中为我修复了它:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
答案 1 :(得分:19)
我在安装RVM 1.10.3时遇到了同样的问题。重新安装后,我注意到已安装了bundler,并且< gemset> / bin目录正被添加到我的$ PATH中,但这些bin目录实际上并不存在。我认为这只是一个RVM错误。
作为快速修复,我手动将bundle
二进制文件复制到确实存在的RVM bin目录中。这似乎解决了我的问题:
$ cd ~/.rvm
$ cp gems/ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/ruby-1.9.3-p0/bin/
这些路径中的Ruby和Bundler版本可能会有所不同。
上面的解决方案有效,但是它让我烦恼,所以我把它放到了rvm家伙身上;事实证明我的〜/ .gemrc文件用这一行覆盖了gem位置:
- "gem" => "-n/usr/local/bin"
删除它为我修好了。请参阅此处获取完整主题:https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267
答案 2 :(得分:10)
我遇到了类似的问题,经过大量的试验和错误后,答案(至少对我而言)非常简单。
这绝对是一个路径问题,@ gamecreature提到路径顺序对我来说是至关重要的线索。
我不确定它是怎么发生的,但我的$HOME/.rvm/bin
是PATH导出中的第一项。
这是不必要的,因为通过获取rvm文件,该目录以正确的顺序添加到路径中。
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
所以我的解决方法就是从我的PATH导出中删除$HOME/.rvm/bin
。
如果你有多个init文件(.bashrc,.bash_profile,.profile),请务必遵循rvm troubleshooting page上的建议:
确保rvm文件的源代码出现在 last 中 配置文件(.bash_profile / .bashrc / .zshrc)基本上是在任何之后 PATH /函数或别名的自定义。
但我还建议检查PATH定义的其余部分,以确保没有声明任何重复的重复项。
答案 3 :(得分:7)
我有类似的问题。事实证明我没有项目特定的.rvmrc文件。我刚刚使用
创建了它rvm --rvmrc --create 1.9.3@my_project_name
在我的项目目录
这解决了问题
答案 4 :(得分:5)
如果你已经达到了这个目的的底部并仍然撞在墙上......
我的问题是rvm install 1.8.7
在安装后期失败但似乎已经成功(我有红宝石1.8.7并且可以创建宝石集)
但似乎$GEM_HOME
在安装脚本中设置得较晚,而且由于没有设置,rvm没有找到宝石的正确位置。
我跑rvm reinstall 1.8.7
并仔细查看错误。
让我感到惊讶的是这个帖子: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion
您可以通过运行
来查看这是否是您的问题 echo $GEM_HOME
或gem env
或检查您的rvm安装日志(请参阅上面的链接)
您是否在Gem Path中看到了ruby版本和gemset名称?如果没有,可能rvm安装失败。
答案 5 :(得分:4)
我不知道这是否是你问题的原因。 但我遇到了类似的问题。原因是我的RVM环境不正确。
我有2个用户,其中一个用户没有。 工作用户使用以下捆绑脚本。 (输出来自:哪个捆绑)
/home/rvm/.rvm/gems/ruby-1.9.3-p0/bin/bundle
使用了错误的rvm-installation用户:
/home/user/.rvm/bin/bundle
原因是错误的$ PATH订单。 .rvm / gems / ruby -... / bin路径应放在./rvm/bin路径之前。
在我的情况下,原因是我将$ PATH变量设置为另一个用户的rvm。我通过向用户的RVM添加符号链接并从以下位置更改路径来修复此问题:
/home/rvm/.rvm/bin
到
/home/user/.rvm/bin
当上面的代码不适合您时,您可以在加载rvm后手动调整路径。
答案 6 :(得分:4)
试试这个:https://rvm.io/integration/gnome-terminal/
它说关于在启动时运行的配置文件,我正在运行ubuntu 12.10并且它可以工作。您唯一需要做的就是在终端配置文件首选项(选项卡标题和命令)中设置“运行命令作为登录shell”。
希望能节省一些时间。
答案 7 :(得分:3)
在切换到新的空宝石集并运行gem install bundler
之后,这也发生在我身上。原因是shell正在“记住”您使用的最后一个bundle
可执行文件。要解决这个问题(至少在bash
- 后代):
hash -r
答案 8 :(得分:3)
你知道吗,这显然是你的PATH变量的问题。
您应该确保which bundle
与/usr/local/rvm/gems/ruby-1.9.3-p194/bin/bundle
类似,而不是/usr/local/rvm/bin/bundle
。
提示:
您是否只在.zshrc文件中使用了PATH =一些显式列表?
然后你应该改为PATH = $ PATH:一些列表
答案 9 :(得分:3)
在具有相同设置的多台计算机上安装RVM并且在一台计算机上遇到RVM问题但在另一台机器上没有这些问题后,我决定寻找更好的,更不容易出错的东西。
我找到并切换到 rbenv ,这比RVM简单得多。
正如rbenv的README
所述:
rbenv确实...
- 让您基于每个用户更改全局Ruby版本。
- 为每个项目的Ruby版本提供支持。
- 允许您使用环境变量覆盖Ruby版本。
与rvm相反,rbenv不...
- 需要加载到您的shell中。相反,rbenv的shim方法通过向$ PATH添加目录来实现。
- 覆盖像cd这样的shell命令。这很危险且容易出错。
- 拥有配置文件。除了您要使用的Ruby版本之外,没有什么可配置的。
- 安装Ruby。您可以自己构建和安装Ruby,或使用ruby-build自动执行此过程。
- 管理gemsets。 Bundler是管理应用程序依赖关系的更好方法。如果您有尚未使用Bundler的项目,则可以安装rbenv-gemset插件。
- 需要更改Ruby库以实现兼容性。 rbenv的简单性意味着只要它在$ PATH中,nothing else需要了解它。
- 切换到项目时会提示警告。 rbenv不会执行任意代码,而只会从每个项目中读取版本名称。没有什么可以“信任”。
所以,如果你问我,请转储RVM并切换到rbenv。
答案 10 :(得分:2)
我用rvm安装了ruby 1.9.3。 git octopress完成后,只需编辑$ path_of_git / .rvmrc就像这个“rvm use 1.9.3”。然后运行命令“cd ..; cd $ path_of_git”。之后它会问你天气信任.rvmrc。输入“y”以使.rvmrc文件正常工作。
答案 11 :(得分:2)
我有一个非常类似的问题,原因略有不同。我的主目录从旧的ruby设置中遗留了.gemrc
文件,删除旧文件时我错过了。似乎gem将rvm设置与此文件中的设置混淆。一旦我删除它(以及一些文件安装到旧位置),一切正常。
答案 12 :(得分:2)
我今天早些时候遇到了同样的问题。我用来解决问题的方法是:
1)运行
cap shell
在同一台机器上,您通常会运行上限部署。然后执行
env | sort
这将在远程服务器上运行该命令。将输出复制并粘贴到本地文本文件中,例如capenv.txt
2)SSH进入同一个远程服务器,并执行相同的命令,即env |分类。将其保存为本地文本文件,例如sshenv.txt
3)对两个文件进行区分,看看sshenv.txt中不在capenv.txt中的内容 - 这很可能是你的问题所在。
< ++CAP ++
< _=/bin/sh
---
> ++ SSH ++
> __array_start=0
14a15
> PS1=\[\e]2;tracker@charlotte\a\e[0;31m LIVE:\u@\h \w> \e[0m
18d18
< rvm_env_string=ruby-1.9.3-p194
21d20
< rvm_ruby_string=ruby-1.9.3-p194
27c26,28
< USER=tracker
\ No newline at end of file
---
> USER=tracker
> USES_BASHRC=bashrc
> _=/usr/bin/env
4)我立即注意到shell解释器没有设置为bash。这可以通过添加
来解决set :shell, '/usr/bin/bash'
到deploy.rb文件。这解决了我的问题
答案 13 :(得分:1)
当我指定我想要使用的Ruby版本时,这对我有用:
$ rvm use 1.9.2-p290
Using /Users/myname/.rvm/gems/ruby-1.9.2-p290
答案 14 :(得分:1)
更新我的Ruby补丁级别后,自己也遇到了这个问题。我运行which gem
并发现它使用了全局版本的rubygems,在这种情况下路径为~/.rvm/bin/gem
。所以我运行rvm rubygems current
,将其安装在~/.rvm/rubies/ruby-1.8.7-p370/bin/gem
中。再次跑gem install bundler
和bundle
。问题解决了。
答案 15 :(得分:0)
我也有这个问题。我通过指定gemset修复了我的问题。
$ bundle install
ERROR: Gem bundler is not installed, run `gem install bundler` first.
$ rvm gemdir
/usr/local/rvm/gems/ruby-1.9.3-p194
$ rvm gemset list
gemsets for ruby-1.9.3-p194 (found in /usr/local/rvm/gems/ruby-1.9.3-p194)
global
rails32
$ rvm gemset use rails32
Using ruby-1.9.3-p194 with gemset rails32
$ rails s
Could not find rake-10.0.4 in any of the sources
Run `bundle install` to install missing gems.
$ bundle install
Fetching gem metadata from https://rubygems.org/.......
{And voila! it worked!}
答案 16 :(得分:0)
对于我的设置,添加apache为rvm组运行的用户
usermod -a -G rvm www-data
答案 17 :(得分:0)
在我的一台笔记本电脑上遇到同样的问题(我继续安装打包机,rvm无法识别它)。我猜我可能安装RVM错了,而我还是一个铁杆菜鸟。我尝试了上面的解决方案,但它对我不起作用。搞砸了之后,我放弃并删除了RVM并重新安装它。我认为这是由于一些奇怪的配置问题深深地嵌套在某处或。以下是我采取的步骤:
删除RVM:
rvm implode
再次安装RVM:
curl -L https://get.rvm.io | bash -s stable --rails
rvm reload
由于我正在开发一个旧的rails项目,我不得不安装ree-1.8.7-2012.02
rvm install ree-1.8.7-2012.02
当然,墨菲定律仍然适用。我遇到了另一个问题,即我的笔记本电脑找不到非破坏的C编译器,即使Xcode与gcc一起安装。我的最后步骤是 https://github.com/kennethreitz/osx-gcc-installer 并安装他们的软件包并重新安装ree。
我希望这个最后的解决方案可以帮助某人。祝你好运!
答案 18 :(得分:0)
当我在切换到的目录(rvm 1.15.1)中有一个空的.rvmrc
文件时,我遇到了同样的问题。显然,导致此错误的原因很多