不能以没有sudo权限的无特权用户身份使用rvm安装ruby



根据的rvm文档

https://rvm.io/rvm/install

应该可以作为非特权用户安装rvm,然后安装ruby。

故障排除不足

https://rvm.io/support/troubleshooting

声明:

rvm组中的任何用户都可以更新rvm、rubies和gemset。那里从来都不是使用sudo后安装的理由。

rvm作为非特权用户安装良好(没有rvm组(:

nosudo-user@my-site.com:~$ bash ~/downloads/rvm_installer.sh stable
Downloading https://github.com/rvm/rvm/archive/1.29.12.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.12/1.29.12.tar.gz.asc
...
Installing RVM to /<user-home>/.rvm/
...

然而,当我尝试安装ruby版本时,它尝试执行apt-get失败了(我认为(,因为它需要sudo权限:

nosudo-user@my-site.com:~$ rvm install 2.6.6
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/ubuntu/20.04/x86_64/ruby-2.6.6.tar.bz2
...
Updating system... password required for 'apt-get --quiet --yes update': 
.
Error running 'requirements_debian_update_system ruby-2.6.6',
please read /<user-home>/.rvm/log/1659735568_ruby-2.6.6/update_system.log
Requirements installation failed with status: 1.

来自日志:

2022-08-05 21:39:28] requirements_debian_update_system
requirements_debian_update_system ()
{
__rvm_try_sudo apt-get --quiet --yes update || {
typeset __ret=$?;
case ${__ret} in
100)
rvm_error "There has been an error while updating your system using `apt-get`.
It seems that there are some 404 Not Found errors for repositories listed in:
/etc/apt/sources.list
/etc/apt/sources.list.d/*.list

apt-get-update(作为具有sudo权限的用户(没有显示任何错误。

应该如何安装rvm,以便非特权用户可以安装ruby版本?

我猜您的系统缺少一些从源代码构建Ruby的基本系统库。因此,RVM尝试为您获取构建库。这将是一次一次性更新,在您的系统安装了正确的库之后,RVM将不再需要sudo

然而,如果你想,你可以完全禁用apt更新:

rvm autolibs disable 

请注意,如果您缺少构建需求,那么Ruby的构建步骤很可能会失败。找到答案的唯一方法就是尝试。

在这种情况下,您可以使用requirements命令来帮助安装缺少的依赖项:

rvm requirements

Casper的上述回答提供了缺失的信息;有些图书馆不见了。然而,作为一个没有特权的用户安装所需的步骤相当不直观(至少对我来说(:

  1. 使用sudo安装rvm;在该过程中;rvm";组

  2. 将所需用户添加到rvm组注:在此步骤之后,尝试以无特权用户身份安装ruby仍然失败。

  3. sudo到root以获得为root安装的rvm魔术路径,然后开始安装ruby,但在需求安装完成后终止该过程。

  4. 以所需的无特权用户身份登录,并使用rvm为该用户安装所需的ruby。

Cmds:

sudo rvm_installer.sh stable
sudo usermod -a -G rvm the-user
sudo -i
rvm install 2.6.6
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/ubuntu/20.04/x86_64/ruby-2.6.6.tar.bz2
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..
Installing required packages: g++, gcc, autoconf, automake, bison, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, make, pkg-config, sqlite3, libgmp-dev, libreadline-dev......................|
Requirements installation successful.
^C
exit
sudo -i -u the-user
rvm install 2.6.6

相关内容

最新更新