MySQL и MySQL2 построены на хосте, но не на Capistrano или SSH - PullRequest
1 голос
/ 23 февраля 2011

Я пытаюсь развернуть приложение Rails, которое использует Bundler через Capistrano.

Запуск cap deploy:cold дает следующее:

** [out :: (my host)] Installing mysql2 (0.2.6)  
** [out :: (my host)] with native extensions  
*** [err :: (my host)] /usr/lib64/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)  
*** [err :: (my host)]  
*** [err :: (my host)] /usr/bin/ruby extconf.rb  
*** [err :: (my host)] checking for rb_thread_blocking_region()... no  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] checking for main() in -lm... yes  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] checking for main() in -lz... yes  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] checking for main() in -lsocket... no  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] checking for main() in -lnsl... yes  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] checking for main() in -lmygcc... no  
*** [err :: (my host)] checking for mysql_query() in -lmysqlclient... no  
*** [err :: (my host)] *** extconf.rb failed ***  
*** [err :: (my host)] Could not create Makefile due to some reason, probably lack of  
*** [err :: (my host)] necessary libraries and/or headers.  Check the mkmf.log file for more  
*** [err :: (my host)] details.  You may need configuration options. 

Просто установите пакеты mysql-dev или что-то правильное?Не совсем потому, что оба гема (mysql и mysql2) собираются на машине с Bundler без каких-либо проблем, а другие гемы устанавливаются без проблем.

Чем отличается Capistrano от других?

1 Ответ

1 голос
/ 23 февраля 2011

Возможно, что в нем не загружена среда оболочки так же, как при входе напрямую, поэтому он не может найти библиотеки mysqlclient.

Обычно он захочет найти mysql_config, который может предоставить ему эту информацию. Если вы можете понять, как передать --with-mysql-config=/path/to/mysql_config в конструктор, я подозреваю, что это может помочь. Я делал это раньше так: gem install mysql2 -- --with-mysql-config=/path/to/mysql_config

Я не уверен, как заставить упаковщик сделать это, но я надеюсь, что эта информация поможет

...