Sudo gem install ...
経由でインストールしたgemは実行できません(command not found
を取得します)。 Brewのインストールディレクトリである/usr/local/Cellar/
にインストールするようです(また、/Library/Ruby/
のgemも機能しません)。 gemを実行可能にするために他に必要なことはありますか?私は、Mac OS X 10.6でZrewを使用しており、Brewの場合はRuby v1.8を使用しています。
編集:今は機能しているようです。私は数時間出かけただけで、もう一度やってみました。
自作は素晴らしいです。ただし、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ビンとインストールされたgemがシェルから利用可能になります!
Homebrewの古いバージョン(2017年以前)では、Ruby20
と呼ばれるRuby 2の個別のパッケージがありました。代わりに次のスニペットを使用します:
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"が最後です) major Ruby Gemの目的のバージョン)。
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
私は自家製のものが好きです。これを行うにはおそらくもっと良い方法がありますが、実行する場合:
gem environment
これにより、関連するすべてのパスの素敵なリストが出力されます。 EXECUTABLE DIRECTORY
というラベルが付いたものを探します。それがパスに追加したいものです。私の場合、それは/usr/local/Cellar/Ruby/1.9.3-p362/bin/Ruby
ですが、Rubyの新しいバージョンで変わると想像します。
私は/bin/bash
をシェルとして使用していますが、それをパスに追加するプロセスはほとんど名前になっているはずです。
TextWranglerを(コマンドラインツール経由で)使用して、.profile
ファイルを編集します。それを行うには、それだけです:
edit ~/.profile
完了したら、ターミナルを閉じて新しいターミナルを開くか、次を実行します。
source ~/.profile
HomebrewでインストールしたRubyでも問題ありません。
最初に:
Sudo nano /etc/paths
これにより、nanoエディターが表示されます。
次に、パスに次を追加します。
/usr/local/Cellar/Ruby/1.9.3-p194/bin
Rubyのバージョンはおそらく異なるでしょう。
それでおしまい。これで、gemが検出されます。
ああ、ところで、ファイルをnanoに保存するには、Ctrl + X> y> ENTERを押す必要があります。
=> $(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