rvmsudo命令无法正常工作

5

我想获取更新后的 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"正常安装我的东西。
我错过了什么吗?
谢谢!

“echo $PATH”和“rvmsudo echo $PATH”的输出有什么区别吗? - Justin ᚅᚔᚈᚄᚒᚔ
我有类似的问题.. http://superuser.com/questions/376669/why-am-i-getting-rvm-command-not-found-on-ubuntu - damuz91
Justin,它们完全相同:/usr/local/rvm/gems/ruby-1.9.3-p327@rails329/bin:/usr/local/rvm/gems/ruby-1.9.3-p327@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p327/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games - Apollo
David,我尝试了那个bash curl命令,它甚至让我的rvm更加混乱,但是然后我回显了~/.rvm的路径并使用了rvm reload。然后每次我尝试运行rvmsudo时都会出现一个secure_path问题。它说要export rvmsudo_secure_path=1。现在我正在努力弄清楚这个问题。 - Apollo
5个回答

3
在你的~/.bashrc文件的末尾添加export rvmsudo_secure_path=1,然后重新启动终端。这对我很有效(Ubuntu 12.10 运行 Bash)。

2

这是因为在你的/etc/sudoers文件中设置了secure_path选项,而该选项的值与你当前的shell $PATH不同。

解决方案:

  1. Add the following command to your shell init script (for bash sell it is .bashrc for *nix, and .bash_profile for mac os x)

    export rvmsudo_secure_path=0  # means don't use the value in rvmsudo
    
  2. add rvm and Ruby's paths to the secure_path value.

在我看来,第一种更可取。


1

我成功让它工作了。

我看到了这个serverfault页面,认为问题很相似,所以尝试了一下。

看起来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 更新也不起作用,所以让我们希望他们尽快修复它。


你尝试过主版本吗:rvm get head - mpapis
是的,mpapis,同样的问题。干杯。 - Apollo
我看到你提到了 export rvmsudo_secure_path=1 - 你设置了吗? - mpapis

0

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接