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.
[email protected]:/home/gitlab/gitlab$

Ответы

Ответ 1

Это говорит о общей возможной проблеме:

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

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

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

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

sudo apt-get install libmysqlclient-dev

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

Он помещает mysql_config в /usr/bin/mysql_config, и оба gem install mysql и gem install mysql2 смогли успешно установить.

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

ИЗМЕНИТЬ

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

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

  • Загрузите Ruby 2.0 64 бит для Windows:

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

  1. Запустите программу установки. Обратите внимание на каталог, в который он устанавливается, и убедитесь, что он находится в User PATH. перейдите к

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

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

  1. Загрузите пакет Dev 64-бит Ruby 2:

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

  1. Запустите программу установки и обратите внимание на расположение каталога установки. В инструкциях указано, что как только вы закончите установку, вам нужно запустить файл devkitvars.bat, чтобы установить переменные среды. Это НЕ работает для Windows 8.1. Вам нужно повторить инструкции по настройке локального пути, описанного в № 2 выше, чтобы установить переменную среды пути для локального пользователя, чтобы добавить каталог bin bin для набора ruby, а также каталог bin bin bin. Например, если набор dev был установлен в 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, несовместим с компилятором mingw64-gcc. Вам нужно сгенерировать файл libmysql.lib, совместимый с mingw64.

  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.