我想在OS上升级ruby
,但是当我运行brew upgrade ruby
时,我得到了Error: ruby not installed
。当我运行which ruby
时,我得到了/usr/bin/ruby
,所以我知道我的系统上存在ruby,但是我假设错误意味着我没有通过Homebrew安装它。
我想知道的是:
1) /usr/bin/ruby
存在但brew upgrade ruby
生成Error: ruby not installed
这一事实是否正确?这意味着安装了Error: ruby not installed
,但安装时使用的工具不是国产的?
2)如果是这样的话,我如何才能知道Ruby是如何/在我的系统上安装的呢?
3)我应该如何升级Ruby?
发布于 2020-01-07 19:42:56
/usr/bin/ruby
存在但brew upgrade ruby
生成Error: ruby not installed
这一事实是否正确?这意味着已经安装了Ruby,但安装时使用的工具不是Homebrew?
是。
如果是这样的话,我如何才能知道Ruby是如何在我的系统上安装的呢?
它附带了OS (目前而言)。不过,苹果计划对此表示反对,请参阅这里。
我应该如何升级Ruby呢?
这是基于意见的,但是我会用brew来管理它,这意味着你也需要brew install ruby
它。要确保使用brew install
ed ruby而不是系统ruby,可以添加以下内容:
export PATH=/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.0/bin:${PATH}
敬你的~/.bash_profile
。具体来说,您需要添加(a) brew
将提供ruby及其所有相关可执行文件的路径,以及(b)通过gem
安装可执行文件的路径。
对于(a),查看brew info ruby
的输出,例如,我得到:
...
If you need to have ruby first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
...
因此,在路径中添加了/usr/local/opt/ruby/bin
。如果您ls
该目录,您将不仅看到ruby
可执行文件,而且还会看到irb
、gem
、bundle
、rake
和其他一些文件。因此,当您运行bundle install
或gem install
时,就会使用它。
对于(b)项,您需要知道安装的创业板可执行文件放在哪里。gem env
命令可以帮助您实现以下目标:
$ gem env | grep 'EXECUTABLE DIRECTORY'
- EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.6.0/bin
因此,在我的/usr/local/lib/ruby/gems/2.6.0/bin
中添加了第二条路径,$PATH
到我的$PATH
。
发布于 2020-01-07 19:40:48
使用which ruby
,您已经发现在/usr/bin/ruby
的path中安装了ruby。
很可能这是到可执行文件的实际位置的符号链接。您可以通过readlink /usr/bin/ruby
跟踪它。希望,它在一个文件夹中,可以清楚地知道安装了什么。如果没有,那么找出它的希望不大,但至少您知道所有的文件都在哪里来清理它。
然后我会安装RVM并重新开始。
https://stackoverflow.com/questions/59634969
复制相似问题