home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

Ruby/rubygemsメモ("gem install"するその前にチェックしておきたい項目)

作成日: 2014-02-10 18:30:58   /   last updated at: 2014-02-10 18:31:46
カテゴリ: Ruby 

rubygemsエコシステム:

"gem install" するその前にチェックしておきたい項目

実行環境を調べて、 本当に現在の環境のgemコマンドとインストール先で良いか確認を推奨。

$ gem environment

確認せずに、うっかり gem install するとこんなトラブルに遭遇します。

  • Linuxディストリビューションのパッケージでインストールされたgemとバージョンが衝突して泣く。
  • Rails3で開発していて、途中からRails4での開発も並行するようになり、バージョンや依存ライブラリが衝突して泣く。
  • あるアプリの新規開発でgem installやgem updateしたら、別のアプリの依存関係やバージョン依存に影響が出てしまい、動かなくなり、泣く。

以下の点を十分吟味し、必要に応じて rbenv + ruby-build(Ruby/rbenv, ruby-buildメモ(2014-02版)) や Bundler (Ruby/Bundlerメモ) を導入して、適切な場所にインストールします。

  1. 現在PATHに通っているgemがどこ由来(ディストリビューションのパッケージ / brew / rvm / rbenv + ruby-build)か。
  2. もし他のアプリが同じライブラリの別バージョンにロックインされても影響しないか。
  3. nativeビルド(コンパイル)が必要なgemを導入してコンパイルエラーが発生した状況を想定して、そうしたトラブルに対処出来るだけのノウハウや時間リソースを確保できているか。
  4. 開発するアプリケーションのライフサイクル的に、本当にそこで/そのバージョンで/あるいは、そのライブラリが本当に妥当か。

参考

GEM_HOME, RUBYLIB 環境変数の調整

※GEM_HOMEはgemの「インストール先ディレクトリ」の設定。GEM_PATHは、gemの「探索対象ディレクトリ」の設定。そのため、GEM_HOMEは一つしか設定しないが、GEM_PATHはOSのPATH分割文字列を使って複数のインストール先を指定できる、と理解してます。(2014-02現在の認識。間違ってたらすみません、指摘してもらえれば随時修正します)


original url: https://www.glamenv-septzen.net/view/1265