如何设置 Ruby GEM_HOME 和 GEM_PATH

如何设置 Ruby GEM_HOME 和 GEM_PATH

我是 Linux 的新手用户,正在使用 Linux mint 17.1

我在过去 3 天内重新安装了 Linux Mint 20 次来解决这个问题,但无法修复它

我正在尝试使用 rvm 在 Rails 上安装 ruby​​ 发生的情况是,如果开始新的 Linux 安装并尝试在一个终端会话中安装 gems 和 ruby​​ 等内容,一旦我关闭终端会话,它就会成功安装,但我无法获取这些 gem 。

在过去的 3 天内,我重新安装了 20 多次,我也在网上进行了搜索。我被告知将环境变量放入/etc/environment该会话中的回显路径中并将其粘贴到/etc/environment文件中。

即使现在我也没有得到我安装的宝石

当我输入时rvm -v出现以下错误

Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see:
    https://github.com/wayneeseguin/rvm/issues/3212

Warning! PATH is not properly set up, $GEM_HOME is not set,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

在使用终端方面,我是一个非常新手,我可以运行一些基本命令来使用 ruby​​。

我想知道

  1. 如何设置路径
  2. 如何设置GEM_HOME
  3. 如何设置 GEM_PATH

以下是我的完整路径

echo $PATH
/home/sharif/.rvm/gems/ruby-2.2.2/bin:/home/sharif/.rvm/gems/ruby-2.2.2@global/bin:/home/sharif/.rvm/rubies/ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin

答案1

听起来你想要export设置环境变量的命令:

export PATH=$PATH':/path/to/add'
export GEM_HOME=$HOME/.gem
export GEM_PATH=$HOME/.gem

不过,这仅对当前会话生效。为了使它们更加永久,请将这些行添加到您的~/.bashrc.

答案2

通常这意味着 rvm 设置不正确。通常的错误是您没有.bashrc正确修改(或类似)或者没有重新加载终端。

使用 rvm 时不应手动设置 GEM_HOME 或 GEM_PATH。

你可以尝试source ~/.rvm/scripts/rvm看看是否有效。

也可能是您尚未构建宝石集。不要使用 rvm 和 sudo。当 Rvm 安装在您的帐户而不是系统范围内时,效果最佳。

答案3

以下是我学到的知识以及如何解决 GEM_HOME 和 GEM_PATH 环境变量未设置错误这一看似常见的问题。


背景

RVM 安装应该为每个安装的 RVM 创建 GEM_HOME 和 GEM_PATH 环境变量,并且它会执行此操作。但显然存在一个错误,在某些情况下,环境变量只是临时设置的,要再次设置它们,您必须使用命令行来设置它们。我找到了一种解决方法,可以使环境变量在 RVM 中持续存在。

解决方法

  1. 找到您的活动(在 RVM 中)Ruby 版本:在生产服务器上,转到您的应用程序目录并输入$rvm list.这将生成已安装的 Ruby 版本的列表,以及哪个版本对于 RVM 是活动的。响应示例:

    rvm rubies ruby-1.9.3-p547 [ x86_64 ] => ruby-1.9.3-p551 [ x86_64 ]

所以,我知道 RVM 当前正在使用版本ruby-1.9.3-p551.您需要此信息进行下一步。

  1. 获取 GEM_PATH 和 GEM_HOME 的路径:您可以通过从命令行执行来完成此操作$rvm use ruby-1.9.3-p551。然后仍然从命令行使用命令显示所有环境设置env。搜索 GEM_PATH 和 GEM_HOME 并将它们全部复制到工作区。

    GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

  2. 设置 GEM_HOME 和 GEM_PATH 环境变量:现在,在众多配置文件之一中设置这些环境变量。我想维护 RVM 版本隔离结构,因此我用这两行更新了 /profile.d/appspecic.sh:

    export GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

答案4

就像@coteyr提到的,你不应该手动设置创业板_HOME宝石路径使用时rvm。如果您通过运行检查 PATH 环境变量,$ echo $PATH并且 $HOME/.rvm/bin 是其中的一部分,那么您需要确保您的终端作为登录 shell 运行命令。例如,如果您使用的是 Ubuntu 计算机,请打开终端,然后转到:菜单 > 编辑 > 配置文件首选项 > 命令然后选择“作为登录 shell 运行命令”

这似乎是一个老问题,rvm我认为解决这个问题并不容易,因为它已经存在了一段时间。

相关内容