Ruby 为什么可以';我在Ubuntu 11.04中执行多用户RVM安装吗?

Ruby 为什么可以';我在Ubuntu 11.04中执行多用户RVM安装吗?,ruby,rvm,Ruby,Rvm,我正在尝试将RVM安装到/usr/local/RVM中,因为我需要能够将ruby作为服务器运行。但是,每当我跑步时: bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) bash

我正在尝试将RVM安装到
/usr/local/RVM
中,因为我需要能够将ruby作为服务器运行。但是,每当我跑步时:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

bash<在我看来,生产主机上的RVM没有开发人员的沙箱那么有用。我认为RVM是一个很好的工具,但并非适用于所有情况

开发人员在使用不同版本的Ruby和使用特定版本的gems时需要很大的灵活性。RVM为此而闪耀。它可以很容易地自动切换,对安装的所有Ruby版本进行测试,或者,如果事情变得混乱,可以将其全部清除并快速重新开始


在生产服务器环境中,您通常将一台主机专用于特定服务或一组相关服务,在各种Rubies和gem集之间快速切换的需求往往会消失。我只放了一个版本的Ruby在我的上面。所有的应用程序都指向它。如果我需要不止一个,我会将它安装到一个单独的
/opt
/local
目录层次结构中,并将所属帐户的路径设置为指向所需的版本。在生产中,这通常是一种设置一次即忘的情况。

当您以root用户身份登录时,检查是否设置了
rvm\u path

echo $rvm_path
如果是,则:

export rvm_path=
rm /etc/rvmrc

这应该足够了。

可以肯定的是,尝试
sudo su-c bash<而不是使用sudo运行命令或启用root密码,尝试以下操作:

$ sudo su -
这会将您切换到根帐户,您可以在其中运行install命令:

# bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

#bash<您可以在Ubuntu上以多用户模式安装rvm。说明与其他系统相同,如本文所述,只需使用
sudo
安装即可

然而,由于Ubuntu执行sudo命令的方式不同,Ubuntu存在一个不同的问题,它会导致后续命令失败,如
sudorvm install 1.9.2
。在ubuntu上,sudo默认更改路径,以使其更安全。这篇前面的文章详细讨论了这个问题

要解决此问题,请使用
visudo
编辑sudoers文件,然后添加specify

Defaults !secure_path

正如相关线程中所建议的那样。

这样做仍然需要比使用rvm更大的努力。很有可能需要多个rubies—在某一点上,我需要在1.8.7上运行redmine,在1.9.2上运行rails应用程序。rvm让安装变得很简单。就像@DGM提到的那样,如果/当我有一台运行多个应用程序的机器时,我也更喜欢rvm管理,而不是手动安装rubies(并且不具备不同Gemset的功能)rvm不仅适用于开发人员,它是我见过的最整洁的ruby工具。这个答案被接受了,这让我有点不舒服,它没有回答实际的问题。它回答了“从源代码安装ruby会更容易吗?”。。。就是这样。如果你能回答我如何让RVM在Ubuntu上执行多用户安装,我很乐意试一试。虽然我不知道它是否已经可以生产,但RVM的创建者表示,他是为生产而设计的,用于开发人员是一个额外的好处:如果你以root用户身份运行它,它应该安装在/usr/local/rvm…中,这样可以工作。。。这与在sudo下运行命令相同。当我有一堆命令需要以root用户身份运行时,我会这样做,这样我就不必在它们前面加上
sudo
。应该注意的是,如果多用户(系统范围)安装被正确执行(通过使用
sudo
运行它),属于rvm组的任何用户都不需要将
sudo
与任何rvm命令一起使用,除非升级rvm安装,在这种情况下,您将使用
rvmsudo
来承载环境(默认情况下,
sudo
不这样做)。
Defaults !secure_path