mieki256's diary



2014/06/03(火) [n年前の日記]

#4 [ruby] bundlerについて勉強

Ruby のライブラリをインストールする際、RubyGems なる仕組みが ―― gem というコマンドが使えるわけですけど。Ruby 1.9.3 上で、cairo、glib2、gdk_pixbuf2、rsvg2 のバージョンを決め打ちしてインストールする作業が面倒臭かったので、bundler なる仕組みを使えないものかなと思って調べ始めたり。

とりあえず、bundler をインストール。
gem install bundler

雛形ファイルを作る。
bundle init
Gemfile というファイルが、カレントフォルダに作られた。エディタで開く。

以下のような感じに修正してみたけど…。
source "https://rubygems.org"

platforms :mingw_19 do
  gem "cairo", "1.12.4"
  gem "glib2", "1.2.6"
  gem "gdk_pixbuf2", "1.2.6"
  gem "rsvg2", "1.2.6"
end

# platforms :mingw_20 do
#   gem "cairo"
#   gem "glib2"
#   gem "gdk_pixbuf2"
#   gem "rsvg2"
# end
platforms :mingw_19 do 〜 end で、「Ruby 1.9 mingw32版なら、このライブラリをインストールせよ」と指定をしている、らしい。よく分かってないですが。ちなみに、 _Gemfile(5) - A format for describing gem dependencies for Ruby programs の、PLATFORMS (:platforms) のところに、記述できる種類の一覧があるようで。

あらかじめ、cairo、glib2、gdk_pixbuf2、rsvg2 を、gem uninstall xxxx でアンインストールしておいた上で、以下を実行。
bundle install
これで、バージョン決め打ちでインストール出来たように見えた。

ただ、この指定だと、Rubyのシステム部分?に、ライブラリをインストールしてしまう。今回はシステムにインストールしたかったので、コレでいいのだろうけど。フツーはプロジェクト単位で、どのライブラリを使うのか、分けて管理するらしくて。一般的には、プロジェクトフォルダ/vendor/bundle 以下にインストールする。らしい。たぶん。
bundle install --path vendor/bundle
しかし、このままだと、スクリプト内で require 'hoge' とかしても「ライブラリがねえよ」と言われてしまう。…どうすれば使えるようになるのかは、まだ調べてないです。

それはともかく。一つの Gemfile の中で、 てな感じの指定をしたいのだけど、方法が分からず。前述の Gemfile のコメント部分を有効にしたら、以下のようなエラーメッセージが。
You cannot specify the same gem twice with different version requirements.
You specified: cairo (= 1.12.4) and cairo (>= 0)
さて、どう書けばいいんだろう…。

こんな感じではどうかしら。
source "https://rubygems.org"

platforms :mingw do
  if RUBY_VERSION =~ /^1.9/
    gem "cairo", "1.12.4"
    gem "glib2", "1.2.6"
    gem "gdk_pixbuf2", "1.2.6"
    gem "rsvg2", "1.2.6"
  else
    gem "cairo"
    gem "glib2"
    gem "gdk_pixbuf2"
    gem "rsvg2"
  end
end
コレで合ってるのかな…? よくわからん…。

以上です。

過去ログ表示

Prev - 2014/06 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project