我正在对某个gem(spree_cmd)进行故障排除,并想知道“bundle exec”期望二进制文件的位置。
...bundler/shared_helpers.rb:151:in `bin_path': can't find executable spree.
当我echo $PATH
时,某处有一个“狂欢”。已确认which spree
。
答案 0 :(得分:1)
如果没有更清楚地了解您的问题,我无法提供任何具体内容。
你可以通过bundle exec which some_binary_from_gemfile
找出存储二进制文件的位置,它会告诉你二进制文件的位置。
根据docs,您似乎可以通过设置$BUNDLE_BIN_PATH
环境变量来添加自己的bin目录。
您可以做的另一件事是bundle install --binstubs
,它会在根目录中创建一个包含所有二进制文件的文件夹。
如果您的二进制文件未添加到路径中,我首先看到的是.gemspec,(您必须specify where the bin directory is与spec.bindir = 'bin'
)。我在当前的spree_cmd gem(0.0.4)中看到它看起来是正确的(还没试过运行它)。如果看起来正确,那么确保你的二进制文件在你指定的目录中,确保它是可执行的,确保shebang是正确的,确保它的名称与你试图调用的二进制文件的名称相同。