4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】vendor/bundleにgemがインストールされたはずなのに、requireでエラー

Posted at

#経緯
スクレイピングについて少し学習しようと思い、
Rubyを使って20分でスクレイピングの大元を作るを参考に実装。
「Gemはvendor/bundle配下にインストールするようにします。」とあるので、
指示通りbundle installするときに --path vendor/bundle のオプションを追加。

#エラー発生
記事の通りのcodeをmain.rbに書き込み、main.rbを実行すると、

training $ ruby main.rb 
Traceback (most recent call last):
	2: from main.rb:2:in `<main>'
	1: from /Users/yusaku/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Users/yusaku/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- nokogiri (LoadError)

'require': cannot load such file -- nokogiri (LoadError) と書かれているが、
nokogiriはvender/bundle 配下にbundle install済みである。

training $ ls vendor/bundle/ruby/2.6.0/gems/
byebug-11.1.3		method_source-1.0.0	nokogiri-1.10.10	pry-byebug-3.9.0
coderay-1.1.3		mini_portile2-2.4.0	pry-0.13.1

解決

エラーの内容をよくみて見ると、
/Users/yusaku/.rbenv/ 配下を探しに行っているように見える。
それでハッとしたのだが、bundle execをしていなかった。

training $ bundle exec ruby main.rb

これでエラーも発生せず、main.rbが実行できた(require "nokogiri"もできた)。
bundle execをすることによって、同一ディレクトリ配下でgemを探してくれたように見える。

4
1
0

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?