系统范围的RVM替换加载在不同体系结构上的主目录

时间:2011-05-25 02:57:01

标签: ruby rvm

我已经看到了类似这样的问题,但似乎已经弃用了系统范围的RVM,因此没有一个答案适用。

我有一个NFS挂载的主目录,当我登录到我们实验室中的任意数量的不同计算机时,我可以访问该目录。因此,当我尝试在这些不同的机器上使用它时,本地编译的Ruby会破坏 - 因为它们具有不同的体系结构。

我以超级用户身份安装了RVM,但我无法弄清楚如何指导我的常规用户帐户使用超级用户选择的Ruby。相反,它总是尝试使用~/bin中的那个。

选择全局Ruby的适当方法是什么?

1 个答案:

答案 0 :(得分:1)

我在相同的问题上挣扎了很长一段时间。我最终做了以下事情:

使用以下命令行安装rvm(注意:使用中未提及--path选项,因此我不知道它是如何受支持的,但它对我有用),路径中有适当的体系结构:

rvm-installer --path ~/tools/x86_64/rvm --version latest

安装您希望能够支持的任何体系结构。 (注意:确保没有覆盖路径的.rvmrc文件,尤其是在第二次安装期间。)

然后将以下内容添加到.bashrc / .bash_profile:

OS=$(uname -s)
if [[ $OS = Linux ]] ; then
>   ARCH=$(uname -m | sed 's/i.86/i686/')
elif [[ $OS = FreeBSD ]] ; then
>   ARCH=$(uname -m | sed 's/i.86/i686/')
elif [[ $OS = Darwin ]] ; then
>   ARCH=mac
else
>   ARCH=unknown
fi
export ARCH

安装程序会在.bash_profile中添加一行来设置rvm函数,将其更改为如下所示:

[[ -s "$HOME/tools/$ARCH/rvm/scripts/rvm" ]] && . "$HOME/tools/$ARCH/rvm/scripts/rvm" 

您还应该编辑.rvmrc文件以获得以下内容:

export rvm_path="$HOME/tools/$ARCH/rvm"

我没有时间完全测试这个设置,但至少它似乎是在不同平台上调用正确版本的RVM。

祝你好运!