MySQL2 gem不会安装

时间:2013-01-05 22:47:29

标签: ruby-on-rails ruby mysql2 gitlab

我一直在尝试在我的Ubuntu 12.04服务器上安装Gitlab很长一段时间,一切顺利,直到我运行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 个答案:

答案 0 :(得分:52)

它确实告诉你一个通用的可能问题:

  

由于某种原因无法创建Makefile,可能缺少   必要的库和/或标题。检查mkmf.log文件以获取更多信息   细节。您可能需要配置选项。

这是你的线索。

确保已安装MySQL客户端repo以及相关的“devel”包。 Ruby,Python,Perl等语言需要安装库和头文件,以便编译提供从语言到驱动程序的接口的本机模块。

此外,您还需要mysql_config,它由以下人员安装:

sudo apt-get install libmysqlclient-dev

我能够使用我的Ubuntu VM复制您的问题,并在安装libmysqlclient-dev后修复它。

将mysql_config放在/usr/bin/mysql_config中,gem install mysqlgem install mysql2都能成功安装。

答案 1 :(得分:12)

谢谢,它有用,只需添加一些额外的东西

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

答案 2 :(得分: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

答案 3 :(得分:0)

如果您使用的是Windows 8+ x64,请查看此问题正文中提供的答案:

  

Installing MySQL2 Gem on Windows

修改

为了让downvoters高兴,我正在复制链接问题的内容:

  1. 清理:你在这里的原因是你可能在尝试 安装这个gem,它已经失败,所以你有一些清理 do:gem uninstall mysql2

  2. 下载适用于Windows的Ruby 2.0 64位:

  3.   

    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
      
    2. 并确保ruby安装目录的bin目录的路径在LOCAL用户的PATH环境变量中(如果它在SYSTEM Path环境变量中也可以)

      1. 下载Ruby 2 64位开发套件:
      2.   

        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:\ ruby​​2devkit,并且您将ruby2安装到C:\ Ruby200-x64目录,那么您编辑路径语句如下所示:

          C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
          
        2. 接下来你需要安装mysql-connector。请勿下载并运行自安装程序。而是,下载zip文件并解压缩。请注意您将其解压缩到的目录(出于本文的目的,我们假设您将其解压缩到c:\ mysql-connector:

        3.   

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

          1. MySQL Connector 64位中包含的libmysql.lib与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(注意使用正斜杠而不是反斜杠,如果使用反斜杠则会失败):

            gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-connector/"'
            
          7. 希望这会有所帮助,希望有人会关注那些想要进行Ruby on Rails开发的少数​​Windows 7 / 8.1用户。