0

我在一台 Ubuntu 10.04 机器上的单个用户帐户下的机器上安装了 RVM,我想让这台机器的其他用户访问相同的安装。

有没有办法做到这一点?

4

2 回答 2

2

在二进制红宝石的情况下,应该可以只移动 RVM。

检查不可移动的红宝石

您可以找到是否有任何不可移动的红宝石

rvm all --verbose do rvm config-get configure_args | grep -v -- '--enable-load-relative'

就我而言,它是(只有少数):

jruby-1.7.3: jruby 1.7.3 (1.9.3p385) 2013-02-21 dac429b on OpenJDK 64-Bit Server VM 1.7.0_21-b02 [linux-amd64] 

rbx-head: rubinius 2.0.0.rc1 (1.8.7 bed7e913 yyyy-mm-dd JI) [x86_64-unknown-linux-gnu] 

ruby-1.8.7-p374: ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] 
 '--prefix=/home/mpapis/.rvm/rubies/ruby-1.8.7-p374' '--disable-install-doc' '--enable-shared' 'CC=ccache gcc' 'CFLAGS=-O3 -O2 -fno-tree-dce -fno-optimize-sibling-calls'
ruby-1.9.3-p448: ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux] 
 '--prefix=/home/mpapis/.rvm/rubies/ruby-1.9.3-p448' '--disable-install-doc' '--enable-shared' 'CC=ccache gcc'
ruby-2.0.0-p247: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] 

对于那些有标志的红宝石,您需要在移动 RVM 后删除它们或重新安装,在这种情况下是:1.8.71.9.3.

移动 RVM

它应该很简单:

sudo mv ~/.rvm /usr/local/rvm
__rvm_switch /usr/local/rvm

模拟安装(生成系统安装的shell初始化入口:

rvmsudo rvm get stable --auto-dotfiles

现在,对于应该能够使用 RVM 的每个用户,将它们添加到rvm组中:

rvmsudo rvm group add rvm $USER

$USER对替换为用户名的每个用户重复此操作。

重新安装不可移动的红宝石

对于在第一步运行中发现的红宝石:

rvm reinstall ruby-1.8.7-p374,ruby-1.9.3-p448

打扫

首先安装 RVM 的用户帐户将具有旧的初始化代码,您可以通过以下方式找到它:

grep -n rvm ~/.profile ~/.bashrc ~/.bash_profile ~/.bash_login ~/.zshenv ~/.zprofile ~/.zshrc ~/.zlogin

这将显示包含 RVM 的行,在您喜欢的编辑器中打开这些文件并删除它们。

于 2013-07-09T16:43:03.507 回答
0

我严重怀疑是否值得尝试将单个用户的安装转换为多用户。

在安装一个独特的 Ruby 期间,它的路径被编译成组件。这将被记住并且必须改变。

我认为使用多用户方法安装并重新加载所需的 gem 会容易得多。如果您有多个 Ruby 和大量 gem,这可能需要几个小时,但这比调试奇怪的错误要好几个星期。

于 2013-07-08T14:54:03.080 回答