您可能认为这是一个典型的“全局”命令问题,但事实并非如此。
我可以通过以下方式全局设置ruby:
rbenv global 2.5.1
然而,这使得ruby2.5.1对所有用户都是全局的,但不是整个系统。当同一服务器中的应用程序想要调用ruby或access / pipe ruby时,它们会出现command not found
错误。
我认为我们必须安装或符号链接到/usr/bin
或/usr/local/bin
或其他......
我找不到任何有关此事的内容。如何将选定的ruby版本用于其他应用程序?
我唯一的解决方案是将ruby自己构建到系统目录,但这会与rbenv冲突。
示例:
解决方法:
将/root/.rbenv/shims
文件夹添加到执行脚本上的$PATH
按预期工作,但在某些情况下,无法直接修改$PATH
。 我的选择是什么?
答案 0 :(得分:4)
rbenv根本不是为了支持这个而设计的,你可以在Github Issue中看到围绕这个的讨论。如果执行此操作,有许多技术注意事项需要考虑权限。我找到了另一篇博客文章,概述了这个过程 - System Wide Install With rbenv。要将它复制到这个答案中,博客文章就会消失。
但是,从长远来看,您可能会发现创建或使用Ruby包更容易,例如BrightBox PPA个。
安装rbenv
我们将代替
~/.rbenv
的常规位置进行单次安装 安装到/usr/local
。如果你,你可以使用不同的路径 想要,但这是我更喜欢的。cd /usr/local git clone git://github.com/sstephenson/rbenv.git rbenv chgrp -R staff rbenv chmod -R g+rwxXs rbenv
确保将使用rbenv的用户属于您的组 与rbenv文件夹相关联。
现在我们要将以下代码添加到每个用户
~/.profile
中,~/.bash_profile
或~/.zshenv
取决于环境。您 也可以在/etc/skel/.profile
或/etc/skel/.bash_profile
中添加 创建新用户时复制的模板文件。export RBENV_ROOT=/usr/local/rbenv export PATH="$RBENV_ROOT/bin:$PATH" eval "$(rbenv init -)"
安装ruby-build(可选)
或者,您可以安装ruby-build插件来保存自己 自己建造它。
cd /usr/local/rbenv mkdir plugins cd plugins git clone git://github.com/sstephenson/ruby-build.git chgrp -R staff ruby-build chmod -R g+rwxs ruby-build
备注强>
现在您应该拥有rbenv和可选的ruby-build设置,以便您可以 开始安装和使用Ruby。这个安装和 单用户安装有两个例外。全局设置适用于 所有用户和单用户rbenv安装都可以“覆盖”系统 广泛安装。
如果您有权限问题,请确保rbenv中的所有文件 文件夹属于正确的组和用户尝试使用 rbenv也是该组织的成员。