MySQL2 gem не будет установлен

Я пытался установить Gitlab на свой сервер Ubuntu 12.04 в течение длительного времени, и все идет хорошо, пока я не запускаю bundle install,

Он говорит, что не может установить MySQL2, но не дает никаких причин или корректирующих действий.

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.
root@Server:/home/gitlab/gitlab$

4 ответа

Это действительно говорит вам общую возможную проблему:

Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотек и / или заголовков. Проверьте файл mkmf.log для более подробной информации. Вам могут потребоваться параметры конфигурации.

Это ваша подсказка.

Убедитесь, что вы установили клиентское хранилище MySQL вместе со связанным пакетом "devel". Такие языки, как Ruby, Python, Perl и т. Д., Нуждаются в установленных библиотеках и заголовках, чтобы они могли компилировать собственные модули, обеспечивающие интерфейс от языка к драйверам.

Также вам понадобится mysql_config, который устанавливается:

sudo apt-get install libmysqlclient-dev

Я смог продублировать вашу проблему с моей виртуальной машиной Ubuntu и исправить ее после установки libmysqlclient-dev.

Это помещает mysql_config в /usr/bin/mysql_configи оба gem install mysql а также gem install mysql2 удалось успешно установить.

Спасибо, сработало, пришлось просто добавить несколько лишних вещей

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

Я использовал это решение для этой проблемы в 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

Если вы используете Windows 8+ x64, пожалуйста, посмотрите ответ, приведенный в теле этого вопроса:

Установка MySQL2 Gem в Windows

РЕДАКТИРОВАТЬ

Чтобы осчастливить downvoters, я копирую содержание связанного вопроса:

  1. Очистка: причина, по которой вы здесь, заключается в том, что вы, вероятно, пытались установить этот гем, но он не удался, поэтому вам нужно выполнить некоторую очистку: gem uninstall mysql2

  2. Загрузите Ruby 2.0 64 bit для Windows:

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

  1. Запустите установщик. Обратите внимание на каталог, в который он устанавливается, и убедитесь, что он находится в ПУТИ пользователя. идти к

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

и убедитесь, что путь к каталогу bin каталога установки ruby ​​находится в переменной среды PATH для локального пользователя (это также нормально, если он находится в переменной среды SYSTEM Path)

  1. Загрузите 64-битный Dev Dev Kit:

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

  1. Запустите установщик и запомните расположение каталога установки. В инструкциях говорится, что после завершения установки вам нужно запустить файл devkitvars.bat, чтобы установить переменные среды. Это НЕ работает для Windows 8.1. Вам нужно повторить инструкции, чтобы установить локальный путь, описанный в #2 выше, чтобы установить переменную окружения пути для локального пользователя, чтобы добавить каталог ruby ​​dev kit bin и каталог ruby ​​dev kit mingw bin. Например, если комплект разработчика был установлен в c:\ruby2devkit, а вы установили ruby2 в каталог C:\Ruby200-x64, то вы измените свой путь, чтобы он выглядел так:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
    
  2. Далее нужно установить mysql-разъем. НЕ загружайте и не запускайте самоинсталлятор. Вместо этого скачайте zip-файл и распакуйте его. Обратите внимание на каталог, в который вы его распаковали (для целей этого поста предположим, что вы распаковали его в c: \ mysql-connector:

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

  1. Файл libmysql.lib, включенный в 64-разрядную версию MySQL Connector, не совместим с компилятором mingw64-gcc. Вам необходимо создать совместимый с mingw64 файл libmysql.lib.

  2. Загрузите необходимые инструменты

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

  3. Разархивируйте этот файл в локальный каталог, давайте предположим, что вы разархивировали его в c:\svm-map

  4. Отредактируйте путь среды PATH, как описано ранее, чтобы теперь выглядеть следующим образом:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
    
  5. Создайте новые библиотеки 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. Установите драгоценный камень следующим образом (обратите внимание на использование прямой косой черты вместо обратной косой черты, она не будет выполнена, если вы используете обратную косую черту):

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

Надеюсь, это поможет, и, надеюсь, кто-то обратит внимание на тех немногих пользователей Windows 7/8.1, которые хотят заняться разработкой Ruby on Rails.

Другие вопросы по тегам