rvmsudo命令无法正常工作

时间:2012-12-07 14:55:33

标签: ruby-on-rails ruby rvm ubuntu-12.04

我正在尝试获取RoR环境的更新版本。

我正在运行Ubuntu 12.04,我有这个设置:

$ groups
user adm cdrom sudo dip plugdev lpadmin sambashare rvm
$ rvm -v
rvm 1.17.2 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ rvm list

rvm rubies

=* ruby-1.9.3-p327 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
$ ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
$ gem -v
1.8.24
$ rails -v
Rails 3.2.9

一切正常。但是现在我正在尝试安装Thin,我发现我的rvmsudo命令几乎没用:

$ rvmsudo echo 1
1
$ rvmsudo ruby -v
sudo: ruby: command not found
$ rvmsudo gem -v
sudo: gem: command not found
$ rvmsudo rails -v
sudo: rails: command not found

运行“rvmsudo thin install”时出现同样的错误。

我完全陷入困境。在Ubuntu 10.04中,它工作得很好,甚至在12.04我的第一次测试我的rvmsudo工作完美。我这次遵循完全相同的步骤,但似乎没有任何效果。

我使用“curl -L https://get.rvm.io | sudo bash -s stable”安装RVM,我将自己添加到rvm组,重启机器,使用“source /etc/profile.d/rvm.sh”并正常安装我的东西。

我在这里错过了什么吗?

谢谢!

5 个答案:

答案 0 :(得分:2)

export rvmsudo_secure_path=1文件的最后添加~/.bashrc,然后重新启动终端。

这对我有用(Ubuntu 12.10运行bash)

答案 1 :(得分:2)

这是因为您的/etc/sudoers中已设置了secure_path选项,且该选项的值与您当前的shell $PATH不同。

解决方案:

  1. 将以下命令添加到shell init脚本中(对于bash,它为* nix为.bashrc,对于mac os x为.bash_profile)

    export rvmsudo_secure_path=0  # means don't use the value in rvmsudo
    
  2. 将rvm和Ruby的路径添加到secure_path值。

  3. 从我的观点来看,第一个是可取的。

答案 2 :(得分:1)

我设法让它发挥作用。

我看到this serverfault page,我认为问题类似,所以我试了一下。

似乎RVM版本1.17中存在某些问题。我使用以下命令安装了以前的版本:

\curl -L https://get.rvm.io | sudo bash -s -- --version 1.16.13

但请注意,RVM 1.17安装了ruby-1.9.3-p327,RVM 1.16.13安装了ruby-1.9.3-p286。

从1.16.13更新也不起作用,所以我们希望他们能尽快修复它。

答案 3 :(得分:0)

这看起来已在最新的1.18.x版本中得到修复。我升级到1.18.5版本,这个问题就消失了。

答案 4 :(得分:0)

更新rvm和ruby之后我遇到同样的问题,rvmsudo_secure_path = 1对我有帮助,如http://www.snowcrash.eu/rvmsudo_secure_path/

中所述