41

経由でインストールした宝石はsudo gem install ...実行できません (私は を取得しますcommand not found)。Brewのインストールディレクトリにインストールされているようです/usr/local/Cellar/(また、gemも機能し/Library/Ruby/ません)。gem を実行可能にするために必要なことは他にありますか? 私はMac OS X 10.6でZSHをRuby v1.8でBrewのものに使用しています。

編集:現在は機能しているようです。数時間外に出て、もう一度試してみました。

4

7 に答える 7

153

自作はいいです。ただし、ととは異なり、brewエイリアスは自動的に作成されません。npmgem/usr/local/bin

解決

私は非常に単純なアプローチを採用しました(2020年3月現在):

# Based on "`brew --prefix ruby`/bin"
export PATH=/usr/local/opt/ruby/bin:$PATH
# Based on "`gem environment gemdir`/bin"
export PATH=/usr/local/lib/ruby/gems/3.0.0/bin:$PATH

.bashrcこれをあなたの(または.bash_profile.zshrcなど)に追加します。

それでおしまい!これで、すべてのRubyビンとインストールされたgemがシェルから利用できるようになります。

Homebrewの古いバージョン(2017年以前)には、Ruby 2用の別のパッケージがあり、ruby20代わりに次のスニペットを使用していました。

export PATH=/usr/local/opt/ruby20/bin:$PATH

当時必要だったのはこの路線だけでした。しかし、Ruby 2.1では、gemは別のディレクトリに移動されました。ではなく/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.7.0

ツール

これらのツールは、HomebrewとGemの間を自動的に橋渡しすることを目的としていました。

私はこれらを使用していませんが、あなたのために働くかもしれません。

于 2013-01-03T11:57:55.023 に答える
21

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
于 2013-05-27T05:34:51.053 に答える
7

私は自家醸造が好きです。おそらくこれを行うためのより良い方法がありますが、実行した場合:

gem environment

これにより、関連するすべてのパスの素敵なリストが出力されます。というラベルの付いたものを探しEXECUTABLE DIRECTORYます。それがパスに追加したいものです。私の場合はそうです/usr/local/Cellar/ruby/1.9.3-p362/bin/rubyが、Rubyの新しいバージョンでは変わると思います。

私は/bin/bash自分のシェルとして使用していますが、それをパスに追加するプロセスはほとんど名前のはずです。

TextWrangler を (コマンド ライン ツール経由で) 使用して.profileファイルを編集します。それを行うには、次のようにします。

edit ~/.profile

完了したら、ターミナルを閉じて新しいターミナルを開くか、次を実行します。

source ~/.profile
于 2013-01-03T05:37:05.707 に答える
5

自作でインストールされたルビーでも問題ありません。自作でカスタム宝石セットの機能が不足しているだけです。

最初に行うこと:

sudo nano /etc/paths

これにより、nano エディターが表示されます。

次に、以下をパスに追加します。

/usr/local/Cellar/ruby/1.9.3-p194/bin

Rubyのバージョンはおそらく異なるでしょう。

それでおしまい。これで宝石が検出されるはずです。

ところで、nano にファイルを保存するには Ctrl+X > y > ENTER が必要です。

于 2012-07-18T18:02:11.113 に答える
4

=> を使用する代わりに$(cd $(which gem)/..; pwd)

代わりにこれを使用できます =>$(brew --prefix ruby)/bin

于 2013-02-24T22:28:30.173 に答える
2

これは少し進化すると思います。

追加するだけ

export PATH=/usr/local/opt/ruby/bin:$PATH

.bashrc (または .bash_profile、.zshrc/.bashrc、.. – 使用するものは何でも) に。

ruby自体に問題がある場合

brew unlink ruby
brew link ruby
于 2013-05-30T09:42:18.800 に答える