2012-02-09 2 views
1

特定のgem(spree_cmd)のトラブルシューティングを行い、 "bundle exec"がバイナリの所在を知りたいと思っています。

...bundler/shared_helpers.rb:151:in `bin_path': can't find executable spree. 

の場合、echo $PATHの場合、どこかに "騒ぎ"があります。 which spreeと確認されました。

+0

あなたのGemfileに定義されているか、またはあなたのGemfileのどれかに依存していますか? –

+0

これは私のgemfileで定義されています。 gem 'spree'、:path => '../gems/spree'(ただしgit repoでも構いません)Spreeはバイナリを持つspree_cmdに依存します。問題は、ビンが正しく渡されないエッジスプレーのバグです。私はトラブルシューティングをしようとしています。 – berkes

答えて

1

あなたの問題をはっきりと理解することなく、具体的なものを提供することはできません。

bundle exec which some_binary_from_gemfileバイナリがどこに格納されているのかを調べると、そのバイナリがどこにあるのかがわかります。

docsによると、$BUNDLE_BIN_PATHという環境変数を設定して独自のbinディレクトリを追加できるようです。

もう1つのことは、すべてのバイナリを含むルートディレクトリにフォルダを作成するbundle install --binstubsです。

バイナリがパスに追加されていない場合、私が最初に探すのは.gemspecです(specify where the bin directory isspec.bindir = 'bin')。私は現在のspree_cmd gem(0.0.4)で正しいと見える(実行していない)。それが正しいと思われる場合は、バイナリが指定したディレクトリにあることを確認し、実行可能であることを確認し、シバンが正しいことを確認して、呼び出すバイナリと同じ名前が付いていることを確認します。

+0

gemspecの仕様が間違っていました。トラブルシューティングに必要な情報を私に教えてくれてありがとう! – berkes

関連する問題