Ich bin ziemlich neu in Ruby und Bedingungen der Bereitstellung von App über Remote-Tools. Ich habe versucht, meine App auf dem kostenlosen openshift-Konto bereitzustellen. Und ich kann keine Anwendung ausführen.Ruby "Paket installieren" Fehler auf Openshift
Wenn ich Anwendung ausführen bekomme ich diesen Fehler:
You have already activated rack 1.5.2, but your Gemfile requires rack 1.6.0.
Using bundle exec may solve this. (Gem::LoadError)
Also versuche ich bundle exec
zu laufen, aber ich habe einen anderen Fehler:
Gemfile syntax error:
/var/lib/openshift/xxxxxxxxxxxxxxxxxxxxxxxxxx/app-root/runtime/repo/Gemfile:24:
syntax error, unexpected ':', expecting $end
gem 'sdoc', '~> 0.4.0', group: :doc
Ich denke, es könnte sein, weil ich Rubin verwendet 2.1. 5 bei lokaler und offener Verschiebung läuft Ruby 2.0 standardmäßig.
Ich hatte dieses Thema foud How can I force a bundle install on OpenShift Online when my RAILS_ENV is set to development? aber ich weiß nicht, ob ich es richtig mache. Ich weiß nicht einmal, wo ich diese pre_build
Datei ablegen soll. Ich habe versucht, es unter /var/lib/openshift/xxxxxxxxxxxxxxxxxxxxxxxxxx/app-root/runtime/repo/.openshift/action_hooks/
zu setzen. Aber ich bin mir nicht sicher, ob runtime
richtig repo ist.
EDIT 1:
Das es mein Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
group: :doc do
gem 'sdoc', '~> 0.4.0'
end
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :jruby]
LÖSUNG:
Wie @Rajarshi Das sagte ich
gem 'sdoc', '~> 0.4.0', group: :doc
ändern musste i nto
group: :doc do
gem 'sdoc', '~> 0.4.0'
end
Ich weiß nicht genau warum. Vielleicht einige Syntaxprobleme, da ich Ruby 2.1.5 lokal verwendete und 2.0.0 für die Produktion verwenden musste. Und danach musste ich gem install rails
laufen lassen, obwohl ich Rails schnell gestartet habe. Schließlich musste ich manuell zu Gemfile gem 'nokogiri'
hinzufügen. Schließlich konnte ich bundle install
laufen lassen und Anwendung begann zu arbeiten.
Ich denke, es ist meine git-Repository sein müssen. Form, die ich Dateien für Bulid, nicht Repository auf OpenShift-Server herunterladen. Wie stelle ich es für die Bereitstellung von Schienen 2.1 ein? –
Ich habe das gleiche Problem. Welche Änderungen mussten Sie vornehmen, um die Anwendung mit 'bundle exec' auszuführen? –
Ich bin relativ neu in Ruby. Die meisten meiner Aktionen drehten also im Dunkeln. Ich denke du solltest das Bundle installieren. Ich nehme an, dass Bundle Install verwendet Gemfile und Bundle Exec verwendet .lock-Datei. –