2017-07-21 5 views
1

Ich habe meine App von Github geklont, aber ich habe Fehler auf Gemfile. Also ich denke, diese App. noch läuft auf Heroku und es wird gesagt, dass alle auf dem neuesten Stand, wenn ich habe folgende Befehle verwendet:Fehler in Gemfile

git status 
//On branch master 
Your branch is up-to-date with 'origin/master'. 
nothing to commit, working tree clean 

git push heroku 
//Everything up-to-date 

Auch ich Ausgang in Heroku sehen konnte. Wie behebt man den Fehler in Gemfile? danke.

//error as below: 
There was an error parsing `Gemfile`: The `branch` option for `gem 'recaptcha'` is not allowed. Only gems with a git source can specify a branch. Bundler cannot continue. 

# from /home/ubuntu/workspace/typo-1/Gemfile:46 
# ------------------------------------------- 
# gem 'acts_as_tree_rails3' 
> gem 'recaptcha', :require => 'recaptcha/rails', :branch => 'rails3' 
# 

// Gemfile

env = ENV["RAILS_ENV"] || 'development' 
dbfile = File.expand_path("../config/database.yml", __FILE__) 

#unless File.exists?(dbfile) 
# raise "You need to configure config/database.yml first" 
#else 
# conf = YAML.load(File.read(dbfile)) 
# adapter = conf[env]['adapter'] 
# raise "You need define an adapter in your database.yml" if adapter == '' || adapter.nil? 
# case adapter 
# when 'sqlite3' 
# gem 'sqlite3' 
# when 'postgresql' 
# gem 'pg' 
# when 'mysql' 
# gem 'sam-mysql-ruby' 
# else 
# raise "Don't know what gem to use for adapter #{adapter}" 
# end 
#end 

group :production do 
    gem 'pg' 
end 

source 'https://rubygems.org' 
ruby "1.9.3" 

gem 'thin' 
gem 'rails', '~> 3.0.10' 
gem 'require_relative' 
gem 'htmlentities' 
gem 'json' 
gem 'bluecloth', '~> 2.1' 
gem 'coderay', '~> 0.9' 
gem 'kaminari' 
gem 'RedCloth', '~> 4.2.8' 
gem 'addressable', '~> 2.1', :require => 'addressable/uri' 
gem 'mini_magick', '~> 1.3.3', :require => 'mini_magick' 
gem 'uuidtools', '~> 2.1.1' 
gem 'flickraw-cached' 
gem 'rubypants', '~> 0.2.0' 
gem 'rake', '~> 0.9.2' 
gem 'acts_as_list' 
gem 'acts_as_tree_rails3' 
gem 'recaptcha', :require => 'recaptcha/rails', :branch => 'rails3' 

group :development, :test do 
    gem 'ruby-debug19' 
    gem 'factory_girl', '~> 2.2' 
    gem 'webrat' 
    gem 'rspec-rails', '~> 2.0' 
    gem 'simplecov', :require => false 
    gem 'sqlite3' 
    gem 'cucumber' 
    gem 'cucumber-rails', :require => false 
    gem 'cucumber-rails-training-wheels' 
    gem 'database_cleaner' 
    gem 'capybara' 
end 

// bearbeitet I-Zweig nahm bekam aber Fehler wie unten bei der Ausführung Bundle installieren: Bündel

installieren

„Ihre Ruby-Version ist 2.3.0 , aber Ihr Gemfile spezifizierte 1.9.3 "

Version 2.4 den gleichen Fehler verursachen. Also, ich habe auf 2.3.0 geändert - es ging bis zu einem anderen Fehler wie folgt:

Ergebnisse protokolliert zu /usr/local/rvm/gems/ruby-2.3.0/extensions/x86_64-linux/2.3 .0/json-1.7.5/gem_make.out

Während der Installation von json (1.7.5) ist ein Fehler aufgetreten, und Bundler kann nicht fortfahren. Stellen Sie sicher, dass gem install json -v '1.7.5' vor dem Bündeln erfolgreich ist.

// Bearbeitung

Ich habe folgen die Antwort, die alte Version 1.9.2 zu verwenden, vorgeschlagen und ich in der Lage Befehlsbündel installieren zu verwenden, aber nach dem Heroku schieben, habe ich leere Seite auf Heroku bekam und wie unten Fehler:

// Fehler

2017-07-23T18:09:50.995656+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/controllers/controller.rb:181:in `load_rackup_config' 
2017-07-23T18:09:50.995657+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/controllers/controller.rb:71:in `start' 
2017-07-23T18:09:50.995657+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb:187:in `run_command' 
2017-07-23T18:09:50.995658+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin/runner.rb:152:in `run!' 
2017-07-23T18:09:50.995659+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/bin/thin:6:in `<top (required)>' 
2017-07-23T18:09:50.995659+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `load' 
2017-07-23T18:09:50.995660+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/bin/thin:23:in `<top (required)>' 
2017-07-23T18:09:51.185918+00:00 heroku[web.1]: Process exited with status 1 
2017-07-23T18:09:51.200309+00:00 heroku[web.1]: State changed from starting to crashed 
2017-07-23T18:09:51.845236+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=typoa.herokuapp.com request_id=7c8caa3e-8bad-4431-9da6-8ddf2f52a4d1 fwd="108.211.182.6" dyno= connect= service= status=503 bytes= protocol=https 
2017-07-23T18:19:04.542770+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=typoa.herokuapp.com request_id=798e1c83-078a-4da6-b2cd-dfbf47b80687 fwd="108.211.182.6" dyno= connect= service= status=503 bytes= protocol=https 

// bearbeitet

als ich vorschlug Linie abnahm (mit recaptcha), kann ich nicht sehen konnte, App. örtlich. Mit dieser Zeile konnte ich App sehen. örtlich.

Fehler ohne diese Zeile wie folgt:

rails server -b $IP -p $PORT 
=> Booting WEBrick 
=> Rails 3.0.17 application starting in development on http://0.0.0.0:8080 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 


    home/ubuntu/workspace/typo-1/config/initializers/recaptcha.rb:1:in `<top (required)>': uninitialized constant Recaptcha (NameError) 
      from /usr/local/rvm/gems/ruby-1.9.3-p551/gems/railties-3.0.17/lib/rails/engine.rb:201:in `block (2 levels) in <class:Engine>' 

In jedem Fall ich nicht Heroku drücken könnte: Fehler wie unten (es empfiehlt die neueste Version von Ruby zu verwenden):

Ruby app detected 
remote: -----> Compiling Ruby/Rails 
remote: ! 
remote: !  An error occurred while installing ruby-1.9.3 
remote: !  
remote: !  Heroku recommends you use the latest supported Ruby version listed here: 

// edit ich keine funktionierende App finden konnte, um die Lösung dieses Problems ... Fehlermeldung, wie unten zu sehen: http://typosphere.org/stable.tar.gz#

+0

Schalt 2,3-2,4 ist nicht installieren gehen ändere, dass dein Gemfile 1.9.3 spezifiziert ... Wenn du keine Versionen in deinem Gemfile verwendest, ist es fast garantiert, dass es bei den meisten Ruby-Upgrades Probleme gibt. –

+0

Also, im Grunde muss ich ändern, Gemfile gibt an, das wäre in Ordnung mit 2.3 oder 2.4 und dann geeignete Version auf Gemfile verwenden. Wenn es richtig ist, wie man sich ihm nähert? Oder vielleicht muss ich versuchen, von Heroku zu ziehen, da es online gut funktioniert oder mit der neuen Version neu beginnt. –

Antwort

2

1- In reCAPTCHA Projekt auf Github ist es kein Zweig rails3, so, das Stück Ihrer Gemfile entfernen.

gem 'recaptcha': require => 'recaptcha/rails'

2- Da Sie mit Ruby 2.2.x und in Gemfile ist 1.9.3 Ich schlage vor, dass Sie installieren sollten 1.9.3 (über rvm oder via rvm oder was auch immer Sie verwenden, um Ihre Ruby-Versionen zu verwalten) in Ihrem Computer und arbeiten damit, um andere Konflikte zu vermeiden, die Sie möglicherweise finden, weil Sie einen Legacy-Code verwenden.

rvm installieren 1.9.3

rvm Verwendung 1.9.3

jetzt gem Bündler und danach blundle installieren Ihre Gemfile

+0

Ich habe folgen Sie Ihrem Vorschlag mit rvm Befehl und Put Gem Bündler in Gemfile nach diesem habe ich Bund installiert nicht wie Sie "blundle installieren" und wie geschrieben ein Ergebnis Ich habe einen Anwendungsfehler - meine App wurde unsichtbar (siehe Fehler im Hauptthread). –

+2

@User, mein Fehler über "blundle", auf jeden Fall glaube ich, dass du mich verstanden hast (Bundle) Ich denke immer noch, dass du Ruby Version 1.9.3 in deinem Gemfile respektieren und vorherige Schritte noch einmal versuchen solltest. Über Heroku, der eigentliche Standard-Stack ist heroku-16, der Ruby 1.9.3 nicht unterstützt (https://devcenter.heroku.com/articles/stack-packages), du solltest zum cedar-14-Stack wechseln, um die App zu installieren. Weitere Informationen https://devcenter.heroku.com/articles/stack und https://devcenter.heroku.com/articles/cedar-14-stack – Lily

+0

Ich habe bereits Ihren Vorschlag, der besagt, um Edelstein "recaptcha" zu entfernen, versucht, : require => 'recaptcha/rails' Wenn ich diese Zeile entfernt habe, konnte ich die Ausgabe nicht lokal sehen - das ist nicht gut. Wenn ich diese Zeile zurücksetze - ich könnte die Ausgabe lokal sehen, aber heroku liefert Fehler. Hast du eine funktionierende Tippfehler-App mit oder ohne diese Zeile oder willst du, dass ich versuche zu sehen, was passiert ist? Es wäre hilfreich, wenn Sie eine funktionierende App zum Teilen haben oder wissen, wo Sie sie sehen können. Ich finde nur eine funktionierende App. auf GitHub aber nur mit Fehlern. –

0

Ich habe diesen Fehler nicht mit Ruby 2.4.1 erhalten. Ich habe den gleichen Fehler bekommen, als ich die Versionen in 1.9.3 änderte, wie in der Gemfile angegeben. Ich sehe auch keinen Zweig namens rails3 an der Quelle auf Github. Ich würde versuchen, zuerst die Zweigoption zu entfernen.

gem 'recaptcha', require: 'recaptcha/rails' 
+0

Ich habe Zweig entfernt und versucht, Paket installieren, aber Fehler wie folgt: –