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 “并正常安装了我的东西。

我在这里错过了什么吗?

谢谢!

4

5 回答 5

2

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

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

于 2013-03-12T18:33:25.333 回答
2

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

解决方案:

  1. 将以下命令添加到您的 shell 初始化脚本(对于 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值。

从我的角度来看,第一个更可取。

于 2013-07-19T21:42:11.697 回答
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 更新也不起作用,所以希望他们尽快修复它。

于 2012-12-07T17:22:36.180 回答
0

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

于 2013-01-30T18:28:30.457 回答
0

更新 rvm 和 ruby​​ 后我有同样的问题,并且 rvmsudo_secure_path=1 对我有帮助,如http://www.snowcrash.eu/rvmsudo_secure_path/中所述

于 2013-07-21T17:34:38.210 回答