我正在尝试获取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”并正常安装我的东西。
我在这里错过了什么吗?
谢谢!
答案 0 :(得分:2)
在export rvmsudo_secure_path=1
文件的最后添加~/.bashrc
,然后重新启动终端。
这对我有用(Ubuntu 12.10运行bash)
答案 1 :(得分:2)
这是因为您的/etc/sudoers
中已设置了secure_path选项,且该选项的值与您当前的shell $PATH
不同。
解决方案:
将以下命令添加到shell init脚本中(对于bash,它为* nix为.bashrc,对于mac os x为.bash_profile)
export rvmsudo_secure_path=0 # means don't use the value in rvmsudo
将rvm和Ruby的路径添加到secure_path
值。
从我的观点来看,第一个是可取的。
答案 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/
中所述