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



我已经看到了一些类似的问题,但系统范围的RVM似乎已经被弃用,所以没有一个答案适用。

我有一个NFS安装的主目录,当我登录到实验室中的任何数量的不同机器时,我都可以访问它。因此,当我试图在这些不同的机器上使用本地编译的Ruby时,它会崩溃,因为它们有不同的体系结构。

我以超级用户的身份安装了RVM,但我不知道如何引导我的普通用户帐户使用超级用户选择的Ruby。相反,它总是尝试使用~/bin中的那个。

选择全局Ruby的合适方式是什么?

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

使用以下命令行安装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。

祝你好运!

相关内容

最新更新