gem コマンドの使い方
参考:
初心者は覚えておきたい Rubygems のコマンドまとめ – Qiita
bundler を使った RubyGems の管理について | 30歳からのプログラミング
そろそろ整理しておきたい、Gemコマンドの使い方 | ばくのエンジニア日誌
ドキュメント
参考:
Command Reference | RubyGems.org [Official]
ヘルプ
ヘルプを表示する。
$ gem help
コマンド一覧を表示する。
$ gem help commands
参考:
gem help | RubyGems Guides [Official]
gem list コマンド
参考:
How do I list all versions of a gem available at a remote site? – Stack Overflow
gem install コマンド
参考:
gem install | RubyGems Guides [Official]
gem update コマンド
インストール済み gem のバージョンを更新する。
参考:
gem update | RubyGems Guides [Official]
gem cleanup コマンド
gem の古いバージョンをアンインストールする。
参考:
gem cleanup | RubyGems Guides [Official]
gem search コマンド
名前が一致する gem のみを表示する。
$ gem search rails -e
全てのバージョンを表示する。
$ gem search bundler -ae
-a
/ --all
:全てのバージョンを表示する。
-e
/ --exact
:名前が一致する gem のみを表示する。(指定しない場合は部分一致を含む。)
参考:
gem search | RubyGems Guides [Official]
ビルドとインストール
$ git clone https://github.com/user/gem_name.git -b v1.2.3 --depth 1 $ cd gem_name $ gem build gem_name.gemspec $ gem install gem_name-1.2.3.gem
参考:
git で clone した gem をインストールする | DIGITAL SQUADブログ
git clone でもってきたローカル gem をインストールする方法 | DQNEO 起業日記
gem build | RubyGems Guides [Official]
環境を確認する
$ gem environment
もしくは、省略して
$ gem env
参考:
Ruby が参照してる gem のパスやインストール済 gem を確認する方法 – Qiita
インストール先を確認する
$ gem env gemdir
もしくは、
$ gem env home
参考:
Gem パッケージのインストール先を調べる | まくまくRubyノート
Where do gems install? – Stack Overflow
--no-document
参考:
gem のインストールで `--no-document` を付けると77倍早い – Qiita
gem install --no-ri --no-rdoc は gem install -N にした方が良い – Qiita
gemrc の --no-ri と --no-rdoc、deprecated な option なのでみなおしたほうがいいかもですよ – Qiita
.gemrc
参考:
gem のインストール先に rbenv が指すものと Gem.user_dir があることを知らなくてハマった話 | わすれっぽいきみえ
gem_dir
※メンテナンスされていない。
参考:
peco で gem のディレクトリに移動する
参考:
peco で bundler 管理下にある gem のディレクトリに移動する – Qiita
依存を考慮せずに一つの gem だけをインストールする
参考:
Removing a dependency while installing a gem? – Stack Overflow
ローカルの gem をインストールする
参考:
Is it possible to bundle / install gems from a local cache? – Stack Overflow
デフォルト gem
- デフォルト gem は、
$(gem env gemdir)/specifications/default
ディレクトリに gemspec がある。 - アンインストールできない。(更新はできる。)
gem list
でバージョン番号がdefault: x.y.z
と表示される。- デフォルト gem は
bundle
していなくてもrequire
で読み込める。(新しい gem をbundle
でインストールしている場合に、新しい gem に存在せずに デフォルト gem に存在するファイルが読めてしまう。バグ?仕様?)
デフォルト gem の gemspec を確認する。
$ ls "$(gem env gemdir)/specifications/default"
参考:
bundled gem と default gem の違い | @znz blog
bundled gem と default gem の違いの具体例 | @znz blog
Default Gems Bundled with Ruby | zzz.buzz
Default gems hinder Bundler | Josua Schmid
rg v3 – gem update behavior · Issue #2349 · rubygems/rubygems – GitHub
improve gem install –default · Issue #677 · rubygems/rubygems – GitHub
How to make a specific gem version as default? – Stack Overflow
バージョンコンフリクト
Gemfile.lock
に記述されているバージョンと矛盾がある。→bundle update
で gem を可能な範囲で最新バージョンに解決する。(Gemfile.lock
を更新する。)Gemfile
に記述したバージョンに矛盾があり解決できない。→Gemfile
を編集する。(もしくは、必要に応じて各 gem の gemspec を修正する。)- Bundler のバージョンが合っていない。→
gem install bundler
で必要なバージョンの Bundler をインストールする。もしくは、gem update bundler
で Bundler のバージョンを更新する。 - 何かがバグっている。→
vendor/bundle
とGemfile.lock
を削除して、最初からbundle install
をやり直す。
参考:
Rails5 で bundle install をするときにバージョンコンフリクトでつまったメモ – Qiita
不要な gem をまとめてアンインストールする
参考:
インストールされている gem を全て削除する。- Qiita
あえて言うほどではないけれども Gem を一括削除する方法 | TECHSCORE BLOG
gem を間違えてグローバルにインストールしてしまった場合 | Technical Notes (leico.github.io)
Removing all installed Gems and starting over – Stack Overflow
specific_install
GitHub から gem をインストールするための gem specific_install
コマンドを追加する。
参考:
gem install で GitHub リポジトリにある最新版をインストールする – Qiita
GitHub のリポジトリから直接 gem install する | deadwood
GitHub のブランチにある gem をインストールする方法 | noanoa 日々の日記
FileUtils が二重にロードされる
参考:
rails c した際に fileutils の警告が大量に出た場合 | 約束の地
「rails s」で warning: already initialized constant が出る | 新人SEの気まぐれ日記
fileutils conflict in Ruby 2.5.1 · Issue #22 · ruby/fileutils – GitHub
`warning:` `already` initialized constant FileUtils::VERSION – Stack Overflow
キャッシュ
参考:
仕組み
参考: