概要
bundle exec は ruby 標準のライブラリを読み込まないので注意が必要です
環境
- macOS 11.3.1
- Ruby 3.0.0p0
- bundle2.2.3
検証
例えば rss というライブラリは標準ライブラリとしてインストールはされますが bundle 経由だと標準では使えません
- bundle exec -> Error
- ruby -> OK
- irb -> OK
% bundle exec irb
irb(main):001:0> require 'rss'
Traceback (most recent call last):
5: from /usr/local/opt/ruby/bin/irb:23:in `<main>'
4: from /usr/local/opt/ruby/bin/irb:23:in `load'
3: from /usr/local/Cellar/ruby/3.0.0_1/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
2: from (irb):1:in `<main>'
1: from (irb):1:in `require'
LoadError (cannot load such file -- rss)
% irb
irb(main):001:0> require 'rss'
=> true
% ruby -e 'puts require "rss"'
true
対処方法
対処としては Gemfile に rss を書き加えた上で bundle install してから実行します
- vim Gemfile
gem "rss"
- bundle install
% bundle exec irb
irb(main):001:0> require 'rss'
=> true
当たり前といえば当たり前ですが標準ライブラリで発生する可能性があるので注意しましょう また Ruby のバージョンにもよるので注意しましょう バージョンによっては標準ライブラリから外れている gem もあります
0 件のコメント:
コメントを投稿