Я не могу запустить упаковщик, постоянно получаю сообщение об ошибке - PullRequest
7 голосов
/ 03 февраля 2012

Я только что перенес свою среду разработки RoR в Ubuntu.Я вытащил проект, над которым я работаю, из github и пытаюсь установить все необходимые гемы.Однако всякий раз, когда я запускаю bundle или bundle install или bundle install exec, я получаю следующую ошибку:

    edu@edu:~/Workspace/SuitBrokers$ bundle install exec
Fetching source index for http://rubygems.org/
Installing rake (0.9.2.2) 
Installing multi_json (1.0.3) 
Installing activesupport (3.1.0) 
Installing bcrypt-ruby (3.0.1) with native extensions 
Installing builder (3.0.0) 
Installing i18n (0.6.0) 
Installing activemodel (3.1.0) 
Installing erubis (2.7.0) 
Installing rack (1.3.5) 
Installing rack-cache (1.0.3) 
Installing rack-mount (0.8.3) 
Installing rack-test (0.6.1) 
Installing hike (1.2.1) 
Installing tilt (1.3.3) 
Installing sprockets (2.0.3) 
Installing actionpack (3.1.0) 
Installing mime-types (1.17.2) 
Installing polyglot (0.3.3) 
Installing treetop (1.4.10) 
Installing mail (2.3.0) 
Installing actionmailer (3.1.0) 
Installing arel (2.2.1) 
Installing tzinfo (0.3.31) 
Installing activerecord (3.1.0) 
Installing activeresource (3.1.0) 
Installing ansi (1.4.1) 
Using bundler (1.0.21) 
Installing cocaine (0.2.0) 
Installing coffee-script-source (1.1.3) 
Installing execjs (1.2.9) 
Installing coffee-script (2.2.0) 
Installing rack-ssl (1.3.2) 
Installing json (1.6.1) with native extensions 
Installing rdoc (3.11) 
Installing thor (0.14.6) 
Installing railties (3.1.0) 
Installing coffee-rails (3.1.1) 
Installing jquery-rails (1.0.18) 
Installing mysql (2.8.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /home/edu/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
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
    --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=/home/edu/.rvm/rubies/ruby-1.9.2-p290/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/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1 for inspection.
Results logged to /home/edu/Workspace/SuitBrokers/exec/ruby/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out
An error occured while installing mysql (2.8.1), and Bundler cannot continue.
Make sure that `gem install mysql -v '2.8.1'` succeeds before bundling.

Кто-нибудь сталкивался с этой конкретной болью?Ваша помощь всегда ценится.

Ответы [ 2 ]

12 голосов
/ 03 февраля 2012

Вы должны указать Bancler, где найти материал mysql-dev на вашей коробке. Обычно работает что-то вроде следующего:

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

Конечно, вам нужно заменить путь выше на ваш фактический путь к mysql_config. Если у вас не установлен mysql_config, вам понадобится пакет mysql-dev, установленный на вашем сервере. Похоже, вы находитесь на общем сервере, так что, надеюсь, пакет разработки уже установлен. Если нет, вам нужно будет запросить его.

4 голосов
/ 17 мая 2014

Библиотека, которую вы пропустили, в Ubuntu 14.04 (Trusty): libmysqlclient-dev .Строка ниже сделала мне трюк:

sudo apt-get install libmysqlclient-dev
...