Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Rubyが参照してるgemのパスやインストール済gemを確認する方法

More than 5 years have passed since last update.

前置き

現在、Ruby/Railsでの開発について教えてる人がいるのですが、pryやirbで日本語入力を可能にするという記事を見つけて

「そういえば、お互いにPryの環境で日本語入力できず不便だったので環境を見なおしましょう!」

と誘って手順に従って作業したのですが、その後互いにハマった(ハマってる)ことがありました。

トラブル解決の時に

  • 現在使ってるRubyのパスはどこか?
  • 現在使ってるRubyが参照してるgemのパスはどこか?
  • インストール済のgemってどうやって確認するか

というのが恥ずかしながらすぐにわからなかったので調べたことを書いておきます

私の環境

  • Mac OS X 10.9.5
  • Ruby
    • rbenvを利用
      • ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

現在使ってるRubyのパスやRubyが参照してるgemのパスを確認するのにgem environmentが便利だった

2008年とかなり昔ですがこのエントリで紹介されてるgem environmentが便利だったので自分用にメモしておきます

システム標準のRubyの情報

rbenv利用してるので一旦システム標準のRubyに切り替えます。

rbenv local system

確認します

rbenv versions
* system (set by /Users/myuser/.ruby-version)
  2.0.0-p353
  2.1.0
  2.1.1

これで切り替ったことが確認できました。念のためRubyのバージョンをチェック

ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13]

gem environmentで確認

以下のように実行します。

gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0 (2014-05-08 patchlevel 481) [universal.x86_64-darwin13]
  - INSTALLATION DIRECTORY: /vagrant
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /vagrant/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-13
  - GEM PATHS:
     - /vagrant
     - /global
     - /Library/Ruby/Gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

上記実行結果でRUBY EXECUTABLE(/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby)を見ればRuby実行時のRubyのパスが確認できるし、gemのパスもGEM PATHSという項目があるのでこのあたりで確認できるんですね。

rbenvでインストールしたRuby2.1.2の情報

現在は

rbenv versions
* system (set by /Users/myuser/.ruby-version)
  2.0.0-p353
  2.1.0
  2.1.1
  2.1.2

という感じでシステム標準のものになってるので以下で切り替えます。

rbenv local 2.1.2

念のためRubyのバージョンを確認します。

ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

こっちの場合のgem environmentはこうなってました

gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin13.0]
  - INSTALLATION DIRECTORY: /Users/myuser/.rbenv/versions/2.1.2/gemsets/vagrant
  - RUBY EXECUTABLE: /Users/myuser/.rbenv/versions/2.1.2/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/myuser/.rbenv/versions/2.1.2/gemsets/vagrant/bin
  - SPEC CACHE DIRECTORY: /Users/myuser/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-13
  - GEM PATHS:
     - /Users/myuser/.rbenv/versions/2.1.2/gemsets/vagrant
     - /Users/myuser/.rbenv/versions/2.1.2/gemsets/global
     - /Users/myuser/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/myuser/.rbenv/versions/2.1.2/bin
     - /Users/myuser/.rbenv/versions/2.1.2/gemsets/global/bin
     - /Users/myuser/.rbenv/versions/2.1.2/gemsets/vagrant/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /usr/local/heroku/bin
     - /Users/myuser/.rbenv/shims
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/bin

インストール済のgemってどうやって確認するか

これはいっつも忘れてしまうのですが

gem list

にて確認できますね。rbenv にてインストールした 2.1.2でのgem一覧はこうなってました。


gem list

*** LOCAL GEMS ***

bigdecimal (1.2.4)
bundle (0.0.1)
bundler (1.7.11)
io-console (0.4.2)
json (1.8.1)
minitest (4.7.5)
psych (2.0.5)
rake (10.1.0)
rdoc (4.1.0)
test-unit (2.1.2.0)

特定のgemってインストール済かどうか確認する

これまで自分の場合はgem listの実行結果を、標準入出力を組み合わせてコマンドを接続するUnix系OS標準の仕組みのパイプを使って

gem list | grep bundler

という感じでgem listの検索結果をgrepコマンドに渡して該当のgemがあるかどうか確認してましたがbundleコマンドにパスが通っていなかったときの対処法の記事中にあったgem contentsでも確認できますね


gem contents bundler
h5y1m141@github
クラフトビールが好きすぎて、iPhone&Android&Webアプリの開発をTitanium+CoffeeScript+Node.js+αな感じでやってます http://craftbeer-fan.info/ あとは、非公式のQiita Viewerアプリ作ってます https://github.com/h5y1m141/TiQiita 仕事では気づいたらRails4中心です
http://h5y1m141.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away