如果我在我的Gemfile中使用:
gem "searcher", github: "radar/searcher"
捆绑安装完美无缺。但是我试图为heroku部署,而且我得到了这个错误:
$ git push heroku master
Counting objects: 1277, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1218/1218), done.
Writing objects: 100% (1277/1277), 143.11 KiB | 0 bytes/s, done.
Total 1277 (delta 793), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.2.6
remote: -----> Installing dependencies using bundler 1.13.7
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: The git source `git://github.com/radar/searcher.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
remote: You are trying to install in deployment mode after changing
remote: your Gemfile. Run `bundle install` elsewhere and add the
remote: updated Gemfile.lock to version control.
remote: You have added to the Gemfile:
remote: * source: git://github.com/radar/searcher.git (at master)
remote: You have deleted from the Gemfile:
remote: * source: https://github.com/radar/searcher.git (at master@c297512)
remote: Bundler Output: The git source `git://github.com/radar/searcher.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
remote: You are trying to install in deployment mode after changing
remote: your Gemfile. Run `bundle install` elsewhere and add the
remote: updated Gemfile.lock to version control.
remote:
remote: You have added to the Gemfile:
remote: * source: git://github.com/radar/searcher.git (at master)
remote:
remote: You have deleted from the Gemfile:
remote: * source: https://github.com/radar/searcher.git (at master@c297512)
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to glacial-beyond-39560.
remote:
To https://git.heroku.com/glacial-beyond-39560.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/glacial-beyond-39560.git'
然后我尝试在Gemfile中调整只放gem "searcher"
并在尝试捆绑时出错:
Bundler could not find compatible versions for gem "activerecord":
In snapshot (Gemfile.lock):
activerecord (= 4.2.1)
In Gemfile:
rails (= 4.2.1) was resolved to 4.2.1, which depends on
activerecord (= 4.2.1)
searcher was resolved to 0.0.1, which depends on
activerecord (~> 3.0.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
我看到它建议使用ActiveRecord 3x。我需要做什么(为active_record 3x安装一个版本的rails?或者我这个宝石的安全协议是什么?有人可以帮我吗???
答案 0 :(得分:0)
在尝试了很多方法后,我成功地改变了:
gem "searcher", github: "radar/searcher"
为此:
gem "searcher", git: "https://github.com/radar/searcher.git"
答案 1 :(得分:-1)
我认为删除Gemfile.lock的内容,然后再次运行bundle install。这对我有用。