gem install 之後,那些 gem 安裝到哪裡去了?

在 Ruby 要安裝套件超簡單的,只要 gem install 指令加上套件的名字,敲完按下 Enter 鍵,就自動會連上網路、下載套件、安裝套件,一氣呵成:

$ gem install takami
Fetching: takami-0.0.1.gem (100%)
Successfully installed takami-0.0.1
Parsing documentation for takami-0.0.1
Installing ri documentation for takami-0.0.1
Done installing documentation for takami after 0 seconds
1 gem installed

如果該套件有需要其它套件,它也會一併順便一起下載、安裝。這個 takami gem 是我自己做的,其實沒有任何內容在裡面,所以可安心安裝!(咦?!)

所以我說那個套件呢?

安裝套件很簡單,但安裝好了之的那些檔案放哪去了? 執行 gem environmentgem env 可列出目前在這台電腦的設定:

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.5.1
  - RUBY VERSION: 2.3.1 (2016-04-26 patchlevel 112) [x86_64-darwin14]
  - INSTALLATION DIRECTORY: /Users/user/.rvm/gems/ruby-2.3.1
  - USER INSTALLATION DIRECTORY: /Users/user/.gem/ruby/2.3.0
  - RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-2.3.1/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/ruby-2.3.1/bin
  - SPEC CACHE DIRECTORY: /Users/user/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/user/.rvm/rubies/ruby-2.3.1/etc
  - RUBYGEMS PLATFORMS:
  ... 略

那個 INSTALLATION DIRECTORY 就是 gem 安裝的地方,裡面翻一下應該就可以找得到剛剛安裝的 takami 套件了。因為我是使用 RVM,所以 gem 的安裝路徑會在 .rvm 目錄裡。

打包帶走

如果想要下載這些套件的原始檔,可至 RubyGems 官網下載:

RubyGems

下載的回來的是一個 .gem 檔(例如:takami-0.0.1.gem),這個 .gem 本身也可以直接拿來安裝,同樣是使用 gem install 指令:

$ gem install takami-0.0.1.gem

這樣一樣可以達到安裝的目的。如果你對這個 .gem 檔的內容有興趣,可以使用 gem unpack 指令把它解開:

$ gem unpack takami-0.0.1.gem
Unpacked gem: '/private/tmp/takami-0.0.1'

其實 .gem 檔案本質上就只是個壓縮檔,很多解壓縮程式應該都打得開。或是你本來就已經有安裝那個 gem 的話,也可以直接這樣做:

$ gem unpack takami
Unpacked gem: '/private/tmp/takami-0.0.1'

gem unpack 這個指令可以把 gem 解開到目前所在的目錄了(所以如果你解開我這個 takami 的 gem 就會真的看到裡面一點料都沒有了,是個空包彈)

不過通常這些 gem 的作者都會順便提供 Github 連結,直接上去看會更方便。

工商服務

實體課程:Ruby on Rails 實戰課程
線上課程:五倍學院線上課程