Ruby on rails 无法检测rake任务。请确保您可以对应用程序运行“$bundle exec rake-P”

Ruby on rails 无法检测rake任务。请确保您可以对应用程序运行“$bundle exec rake-P”,ruby-on-rails,Ruby On Rails,我一直在尝试运行一个git push heroku master,但仍然出现以下错误: remote: ! Could not detect rake tasks remote: ! ensure you can run `$ bundle exec rake -P` against your app remote: ! and using the production group of your Gemfile. remote: ! Activating

我一直在尝试运行一个git push heroku master,但仍然出现以下错误:

remote:  !     Could not detect rake tasks
remote:  !     ensure you can run `$ bundle exec rake -P` against your app
remote:  !     and using the production group of your Gemfile.
remote:  !     Activating bundler (2.0.1) failed:
remote:  !     Could not find 'bundler' (= 2.0.1) - did find: [bundler-2.0.2]
remote:  !     Checked in 'GEM_PATH=vendor/bundle/ruby/2.4.0', execute `gem env` for more information
remote:  !
remote:  !     To install the version of bundler this project requires, run `gem install bundler -v '2.0.1'`
remote:  !
remote: /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/rake_runner.rb:106:in `load_rake_tasks!': Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError)
remote: ensure you can run `$ bundle exec rake -P` against your app
remote: and using the production group of your Gemfile.
remote: Activating bundler (2.0.1) failed:
remote: Could not find 'bundler' (= 2.0.1) - did find: [bundler-2.0.2]
remote: Checked in 'GEM_PATH=vendor/bundle/ruby/2.4.0', execute `gem env` for more information
remote:
remote: To install the version of bundler this project requires, run `gem install bundler -v '2.0.1'`
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/ruby.rb:961:in `rake'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/rails4.rb:84:in `block (2 levels) in run_assets_precompile_rake_task'
remote:     from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/base.rb:135:in `log'
我运行了上面建议的所有内容,并继续得到错误消息。然后我遵循了这个指南:

最新的一个,我开始得到这个错误:

rvm install "ruby-2.6.3"
Warning, new version of rvm available '1.29.9-next', you are using older version '1.29.4'.
You can disable this warning with:    echo rvm_autoupdate_flag=0 >> ~/.rvmrc
You can enable  auto-update  with:    echo rvm_autoupdate_flag=2 >> ~/.rvmrc
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.13/x86_64/ruby-2.6.3.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Updating Homebrew...

Error: undefined method `any?' for nil:NilClass
Please report this bug:
  https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:216:in `depends_on'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in `block in check_dependents'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in `sort'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in `check_dependents'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:114:in `upgrade'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'
Requirements installation failed with status: 1.
➜  dancortesPortfolio git:(master) ✗ gem install bundler '2.0.2'
Error loading RubyGems plugin "/Users/danale/.rvm/gems/ruby-2.4.0@global/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb": dlopen(/Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle
  Reason: image not found - /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle (LoadError)
Error loading RubyGems plugin "/Users/danale/.rvm/gems/ruby-2.4.0@global/gems/gem-wrappers-1.2.7/lib/rubygems_plugin.rb": dlopen(/Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle
  Reason: image not found - /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle (LoadError)
ERROR:  Loading command: install (LoadError)
    dlopen(/Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle
  Reason: image not found - /Users/danale/.rvm/gems/ruby-2.4.0@global/gems/openssl-2.0.3/lib/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass
rvm安装“ruby-2.6.3”
警告,新版本的rvm可用“1.29.9-next”,您使用的是旧版本“1.29.4”。
您可以使用以下命令禁用此警告:echo rvm\u autoupdate\u flag=0>>~/.rvmrc
您可以使用:echo rvm\u autoupdate\u flag=2>>~/.rvmrc启用自动更新
搜索二进制红宝石,这可能需要一些时间。
没有二进制ruby可用于:osx/10.13/x86_64/ruby-2.6.3。
继续汇编。请阅读“rvm帮助挂载”以获取有关二进制红宝石的更多信息。
检查osx的需求。
正在更新自制。。。
错误:nil:NilClass的未定义方法“any”
请报告此错误:
https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:216:in“依赖”
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in`block in check_dependents'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in'sort'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:235:in'check_dependents'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:114:in'upgrade'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in`'
需求安装失败,状态为:1。
➜  DancertSportfolio git:(硕士)✗ gem安装捆绑程序“2.0.2”
加载RubyGems插件“/Users/danale/.rvm/gems/ruby-2.4时出错。0@global/gems/executable-hooks-1.3.2/lib/rubygems_plugin.rb”:dlopen(/Users/danale/.rvm/gems/ruby-2.4)。0@global/gems/openssl-2.0.3/lib/openssl.bundle,9):未加载库:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib
引用自:/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle
原因:找不到映像-/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle(加载错误)
加载RubyGems插件“/Users/danale/.rvm/gems/ruby-2.4时出错。0@global/gems/gem-wrappers-1.2.7/lib/rubygems_plugin.rb“:dlopen(/Users/danale/.rvm/gems/ruby-2.4)。0@global/gems/openssl-2.0.3/lib/openssl.bundle,9):未加载库:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib
引用自:/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle
原因:找不到映像-/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle(加载错误)
错误:加载命令:安装(加载错误)
dlopen(/Users/danale/.rvm/gems/ruby-2.4)。0@global/gems/openssl-2.0.3/lib/openssl.bundle,9):未加载库:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib
引用自:/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle
原因:找不到映像-/Users/danale/.rvm/gems/ruby-2.4。0@global/gems/openssl-2.0.3/lib/openssl.bundle
错误:执行gem时。。。(命名者)
nil:NilClass的未定义方法'invoke_with_build_args'

这不会解释您遇到的第二个错误,但是解决第一个错误中捆绑程序问题的一个可能方法是从
Gemfile.lock文件中删除“BUNDLED WITH”行。它们应该是文件的最后两行,并且(根据您的错误)应该类似于:

BUNDLED WITH
  2.0.1

每次运行
bundle install
时,这些行将重新出现在
Gemfile.lock
文件中,因此您需要在运行该命令后推送到heroku时删除它们。我还没有找到一个更持久的解决方案,但这对我来说解决了这个错误。

看起来您本地有bundler版本2.0.1,但heroku正在运行2.0.2。您可以尝试在计算机上更新bundler:
gem安装bundler
,然后在项目中重新运行
bundle安装

如果无法更新bundler:,您也可能遇到此问题。特别是:

...you are using rvm-1.29.1 or later it is likely caused by a pre-1.1 OpenSSL version that is installed or symlinked to /usr/local.

You can check which formula /usr/local/bin/openssl is symlinked to and to a brew unlink <fomula> and then do a rvm reinstall of the broken ruby version.

…您使用的是rvm-1.29.1或更高版本,这可能是由安装或符号链接到/usr/local的1.1之前的OpenSSL版本引起的。
您可以检查哪个公式/usr/local/bin/openssl被符号链接到brew或与brew解除链接,然后对损坏的ruby版本进行rvm重新安装。