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 bundler
和bundle
再次。 问题解决了。
当我切换到(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!}