2013-01-05 23 views
15

Próbowałem zainstalować Gitlab na moim serwerze Ubuntu 12.04 przez długi czas i wszystko idzie dobrze, dopóki nie uruchomię bundle install.Klejnot MySQL2 nie zainstaluje się

Mówi, że nie może zainstalować MySQL2, ale nie podaje przyczyny ani działania naprawczego.

home/gitlab/gitlab$ sudo -u gitlab -H bundle install --deployment --without development test postgres 
Fetching gem metadata from http://rubygems.org/....... 
Fetching gem metadata from http://rubygems.org/.. 
Using rake (10.0.1) 
Using i18n (0.6.1) 
Using multi_json (1.3.7) 
Using activesupport (3.2.9) 
Using builder (3.0.4) 
Using activemodel (3.2.9) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.2) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.2.1) 
Using actionpack (3.2.9) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.12) 
Using mail (2.4.4) 
Using actionmailer (3.2.9) 
Using arel (3.0.2) 
Using tzinfo (0.3.35) 
Using activerecord (3.2.9) 
Using activeresource (3.2.9) 
Using bundler (1.2.3) 
Using rack-ssl (1.3.2) 
Using json (1.7.5) 
Using rdoc (3.12) 
Using thor (0.16.0) 
Using railties (3.2.9) 
Using rails (3.2.9) 
Using acts-as-taggable-on (2.3.3) 
Using backports (2.6.5) 
Using bcrypt-ruby (3.0.1) 
Using blankslate (3.1.2) 
Using sass (3.2.3) 
Using bootstrap-sass (2.2.1.1) 
Using carrierwave (0.7.1) 
Using charlock_holmes (0.6.9) 
Using chosen-rails (0.9.8) 
Using coffee-script-source (1.4.0) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using coffee-rails (3.2.2) 
Using colored (1.2) 
Using daemons (1.1.9) 
Using orm_adapter (0.4.0) 
Using warden (1.2.1) 
Using devise (2.1.2) 
Using diff-lcs (1.1.3) 
Using draper (0.18.0) 
Using escape_utils (0.2.4) 
Using eventmachine (1.0.0) 
Using multipart-post (1.1.5) 
Using faraday (0.8.4) 
Using ffaker (1.15.0) 
Using sass-rails (3.2.5) 
Using font-awesome-sass-rails (2.0.0.0) 
Using foreman (0.60.2) 
Using gemoji (1.2.1) 
Using git (1.2.5) 
Using posix-spawn (0.3.6) 
Using yajl-ruby (1.1.0) 
Using pygments.rb (0.3.2) from https://github.com/gitlabhq/pygments.rb.git (at master) 
Using github-linguist (2.3.4) 
Using github-markup (0.7.4) 
Using gitlab_meta (4.0) 
Using gratr19 (0.4.4.1) 
Using grit (2.5.0) from https://github.com/gitlabhq/grit.git (at 7f35cb9) 
Using hashery (1.5.0) 
Using gitolite (1.1.0) 
Using grack (1.0.0) from https://github.com/gitlabhq/grack.git (at ba46f3b) 
Using hashie (1.2.0) 
Using multi_xml (0.5.1) 
Using rack-accept (0.4.5) 
Using rack-mount (0.8.3) 
Using virtus (0.5.2) 
Using grape (0.2.2) 
Using grit_ext (0.6.1) from https://github.com/gitlabhq/grit_ext.git (at 8e6afc2) 
Using haml (3.1.7) 
Using haml-rails (0.3.5) 
Using httparty (0.9.0) 
Using httpauth (0.2.0) 
Using jquery-atwho-rails (0.1.7) 
Using jquery-rails (2.1.3) 
Using jquery-ui-rails (2.0.2) 
Using jwt (0.1.5) 
Using kaminari (0.14.1) 
Using kgio (2.7.4) 
Using libv8 (3.3.10.4) 
Using modernizr (2.6.2) 
Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /usr/local/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lmygcc... no 
checking for mysql_query() in -lmysqlclient... no 
*** 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/local/bin/ruby 
    --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 
    --with-mlib 
    --without-mlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-zlib 
    --without-zlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-socketlib 
    --without-socketlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-nsllib 
    --without-nsllib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-mygcclib 
    --without-mygcclib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 


Gem files will remain installed in /home/gitlab/gitlab/vendor/bundle/ruby/1.9.1/gems/mysql2-0.3.11 for inspection. 
Results logged to /home/gitlab/gitlab/vendor/bundle/ruby/1.9.1/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 
An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue. 
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling. 
[email protected]:/home/gitlab/gitlab$ 
+2

Co mówi plik 'mkmf.log'? – rudolph9

+0

Czy zainstalowałeś mysql-server? – apchester

+0

Może to pomóc: http://stackoverflow.com/questions/4613116/difficulties-installing-mysql-gem-on-ubuntu – Zabba

Odpowiedz

51

To nie powiedzieć rodzajowe możliwy problem:

nie może utworzyć Makefile powodu jakiegoś powodu, prawdopodobnie brak niezbędnych bibliotek i/lub nagłówków. Sprawdź plik mkmf.log, aby uzyskać więcej informacji na temat . Możesz potrzebować opcji konfiguracyjnych.

To jest Twoja wskazówka.

Upewnij się, że zainstalowałeś repozytorium klienta MySQL wraz z powiązanym pakietem "devel". Języki takie jak Ruby, Python, Perl itp. Wymagają zainstalowania bibliotek i nagłówków, aby mogły tworzyć natywne moduły zapewniające interfejs od języka do sterowników.

Również trzeba mysql_config, który jest instalowany przez:

sudo apt-get install libmysqlclient-dev 

byłem w stanie odtworzyć problemu z moim Ubuntu VM i naprawić go po zainstalowaniu libmysqlclient-dev.

Umieszcza mysql_config w /usr/bin/mysql_config i zarówno gem install mysql, jak i gem install mysql2 udało się pomyślnie zainstalować.

+1

A co jeśli masz zainstalowany mysql na zupełnie innym serwerze, czy nadal musisz zainstalować wszystkie te pakiety na serwerze, który uruchamia rvm i railsy? – JohnMerlino

+0

Istnieją dwie części do MySQL, PostgreSQL lub innych aplikacji klient/serwer; Oprogramowanie klienckie i oprogramowanie serwera. Jeśli jesteś na innym komputerze i chcesz napisać kod do rozmowy z serwerem, to tak, musisz zainstalować kod klienta. W jaki sposób Twój kod będzie komunikował się z serwerem, jeśli nie będzie miał dostępu do sterowników klienta dla serwera? –

+1

Miałem ten sam problem na moim MBP, ale twoja odpowiedź pomogła mi. Po uruchomieniu 'brew install mysql' udało mi się pomyślnie uruchomić' gem install mysql2'. – shovavnik

11

Dziękuję, on pracował, miał po prostu dodać kilka dodatkowych rzeczy

sudo apt-get install libmysqld-dev libmysqlclient-dev mysql-client 
+0

Powiedziałeś, że to rozwiązanie działa, ale nie dałeś mu czeku? Czy mógłbyś przyjąć jego odpowiedź? – DutGRIFF

3

Użyłem tego rozwiązania tego problemu w rails4: (Ubuntu 12.04)

1) Install MySQL from symptic manager just type "mysql-server-5.5" 
    2) use following command and install 
     sudo apt-get install mysql-client libmysqlclient-dev 
0

Jeżeli jesteś stosując x64 8+, proszę spojrzeć na odpowiedź udzieloną w ciele to pytanie:

Installing MySQL2 Gem on Windows

EDIT

Aby downvoters szczęśliwy, jestem kopiowanie zawartości połączonego pytanie:

  1. Clean up: z powodu jesteś tutaj jest to, że jesteś prawdopodobnie próbowałem , aby zainstalować ten klejnot, a to się nie powiodło, więc musisz wyczyścić to: : odinstalować klej mysql2

  2. Downloa d Ruby 2.0 64 bit dla Windows:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

  1. uruchomić instalator. Zwróć uwagę na katalog, w którym instalujesz i upewnij się, że jest w PATH użytkownika. przejdź do

    Control Panel > System and Security > System - Advanced System Settings > Environment Variables 
    

i upewnij się, że ścieżka do katalogu bin katalogu rubin instalacji jest w zmiennej środowiskowej PATH dla lokalnego użytkownika (jest to również OK, jeśli to w zmiennej środowiskowej PATH System)

  1. Pobierz Ruby 2 64 bit Dev Kit:

http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

  1. Uruchom instalator i zanotuj lokalizację katalogu instalacyjnego. Instrukcje mówią, że po zakończeniu instalacji należy uruchomić plik devkitvars.bat, aby ustawić zmienne środowiskowe. To NIE DZIAŁA dla Windows 8.1. Należy powtórzyć instrukcje, aby ustawić lokalną ścieżkę opisaną w punkcie 2 powyżej, aby ustawić zmienną środowiskową ścieżki dla użytkownika lokalnego, aby dodać katalog bin zestawu ruby ​​dev, oraz katalog bin zestawu mingw zestawu ruby ​​dev. Na przykład, jeżeli zestaw dev został zainstalowany do c: \ ruby2devkit i zainstalowaniu ruby2 do katalogu C: \ Ruby200-64, wówczas edytować swoje oświadczenie ścieżka wygląda następująco:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin 
    
  2. Następny ty trzeba zainstalować złącze mysql. NIE pobieraj i nie uruchamiaj samodzielnego instalatora. Zamiast tego pobierz plik zip i rozpakuj go. Uwaga katalog rozpakowywania go (dla celów niniejszego postu, załóżmy, że rozpakowałeś go do C: \ mysql Złącze

http://dev.mysql.com/downloads/file.php?id=450612

  1. Plik libmysql.lib zawarty w 64-bitowym złączu MySQL nie jest zgodny z kompilatorem mingw64-gcc, należy wygenerować plik libmysql.lib kompatybilny z mingw64.

  2. pobrać narzędzia potrzebne

    https://structure-svm-map.googlecode.com/files/svm-map-win.zip

  3. Rozpakuj ten plik do katalogu lokalnego, załóżmy, że rozpakowane go do C: \ SVM-map

  4. Edit środowiska PATH ścieżka, jak opisano wcześniej, teraz wygląda następująco:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib 
    
  5. G enerate nowe biblioteki MySQL:

    cd c:\mysql-connector\lib 
    
    gendef.exe libmysql.dll 
    
    dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib 
    
    copy libmysql.dll C:\Ruby200-x64\bin 
    
    copy libmysql.lib C:\Ruby200-x64\bin 
    
  6. zainstalować gem następująco (zauważ użycie ukośniki zamiast ukośniki, zakończy się niepowodzeniem, jeśli używać kresek ułamkowych odwróconych):

    gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-connector/"' 
    

Nadzieja to pomaga, i mam nadzieję, że ktoś zwróci uwagę na kilku użytkowników Windows 7/8.1, którzy chcą tworzyć Ruby on Rails.

Powiązane problemy