RVM Bundle安装缺lessGem错误,即使安装了Gem

即使我目前已经安装了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 

这也是我的gem环境

 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并重新安装哪些似乎不起作用。 我难住,任何帮助,将不胜感激。

将以下内容(从.bash_profile取得)添加到.bashrc中为我修复:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

我有一个干净的安装RVM 1.10.3相同的问题。 重新安装后,我注意到已经安装了bundler,并且<gemset> / bin目录被添加到我的$ PATH中,但这些bin目录实际上并不存在。 我认为这只是一个RVM错误。

作为一个快速解决scheme,我手动将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/ 

这些path中的Ruby和Bundler版本可能会有所不同。


上面的解决scheme工作,但它是窃听我,所以我把它放到rvm家伙; 事实certificate我的〜/ .gemrc文件是用这一行覆盖了gem的位置:

 - "gem" => "-n/usr/local/bin" 

删除它固定它给我。 看到这里完整的线程: https : //github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267

我有一个类似的问题,答案(至less对我来说)是经过大量的试验和错误,非常简单。

这绝对是一个path问题,@ gamecreature提到path顺序是我的关键线索。

我不知道它是如何发生的,但是我的$HOME/.rvm/bin作为PATH导出中的第一项。

这是不必要的,因为这个目录通过获取rvm文件以正确的顺序被添加到path中。

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

所以我的修复只是从我的PATH导出中删除$HOME/.rvm/bin

如果您有多个init文件(.bashrc,.bash_profile,.profile),请确保按照rvm疑难解答页面上的build议操作:

确保rvm文件的源文件在configuration文件(.bash_profile / .bashrc / .zshrc)中最后发生,基本上在任何PATH /函数或别名的自定义之后。

但是我也build议检查PATH定义的其余部分,以确保没有声明任何重复的优先。

我有一个类似的问题。 原来我没有一个项目特定的.rvmrc文件。 我刚刚创build它使用

 rvm --rvmrc --create 1.9.3@my_project_name 

在我的项目目录中

这解决了这个问题

如果你到了这个底部,仍然撞在墙上…

我的问题是, rvm install 1.8.7在安装后期失败,但似乎已经成功(我有ruby1.8.7,可以创buildgemset)

但是好像$GEM_HOME是在安装脚本的后期设置的,因为没有设置,rvm没有在正确的位置寻找gem。

我跑rvm reinstall 1.8.7 ,仔细寻找错误。

是什么给我的是这个线程: https : //groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion

你可以通过运行来检查这是否是你的问题

echo $GEM_HOME或者gem env或者检查你的rvm安装日志(参见上面的链接)

你有没有在你的gempath中看到你的ruby版本和gem名称? 如果没有,也许rvm安装失败。

我不知道是不是你的问题的原因。 但是我也有类似的问题。 原因是我的RVM环境不正确。

我有2个用户,其中一个没有工作。 工作用户使用下面的捆绑脚本。 (从哪个包输出)

/home/rvm/.rvm/gems/ruby-1.9.3-p0/bin/bundle

错误的rvm-installation用户使用:

/home/user/.rvm/bin/bundle

这是因为错误的$ PATH命令。 .rvm / gems / ruby​​ -… / binpath应位于./rvm/binpath之前。

在我的情况下,原因是我把$ PATHvariables设置为另一个用户的rvm。 我通过向用户的RVM添加一个符号链接并修改了我的path:

/home/rvm/.rvm/bin

/home/user/.rvm/bin

当上面的代码不适合你时,你可以在加载rvm之后手动调整path。

试试这个: https : //rvm.io/integration/gnome-terminal/

它说configuration文件在启动时运行,我运行的Ubuntu 12.10和它的工作。 唯一需要做的是在terminalconfiguration文件首选项(标签标题和命令)中设置“运行命令作为loginshell”。

希望它可以节省一些时间给别人。

切换到一个新的空白gemset并运行gem install bundler之后,这也发生在我身上。 原因是shell是“记住”你使用的最后一个可执行的bundle 。 为了解决这个问题(至less在bash -descendants中):

 hash -r 

你知道吗,这显然是你的PATHvariables的问题。

你应该确定which bundle/usr/local/rvm/gems/ruby-1.9.3-p194/bin/bundle而不是/usr/local/rvm/bin/bundle

暗示:

你只是在你的.zshrc文件中使用PATH =一些明确的列表?

那么你应该改变path= $ PATH:一些列表

我安装ruby1.9.3 rvm。 完成git octopress之后,只需编辑$ path_of_git / .rvmrc就可以像这样“rvm use 1.9.3”。 然后运行“cd ..; cd $ path_of_git”命令。 之后,它会问你天气信任的.rvmrc或不。 input'y'使.rvmrc文件工作。

我有一个非常相似的问题,原因稍有不同。 我的主目录有一个旧的ruby安装程序遗留的.gemrc文件,我在删除旧文件时​​错过了。 看起来,gem混淆rvm设置与这个文件中的设置。 一旦我删除它(和一些文件安装到旧位置),一切工作正常。

今天早些时候我遇到了同样的问题。 我用来解决这个问题的方法是这样的:

1)运行

 cap shell 

在同一台机器上,你通常会运行cap部署。 然后执行

 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文件。 这解决了我的问题

在多台机器上安装了相同的RVM,但在另一台机器上却没有这些问题的情况下,我决定寻找一些更好的,更less出错的RVM。

我发现并切换到rbenv ,这比RVM简单得多。

正如rbenv的README所述:

rbenv没有…

  • 让您在每个用户的基础上更改全球Ruby版本
  • 每个项目的Ruby版本提供支持。
  • 允许您用环境variables覆盖Ruby版本

与rvm相比,rbenv不…

  • 需要加载到你的shell。 相反,rbenv的shim方法通过向$ PATH添加一个目录来工作。
  • 覆盖像cd的shell命令。 这是危险的,容易出错。
  • 有一个configuration文件。 除了要使用哪个版本的Ruby之外,没有什么可configuration的。
  • 安装Ruby。 你可以自己构build和安装Ruby,或者使用ruby-build来自动完成这个过程。
  • pipe理gem。 Bundler是pipe理应用程序依赖关系的更好方法。 如果您有尚未使用Bundler的项目,则可以安装rbenv-gemset插件。
  • 为了兼容性,需要对Ruby库进行更改。 rbenv的简单性意味着只要它在你的$ PATH中, 没有别的东西需要知道它。
  • 切换到项目时提示您提示警告。 而不是执行任意代码,rbenv只读取每个项目的版本名称。 没有什么可以“信任”的

所以,如果你问我,转储RVM并切换到rbenv。

当我指定我想要使用的Ruby版本时,这适用于我:

 $ rvm use 1.9.2-p290 Using /Users/myname/.rvm/gems/ruby-1.9.2-p290 

在更新我的Ruby修补程序级别之后,自己就会遇到这个问 我运行了which gem ,发现它使用了rubygems的全局版本,在这种情况下,path是~/.rvm/bin/gem 。 所以我运行rvm rubygems current ,把它安装到~/.rvm/rubies/ruby-1.8.7-p370/bin/gem 。 冉gem install bundlerbundle再次。 问题解决了。

当我切换到(rvm 1.15.1)的目录中有一个空的.rvmrc文件时,我遇到了同样的问题。 显然这个错误有很多原因

在我的一台笔记本电脑上遇到了同样的问题(我一直在安装打包程序,而rvm无法识别)。 我猜我可能安装了RVM错误,而我仍然是一个铁轨noob。 我试过上面的解决scheme,但它不适合我。 搞乱了之后,我放弃了,删除了RVM并重新安装。 我想这是由于一些奇怪的configuration问题深深地嵌套在某处或。 以下是我采取的步骤:

删除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 

当然,墨菲定律仍然适用。 我遇到了另一个问题,即使Xcode与gcc一起安装,我的笔记本电脑也找不到非破损的C编译器 。 我最后的步骤是去https://github.com/kennethreitz/osx-gcc-installer并安装他们的软件包并重新安装ree。

我希望最后的解决scheme可以帮助某人。 祝你好运!

对于我的设置,添加apache运行的用户到rvm组工作

 usermod -a -G rvm www-data 

我也有这个问题。 我通过指定一个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!}