2016-03-22 7 views
5

Während dieser Installationsanleitung, https://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_30x_on_Ubuntu_1404_with_Apache2_Phusion_Passenger_MySQL_Subversion_and_Git_%28Gitolite%29,Bundler kann nicht fortgesetzt werden; Fehler bei der Analyse ‚Gemfile‘: (<unknown>)

ich in ein Thema lief, als ich den folgenden Befehl ausgeführt

bundle install --without development test postgresql sqlite 

und bekam die folgende Fehlermeldung.

[email protected]:~/redmine$ bundle install --without development test postgresql sqlite 

[!] There was an error parsing `Gemfile`: (<unknown>): found character that cannot start any token while scanning for the next token at line 10 column 13. Bundler cannot continue. 

# from /opt/redmine/redmine-3.0.4/Gemfile:57 
# ------------------------------------------- 
# database_config = YAML::load(ERB.new(IO.read(database_file)).result) 
# adapters = database_config.values.map {|c| c['adapter']}.compact.uniq 
# ------------------------------------------- 

Ich habe YAML Syntax mit diesem Tool überprüft, http://www.yamllint.com/, aber nichts schüttelt.

Wie im Code zu sehen war, habe ich die fragliche Zeile auskommentiert und einfach umgeschrieben (ein IT-Kollege schlug Tabulator-Syntax oder Leerzeichen als Problem vor), auch ohne Erfolg.

Mein Gemfile ist wie folgt;

if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.5.0') 
    abort "Redmine requires Bundler 1.5.0 or higher (you're using #{Bundler::VERSION}).\nPlease update with 'gem update bundler'." 
end 

gem "rails", "4.2.3" 
gem "jquery-rails", "~> 3.1.3" 
gem "coderay", "~> 1.1.0" 
gem "builder", ">= 3.0.4" 
gem "request_store", "1.0.5" 
gem "mime-types" 
gem "protected_attributes" 
gem "actionpack-action_caching" 
gem "actionpack-xml_parser" 

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin, :jruby] 
gem "rbpdf", "~> 1.18.6" 

# Optional gem for LDAP authentication 
group :ldap do 
    gem "net-ldap", "~> 0.3.1" 
end 

# Optional gem for OpenID authentication 
group :openid do 
    gem "ruby-openid", "~> 2.3.0", :require => "openid" 
    gem "rack-openid" 
end 

platforms :mri, :mingw, :x64_mingw do 
    # Optional gem for exporting the gantt to a PNG file, not supported with jruby 
    group :rmagick do 
    gem "rmagick", "~> 2.13.4" 
    end 

    # Optional Markdown support, not for JRuby 
    group :markdown do 
    gem "redcarpet", "~> 3.1.2" 
    end 
end 

platforms :jruby do 
    # jruby-openssl is bundled with JRuby 1.7.0 
    gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0' 
    gem "activerecord-jdbc-adapter", "~> 1.3.2" 
end 

# Include database gems for the adapters found in the database 
# configuration file 
require 'erb' 
require 'yaml' 
database_file = File.join(File.dirname(__FILE__), "config/database.yml") 
if File.exist?(database_file) 
# database_config = YAML::load(ERB.new(IO.read(database_file)).result) 
    database_config = YAML::load(ERB.new(IO.read(database_file)).result) 
    adapters = database_config.values.map {|c| c['adapter']}.compact.uniq 
    if adapters.any? 
    adapters.each do |adapter| 
     case adapter 
     when 'mysql2' 
     gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw, :x64_mingw] 
     gem "activerecord-jdbcmysql-adapter", :platforms => :jruby 
     when 'mysql' 
     gem "activerecord-jdbcmysql-adapter", :platforms => :jruby 
     when /postgresql/ 
     gem "pg", "~> 0.17.1", :platforms => [:mri, :mingw, :x64_mingw] 
     gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby 
     when /sqlite3/ 
     gem "sqlite3", :platforms => [:mri, :mingw, :x64_mingw] 
     gem "jdbc-sqlite3", ">= 3.8.10.1", :platforms => :jruby 
     gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby 
     when /sqlserver/ 
     gem "tiny_tds", "~> 0.6.2", :platforms => [:mri, :mingw, :x64_mingw] 
     gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw] 
     else 
     warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems") 
     end 
    end 
    else 
    warn("No adapter found in config/database.yml, please configure it first") 
    end 
else 
    warn("Please configure your config/database.yml first") 
end 

group :development do 
    gem "rdoc", ">= 2.4.2" 
    gem "yard" 
end 

group :test do 
    gem "minitest" 
    gem "rails-dom-testing" 
    gem "mocha" 
    gem "simplecov", "~> 0.9.1", :require => false 
    # For running UI tests 
    gem "capybara" 
    gem "selenium-webdriver" 
end 

local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") 
if File.exists?(local_gemfile) 
    eval_gemfile local_gemfile 
end 

# Load plugins' Gemfiles 
Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file| 
    eval_gemfile file 
end 

Was wird den Konflikt lösen? Wird mehr Information benötigt? Wo finde ich Informationen über Token in der Zukunft?

Antwort

3

Redmine lädt die Datei config/database.yml aus der Gemdatei, um den richtigen Edelstein für den Zugriff auf die konfigurierte Datenbank zu ermitteln. Nun scheint es, dass Ihre database.yml ungültig ist und nicht geladen werden kann. Somit kann Bundler die Installation der erforderlichen Edelsteine ​​nicht abschließen.

Um dieses Problem zu beheben, stellen Sie sicher, dass config/database.yml syntaktisch korrekt YAML ist. Überprüfen Sie bei oder um Zeile 10, Spalte 13 in Ihrer Datei database.yml auf Fehler.

+0

Diese Zeile von database.yml enthält das Kennwort für die mysql-Datenbank; was mit einem "@" beginnt; suche jetzt nach einer Art von Fluchtcharakter. –

+1

Das @ -Zeichen ist in der Tat in YAML reserviert. Wenn also ein Hash-Wert mit einem @ beginnt, müssen Sie ihn in Anführungszeichen setzen (entweder einfache Anführungszeichen oder doppelte Anführungszeichen), z. 'Passwort:" @ s3cuR3 "' –

+0

FYI: Ich hatte ein ähnliches Problem, und es war nur, weil ich fehlschlug (2 Leerzeichen) die Zeilen unter "Produktion:" in meiner Datenbank.yml-Datei. Das war alles, um die Datei ungültig zu machen. Wenn der Einzug behoben wurde, arbeitete danach. –

Verwandte Themen