「Sudo gem list --local
」と「gem list --local
」を実行すると、異なる結果が得られます。 gemパスはホームフォルダーに設定され、「gem list --local
」のgemのみが含まれています。
コンピューターの異なるディレクトリにgemをインストールするのはおそらく良くないので、gemパスを異なるように設定する必要がありますか?また、何かをインストールするときは常にSudo
を使用する必要がありますか?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
〜/ .bash_profileは空です。
他のすべての投稿とは反対に、gemsのインストール時にSudo
を使用しないことをお勧めします。
代わりにRVMをインストールし、ポータブルgemホームと異なるバージョンのRubyすべてが1つの屋根の下に住んでいます。
初心者向けの ドキュメント から:
RVMは、複数のRuby環境とgemのセットを簡単にインストール、管理、操作できるコマンドラインツールです。
Sudo
を使用してgemをインストールする理由は、gem install
だけでなく、ALL USERS as root
のgemをインストールするためです。あなたがマシンを使用している唯一の人であればこれは問題ないかもしれませんが、そうでない場合は奇妙さを引き起こす可能性があります。
すべてのgemを吹き飛ばしてやり直したい場合は、root以外のユーザーとして行う方がはるかに簡単で安全です。
RVM
を使用することにした場合、Sudo
を使用すると、RVM
を介してインストールするそれぞれのRubyバージョンに独自のGEM_HOMEがあるため、あらゆる種類の奇妙さが発生します。
また、開発環境を本番環境に可能な限り近づけることができれば便利です。本番環境では、非rootユーザーとしてgemをインストールする可能性が高くなります。
ローカル環境にgemをインストールすることもできます(Sudo
なし)。
gem install --user-install <gemname>
システムレベルの構成がシングルユーザーコンピューターであっても混乱しないようにすることをお勧めします。
gem environment
を使用してgempathを見ると、gemの場所を確認できます。私の場合、「〜/ .gem/Ruby/1.8」です。
パスに追加されたローカルインストールのバイナリが必要な場合は、bashrcに次のようなものを追加できます。
if which Ruby >/dev/null && which gem >/dev/null; then
PATH="$(Ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
さらに良いのは、--user-install
を〜/ .gemrcファイルに入れて、毎回入力する必要がないようにすることです。
gem: --user-install
あなたが
次を.bash_profile
に追加します。
export GEM_HOME=/Users/‹your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"
ターミナルOR source ~/.bash_profile
で新しいタブを開き、準備完了です!
関連(バンドラーユーザー向け)、ユーザー固有の既知のディレクトリにすべてを配置するRVMのより軽量な代替が必要な場合は、以下を使用することをお勧めします。
bundle install --path $HOME/.gem
同じ場所にgemをインストールする場合
gem install --user-install GEMNAME
.gem/Ruby/RUBYVERSION
をhomedirにインストールします。 (--user-install
に関するこの質問の他のコメントを参照してください。)
これにより、宝石をgem list
から見えるようにし、gem uninstall
を介してアンインストールできるなど、Sudo
アクセスを必要としません。 gemまたはbundlerによってインストールされた実行可能なスクリプトは、以下を追加することでパスに入れることができます
$HOME/.gem/Ruby/RUBYVERSION/bin
$PATH
に。 gem
は、gem install --user-install
を実行するときに設定されていない場合、これについて通知します。
Sudo gem install --no-user-install <gem-name>
gemをインストールしますglobally、つまり、すべてのユーザーのコンテキストで利用可能になります。
を使用して、Railsアプリの特定のフォルダー(例:vendor /)にgemをインストールできます。
bundle install --path vendor