我在一台 Ubuntu 10.04 机器上的单个用户帐户下的机器上安装了 RVM,我想让这台机器的其他用户访问相同的安装。
有没有办法做到这一点?
在二进制红宝石的情况下,应该可以只移动 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.7
和1.9.3
.
它应该很简单:
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 的行,在您喜欢的编辑器中打开这些文件并删除它们。
我严重怀疑是否值得尝试将单个用户的安装转换为多用户。
在安装一个独特的 Ruby 期间,它的路径被编译成组件。这将被记住并且必须改变。
我认为使用多用户方法安装并重新加载所需的 gem 会容易得多。如果您有多个 Ruby 和大量 gem,这可能需要几个小时,但这比调试奇怪的错误要好几个星期。