2016-11-15 1 views
1

Ich bin nicht so in Ruby und ich habe folgendes Problem Redmine zu installieren versucht, auf meine Ubuntu 16.04 Server, auf dem (das in Ruby entwickelt) Ich MariaDB statt MySql installiert habenWarum habe ich diese Fehlermeldung bezüglich fehlender MySql, wenn ich versuche, Ruby GEM Bundler zu installieren? Ich bin mit MariaDB

ich diesen offiziellen Führer bin nach: http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step

also das vorherige Tutorial unter Berücksichtigung, gefolgt ich alle Installationspunkte excepet diese ein:

sudo apt-get install mysql-server mysql-client 

weil ich will MySQL-Server nicht installieren, weil ich gerade installiert haben, und ich bin mit nur MarriaDB auf diesem Server.

Meine Installation Problem auftreten, wenn ich diesen statment führe den gem bundler installieren:

sudo gem update 

Infact ich diese Fehlermeldungen bin zu erhalten, die (oder mich zu einer fehlenden MySql Installation verwandt zu sein scheint wenn die gesamte Anlage ausfällt oder nur einen Teil

[email protected]:~# sudo gem update 
Updating installed gems 
Updating mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
     ERROR: Failed to build gem native extension. 

    current directory: /var/lib/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2 
/usr/bin/ruby2.3 -r ./siteconf20161115-17323-1dd1r35.rb extconf.rb 
checking for rb_absint_size()... yes 
checking for rb_absint_singlebit_p()... yes 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
checking for rb_big_cmp()... yes 
checking for mysql_query() in -lmysqlclient... no 
----- 
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again. 
----- 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=/usr/bin/$(RUBY_BASE_NAME)2.3 
     --with-mysql-dir 
     --without-mysql-dir 
     --with-mysql-include 
     --without-mysql-include=${mysql-dir}/include 
     --with-mysql-lib 
     --without-mysql-lib=${mysql-dir}/lib 
     --with-mysql-config 
     --without-mysql-config 
     --with-mysql-dir 
     --without-mysql-dir 
     --with-mysql-include 
     --without-mysql-include=${mysql-dir}/include 
     --with-mysql-lib 
     --without-mysql-lib=${mysql-dir}/lib 
     --with-mysqlclientlib 
     --without-mysqlclientlib 

To see why this extension failed to compile, please check the mkmf.log which can be found here: 

    /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/mysql2-0.4.5/mkmf.log 

extconf failed, exit code 1 

Gem files will remain installed in /var/lib/gems/2.3.0/gems/mysql2-0.4.5 for inspection. 
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/mysql2-0.4.5/gem_make.out 
Gems updated: mysql2 

also, mein erster Zweifel ist: so denkt ... korrigiert mich wenn ich falsch Behauptung tue)?

Wie man sieht es auf etwas versagt, die verwandt ist MySql (ich glaube, die Installation von MySql Server und die bash MySql Client).

Das Problem ist, dass ich nicht MySql zu verwenden, aber ich habe MariaDB verwenden, und ich kann es nicht ändern.

die vorherige Fehlerausgabe lesen, dass weitere Informationen sagen sind in diese Datei: /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/mysql2-0.4.5/, diese sein Inhalt ist:

current directory: /var/lib/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2 
/usr/bin/ruby2.3 -r ./siteconf20161115-17488-ql00no.rb extconf.rb 
checking for rb_absint_size()... yes 
checking for rb_absint_singlebit_p()... yes 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
checking for rb_big_cmp()... yes 
checking for mysql_query() in -lmysqlclient... no 
----- 
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again. 
----- 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
     --with-opt-dir 
     --without-opt-dir 
     --with-opt-include 
     --without-opt-include=${opt-dir}/include 
     --with-opt-lib 
     --without-opt-lib=${opt-dir}/lib 
     --with-make-prog 
     --without-make-prog 
     --srcdir=. 
     --curdir 
     --ruby=/usr/bin/$(RUBY_BASE_NAME)2.3 
     --with-mysql-dir 

Von dem, was ich verstehe, habe das Lesen bei online gem_make.out Datei sollte den Fehler bei der Erstellung (oder so ähnlich) enthält. Es scheint mir, dass es nur sagen, dass es die mysql Client fehlt.

Wie kann ich vermeiden, MySql zu installieren und meine MariaDB-Installation zu verwenden?

+1

Mögliches Duplikat von [Fehler beim Installieren von mysql2: Fehler beim Erstellen der gem nativen Erweiterung] (http://stackoverflow.com/questions/3608287/error-installing-mysql2-failed-to-build-gem-native-extension) –

+0

@EddeAlmeida Ich glaube nicht, dass es ein Duplikat ist, weil mein Problem ist, dass ich nicht MySql und MySql Client, sondern MariaDB als Datenbank verwenden muss – AndreaNobili

+1

Es passiert, dass MariaDB binäre Tropfen ersetzt MySQL ist. Und in den meisten Linux-Distributionen hängt es von den gleichen Paketen ab, die ausgeführt/erstellt werden. Es läuft im selben Port. Insbesondere hängt es von 'libmysqlclient-dev' ab. Dann, wenn Sie 'libmysqlclient-dev' installieren und Ihren MariaDB-Server verwenden, wird alles in Ordnung sein. Ich mache das die ganze Zeit. –

Antwort

1

MariaDB ist eine binäre Drop-In-Umordnung für MySQL, wie Sie möglicherweise here sehen. Es läuft sogar auf dem gleichen Port und ein gewöhnlicher Benutzer, der keine erweiterten Funktionen verwendet, merkt nicht einmal, ob MySQL von MariaDB sudeenly ersetzt wird. Es gibt ein paar Inkompatibilitäten, aber es wird einige Anstrengungen erfordern, um sich einer von ihnen zu stellen.

In den meisten Linux-Distributionen, einschließlich derer, die MariaDB als Standard hinzugefügt haben, wie Slackware, sind die Build-Header immer noch auf "MySQL-Weise".

Dann müssen Sie nur Ihren MariaDB-Server installiert und ausgeführt werden. Dann installieren Sie libmysqlclient-dev und tun Sie bundle install. Alles wird gut. Ich habe das schon oft gemacht.

Ich weiß nicht, was ist Ihre Rails-Version, aber erwägen, auf Rails 5 zu aktualisieren, wenn Sie einige der Inkompatibilitäten begegnen. Es scheint, Rails fünf bietet Unterstützung für MariaDB, wie es here sagt. Aber ich habe diese Unterstützung nie benutzt und kann leider nichts dazu sagen.

Verwandte Themen