rbenv上でbundle execを使うと、bundlerのbinファイルの読み込みに失敗します。
解決済
回答 2
投稿
- 評価
- クリップ 0
- VIEW 4,511
現在Gemを作成しています。その際に、guardでテストを実行しようとするとエラーが起きるようになりました。今までは問題なく実行できていて、何が原因となったかはわかりません。test/
以下に~.rb
ファイルがある場合に下記のエラーが起きます。~.rb
ファイルには何も記述していなくてもです。この原因、またはヒントなることがあれば、教えていただきたいです。
/Users/mitsuru/.rbenv/versions/2.3.0/bin/bundle
の22行目のload Gem.activate_bin_path('bundler', 'bundle', version)
からのファイルの読み込みに失敗しています。/Users/mitsuru/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/gems
というディレクトリ自体がありませんでした。
また、Gem.activate_bin_path
の挙動について書いてあるページもわかりませんでした。
どうぞよろしくお願い致します。
❯ bundle exec guard
21:43:56 - INFO - Guard::Test 2.0.5 is running, with Test::Unit 2.5.5!
21:43:56 - INFO - Running all tests
/Users/mitsuru/.rbenv/versions/2.3.0/bin/bundle:22:in `load': cannot load such file -- /Users/mitsuru/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/gems/bundler-1.11.2/bin/bundle (LoadError)
from /Users/mitsuru/.rbenv/versions/2.3.0/bin/bundle:22:in `<main>'
21:43:57 - INFO - Guard is now watching at '/Users/mitsuru/code/myrepository/dig_yaml_front_matter'
[1] guard(main)>
環境
OS
- ProductName: Mac OS X
- ProductVersion: 10.11.1
- BuildVersion: 15B42
その他
- zsh 5.2 (x86_64-apple-darwin15.0.0)
- rbenv 1.0.0
- ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
設定ファイル
/Users/mitsuru/.rbenv/versions/2.3.0/bin/bundle
#!/Users/mitsuru/.rbenv/versions/2.3.0/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'bundler' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0.a"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
version = $1
ARGV.shift
end
end
load Gem.activate_bin_path('bundler', 'bundle', version)
Gemfile
source 'https://rubygems.org'
# Specify your gem's dependencies in schema_validator.gemspec
gemspec
Gemfile.lock
PATH
remote: .
specs:
dig_yaml_front_matter (0.1.0)
front_matter_parser
GEM
remote: https://rubygems.org/
specs:
awesome_print (1.6.1)
coderay (1.1.1)
fakefs (0.8.1)
ffi (1.9.10)
formatador (0.2.5)
front_matter_parser (0.0.4)
guard (2.13.0)
formatador (>= 0.2.4)
listen (>= 2.7, <= 4.0)
lumberjack (~> 1.0)
nenv (~> 0.1)
notiffany (~> 0.0)
pry (>= 0.9.12)
shellany (~> 0.0)
thor (>= 0.18.1)
guard-test (2.0.5)
guard (~> 2.0)
test-unit (~> 2.2)
listen (3.0.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9.7)
lumberjack (1.0.10)
method_source (0.8.2)
nenv (0.3.0)
notiffany (0.0.8)
nenv (~> 0.1)
shellany (~> 0.0)
pry (0.10.3)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
rake (10.5.0)
rb-fsevent (0.9.7)
rb-inotify (0.9.7)
ffi (>= 0.5.0)
shellany (0.0.1)
slop (3.6.0)
terminal-notifier (1.6.3)
terminal-notifier-guard (1.7.0)
test-unit (2.5.5)
thor (0.19.1)
PLATFORMS
ruby
DEPENDENCIES
awesome_print
bundler (~> 1.11)
dig_yaml_front_matter!
fakefs
guard
guard-test (= 2.0.5)
rake (~> 10.0)
terminal-notifier
terminal-notifier-guard
BUNDLED WITH
1.11.2
Guardfile
guard :test, cmd: "bundle exec test" do
# Test files
watch(%r{^test/.+_test\.rb$})
watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
watch('test/test_helper.rb') { "test" }
end
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+1
.bundle/config
と.vendor
を削除して、gemをホームディレクトリにある.rbenv
から読み込むようにしたらbundle exec guard
を実行しても、エラーが起きないようになりました。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
0
思うところで言えば、bundle exec からguardを呼び出して、guardがさらにbundle exec を呼び出しています。
以下をしてみるとヒントが得られるかもしれません。
guardだけで叩いてみる。
bundle installを実行してみて、bundleが動くか試してみる。
フォルダ内で rbenv versionを叩いてみる。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.38%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる