【问题标题】:RBENV resolve duplicate directories for ruby-buildRBENV 为 ruby​​-build 解析重复的目录
【发布时间】:2013-01-26 10:34:30
【问题描述】:

我最近在安装 rbenv 后第一次更新了我的 ruby​​ 版本。在我的开发机器上,我发现我需要使用 bundle install 为每个应用程序重新安装 bundler 和所有 gem。

现在,当我登录到生产服务器时,我注意到我的主文件夹 ~/ruby-build 和 .rbenv/plugins 中有一个 ruby​​-build 目录。如何找出我的服务器正在使用哪一个,以及运行 git pull 并安装新版本的 ruby​​ 的哪一个?我可以删除 ~/ruby-build 中的目录并处理另一个目录吗?进行一些探索后,我发现我的服务器上的 usr/local/bin 中也有一个 ruby​​-build,但这不是一个目录。

我完全被这一切弄糊涂了。 Rbenv 位于我的主目录中,而不是服务器上的任何系统目录中。这有关系吗?即使我没有登录,它如何在服务器上仍然工作?

从服务器上的主目录运行 rbenv 版本会报告“当前未安装程序 'rbenv'”,但会列出我的开发笔记本电脑上安装的版本。

我在服务器上的 .bashrc 在顶部包含此条目

if [ -d "${RBENV_ROOT}" ]; then
  export PATH="${RBENV_ROOT}/bin:${PATH}"
  eval "$(rbenv init -)"
fi

我的开发笔记本电脑上的 .bashrc 在底部包含此条目。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

【问题讨论】:

    标签: ruby rbenv


    【解决方案1】:

    由于您将其包含在 .bashrc 中,我想如果您在终端中访问 echo $RBENV_ROOT,您会发现正在使用的 rbenv 目录。

    虽然你说rbenv 命令不起作用,所以可能$RBENV_ROOT 没有定义。在这种情况下,您可以简单地在该条件之前执行RBENV_ROOT=$HOME/.rbenv/ 之类的操作(或任何您喜欢的操作)来设置它应该使用的 rbenv 目录。

    当您这样做时,要定义 $RBENV_ROOT,重新登录以使更改生效,或使用 source ~/.bashrc 重新获取 .bashrc 文件。

    【讨论】:

    • 对于我的服务器,我可以根据我的开发笔记本电脑只使用 .bashrc 中的条目而不是定义 RBENV_ROOT 吗?有什么区别还是我需要 RBENV_ROOT 因为我想要它在服务器上?
    • 具体来说,我需要知道在服务器而不是本地开发机器上设置 rbenv 所涉及的差异。
    • 没有区别。我只提到通过 RBENV_ROOT 来做,因为这就是你所拥有的,所以我认为这就是你想要的。您可以像在笔记本电脑上一样进行设置。如果它不能那样工作,那么服务器的环境会阻止它,你没有透露。我想值得一试。
    • 还有一件事,由于某种原因,我在服务器上的主目录中有 ruby​​-build ~/ruby-build。我应该删除它并使用 .rbenv/plugins/ruby-build 中现有的 ruby​​-build 吗?
    • 它通常放在 .rbenv/plugins 中,所以如果你愿意,我猜 ~ 中的那个没有使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2016-10-11
    • 2018-07-23
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多