在Ruby项目中运行各种命令(例如bundle和rspec)后,Selenium::WebDriver::Error::WebDriverError: Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
会更新,并https://github.com/ivandeex/heroku-buildpack-firefox.git
添加到Gemfile.lock
标题中。为什么会这样?我该如何预防?
运行x86_64-darwin-17
会给出这个有趣的背景:
PLATFORMS
答案 0 :(得分:1)
这是由全局捆绑器配置引起的。设置为false会停止该行为。
specific_platform(BUNDLE_SPECIFIC_PLATFORM):允许bundler解析特定的运行平台并将其存储在lockfile中,而不是仅使用通用平台。特定平台是Gem :: Platform.local报告的精确平台三元组,例如x86_64-darwin-16或universal-java-1.8。另一方面,通用平台是诸如ruby,mswin或java之类的平台。在这个例子中,x86_64-darwin-16将映射到ruby和universal-java-1.8到java。
答案 1 :(得分:1)
@RangerRanger的回答对我不起作用,但是我像他一样签入了bundler doc,发现这个人对我有用:
force_ruby_platform(BUNDLE_FORCE_RUBY_PLATFORM):忽略当前机器的平台,仅安装ruby平台gem。结果,具有本机扩展的gem将从源代码编译。
以下是命令:bundle config force_ruby_platform true
答案 2 :(得分:0)
如果您想在不更新Gemfile.lock
的情况下安装依赖项,请使用--frozen
option。例如bundle --frozen
。这将正常安装依赖项,但不更新Gemfile.lock
如果这不是一个好的解决方案,最好的办法是将Gemfile.lock
添加到您当地仓库特定的.gitignore
。
您可以根据this answer
your_repo/.git/info/exclude
创建一个。{