如何在不为RVM用户提供sudo访问权限的情况下安装RVM系统要求

73
在我的Debian服务器上,我有一个名为“deployer”的用户,该用户没有sudo访问权限,并已安装了RVM。
当使用“deployer”安装Ruby(如1.9.3)时,会触发一个任务来安装依赖项。
"Installing requirements for debian, might require sudo password."

由于"deployer"无法执行sudo命令而失败并停止安装。

我不想将“deployer”添加到sudoers列表中,也不想为其他用户安装RVM,只是为了一次性地安装依赖项。

有什么正确的方法来安装这些依赖项?或者如何列出它们以手动安装?


Rvm 可能会尝试安装构建依赖项以编译 Ruby 的源代码版本。避免使用“最新”版本,并指定一个明确的 Ruby 版本。 - Mark O'Connor
2
感谢您提出这个问题。 - Dmitry Minkovsky
4个回答

168

这确实是RVM的一个新功能,称为autolibs,它可以自动安装依赖项。

如果你已经安装了RVM,并且它正在要求你输入sudo密码,你可以禁用autolibs:

$ rvm autolibs disable
$ rvm requirements # manually install these
$ rvm install ruby
否则,您可以使用以下命令安装没有autolibs的RVM:
$ \curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail
我理解这个想法的动机,但是我觉得它相当烦人。我不想把我的sudo密码放到RVM里面,也不想放到Bundle里面!请社区停止这样做。

我理解这个想法的动机,但觉得有点烦人。我不想把我的sudo密码放进RVM或Bundle中。希望社区能够停止这样做。


6
谢谢,我浪费了很多时间在这个上面。他们当时在想什么? - Alex Dean
4
出于好奇,为什么 curl 前面有一个斜杠?这是一个打字错误吗? - Gili
13
反斜杠将绕过可能带有其他不需要的标志的现有别名。 - kwarrick
4
虚拟环境的一个主要目的是避免使用 root 权限,而请求 root 密码会完全破坏它。 - mehdix
@MehdiSadeghi 我非常赞同。你的评论非常完美。 - tadasajon
显示剩余3条评论

38

我更喜欢这个

$ rvm autolibs fail
$ rvm install ruby
Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/12.04/x86_64/ruby-2.1.1.tar.bz2
Checking requirements for ubuntu.
Missing required packages: gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev
RVM autolibs is now configured with mode '2' => 'check and stop if missing',
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]`
or visit https://rvm.io/rvm/autolibs for more information.
Requirements installation failed with status: 1.

然后我可以使用 root 用户重新登录并运行。

# apt-get install gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev

6

这个已接受的答案未能将Ruby安装到.rvm/bin/ruby。Shell脚本最终出现在.rvm/wrappers/ruby-2.0.0-p247/ruby中,如果您的构建脚本依赖于此位置并且版本号随时间变化,则会带来不便。

以下是一个更简单的解决方案,适用于我:

\curl -L https://get.rvm.io | bash -s -- --ignore-dotfiles --autolibs=0 --ruby

.rvm/bin/ruby 已按预期创建。

来源: http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html


-1

这个问题是在最新的 RVM 版本中引入的。不确定确切的时间,但肯定在过去的三四个月中。

尝试这个:

rvm get 1.18.8
rvm install <whichever-version-you-want>

我不确定在版本1.18.8和1.20.12之间的哪个阶段出现了这个问题,但对我来说,使用RVM v1.18.8安装可以正常工作,而使用v1.20.12则失败了。


1
降级肯定不是必需的。 - drumfire

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