LoginSignup
1
2

More than 5 years have passed since last update.

自前ビルドしたgemとrubygems.orgのgemのバージョンをインストール後に区別する方法

Posted at

まずは失敗談

Merge pull request #1525 from zerobase/issue1519 · 5c23ae1 · mojombo/jekyll みたいにバグを修正したので、さっそくそれを使いたい。

rake build から gem install pkg/jekyll-1.2.0.gem としました。その後、「いま使ってるjekyllは自前ビルド版だっけ?」と確認したくなったのですが、調べ方がよくわからない。

$ gem list --local|grep jekyll
jekyll (1.2.0)

と表示されるだけで、手がかりがない。これは困ったぞと。

色々考えたのですが、結論としては、そもそもビルド時にカスタム・バージョン指定しておけば、あとから判別できます。

以下、そのやり方です。

1. カスタム・バージョンを指定する

local build config: VERSION = '1.2.0.issue1519' · cb2c631 · zerobase/jekyll のように

module Jekyll
  VERSION = '1.2.0.issue1519'

とします。

失敗談1. ちなみに 1.2.0-issue1519 のように - を入れたら rake build のときに

Invalid gemspec in [jekyll.gemspec]: Malformed version number string 1.2.0-issue1519

となるので要注意。

失敗談2. 最初は jekyll.gemspec を直接編集したんですが、これって rake build で自動生成されるんですね。意味なかった。

2. ビルドする

$ rake build
Updated jekyll.gemspec
mkdir -p pkg
gem build jekyll.gemspec
  Successfully built RubyGem
  Name: jekyll
  Version: 1.2.0.issue1519
  File: jekyll-1.2.0.issue1519.gem
mv jekyll-1.2.0.issue1519.gem pkg

3. インストールする

$ gem install pkg/jekyll-1.2.0.issue1519.gem
Successfully installed jekyll-1.2.0.issue1519
Parsing documentation for jekyll-1.2.0.issue1519
Installing ri documentation for jekyll-1.2.0.issue1519
1 gem installed

参考までに、ふつうに gem install jekyll とした場合は

$ gem install jekyll  
Fetching: jekyll-1.2.0.gem (100%)
Successfully installed jekyll-1.2.0
Parsing documentation for jekyll-1.2.0
Installing ri documentation for jekyll-1.2.0
1 gem installed

となります。

4. インストールされたバージョンを確認する

$ gem list --local|grep jekyll                                 
jekyll (1.2.0.issue1519)

となります。

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2