我通过sudo gem install ...
安装的宝石无法执行(我得到了command not found
)。它们似乎安装在/usr/local/Cellar/
中,这是Brew的安装目录(同样,/Library/Ruby/
中的宝石也不起作用)。还有什么我需要做的才能使宝石可执行吗?我在Mac OS X 10.6上使用ZSH,在Brew中使用Ruby v1.8。
编辑:它似乎现在正在运作。我刚出去几个小时又回来再试一次。
Homebrew很好。然而,与brew
和npm
不同,gem
不会自动在/usr/local/bin
中制作别名。
我采用了一种非常简单的方法(截至2019年3月):
export PATH=/usr/local/opt/ruby/bin:$PATH
export PATH=/usr/local/lib/ruby/gems/2.5.0/bin:$PATH
将此添加到您的.bashrc
(或.bash_profile
,.zshrc
等)。
而已!现在所有的Ruby箱和已安装的宝石都可以从你的shell中获得!
在旧版本的Homebrew(2017年之前)中,Ruby 2有一个名为ruby20
的独立包,您可以使用以下代码段代替它:
export PATH=/usr/local/opt/ruby20/bin:$PATH
这条线是当时唯一需要的线。但是,在Ruby 2.1中,宝石被移动到一个单独的目录中。不再在/usr/local/opt/ruby/bin
下,而是在/usr/local/lib/ruby/gems/2.0.0/bin
(其中“2.0.0”是Gem用途的最后一个主要Ruby版本)。
Homebrew会跟踪它安装包的位置,并为您指定一个符号链接。
$ brew --prefix ruby
/usr/local/opt/ruby
$ l /usr/local/opt/ruby
/usr/local/opt/ruby@ -> ../Cellar/ruby/2.5.3_1
实际上,将/usr/local/opt/ruby
添加到PATH
与以下内容相同:
export PATH=/usr/local/Cellar/ruby/2.5.3_1/bin:$PATH
除此之外,这个长版本硬编码了当前安装的Ruby版本,并在下次升级Ruby时停止工作。
至于Gem,以下命令将告诉您Gem添加新包的确切目录:
$ gem environment gemdir
/usr/local/lib/ruby/gems/2.5.0
这些工具旨在自动在Homebrew和Gem之间架起桥梁:
我没有使用过这些,但它们可能适合你。
brew unlink ruby; brew link ruby
可能会在/usr/local/bin/
中添加符号链接:
$ which sass
$ brew unlink ruby; brew link ruby
Unlinking /usr/local/Cellar/ruby/2.0.0-p0... 20 links removed
Linking /usr/local/Cellar/ruby/2.0.0-p0... 31 symlinks created
$ which sass
/usr/local/bin/sass
brew --prefix ruby
仍然很慢,但你也可以添加/usr/local/opt/ruby/bin
到路径。
$ time brew --prefix ruby
/usr/local/opt/ruby
0.216
$ time brew --prefix ruby
/usr/local/opt/ruby
0.076
$ stat -f%Y /usr/local/opt/ruby
../Cellar/ruby/2.0.0-p0
您也可以使用自制软件安装ruby。您只是缺少自制宝石的功能。
先做:
sudo nano /etc/paths
这将带来纳米编辑器,
然后将以下内容添加到路径:
/usr/local/Cellar/ruby/1.9.3-p194/bin
你的红宝石版本可能会有所不同。
而已。它现在应该检测你的宝石。
哦,顺便说一下,你需要按Ctrl + X> y> ENTER来保存nano文件。
我喜欢家酿。可能有更好的方法来做到这一点,但如果你运行:
gem environment
这将打印出所有相关路径的一个很好的列表。寻找标记为EXECUTABLE DIRECTORY
的那个。那是你要添加到路径中的那个。在我的情况下,这是/usr/local/Cellar/ruby/1.9.3-p362/bin/ruby
但我想它会随着更新版本的Ruby而改变。
我使用/bin/bash
作为我的shell,但将它添加到你的路径的过程应该是名字。
我使用TextWrangler(通过命令行工具)来编辑我的.profile
文件。要做到这一点,它只是:
edit ~/.profile
完成后,关闭终端并打开新终端,或运行:
source ~/.profile
而不是使用=> $(cd $(which gem)/..; pwd)
您可以使用此代替=> $(brew --prefix ruby)/bin
我认为这会有所改进。
只需添加
export PATH=/usr/local/opt/ruby/bin:$PATH
到.bashrc(或.bash_profile,.zshrc / .bashrc,.. - 无论你使用什么)。
如果您对ruby本身有问题
brew unlink ruby
brew link ruby