Hello, I’m struggling trying to debug my cookbooks
I have a node with a runlist:
“run_list”: [
“recipe[apt::default]”,
“recipe[nginx::passenger]”,
“recipe[mysql::server]”,
“recipe[php-fpm::default]”,
“recipe[monit::default]”,
“recipe[bodhysite::default]”,
“recipe[mail-system::vdomains]”
],
nginx::passenger starts with include_recipe “build-essential”.
The chef run fails saying this: http://pastebin.com/H7nFSqdy
Looks like mysql::client fails while building mysql gem because mkfs
from ruby-dev is missing. So I added
r1 = package "ruby1.8-dev"
r1.run_action(:install)
to mysql client, but now it still fails with the messages:
[Thu, 15 Jul 2010 09:01:45 +0000] INFO: Installing gem_package[mysql]
version 2.8.1
Building native extensions. This could take a while…
[Thu, 15 Jul 2010 09:01:46 +0000] ERROR: Running exception handlers
[Thu, 15 Jul 2010 09:01:46 +0000] ERROR: Exception handlers complete
[Thu, 15 Jul 2010 09:01:46 +0000] ERROR: Re-raising exception:
Gem::Installer::ExtensionBuildError - ERROR: Failed to build gem native
extension.
/usr/bin/ruby1.8 extconf.rb
checking for mysql_ssl_set()… no
checking for rb_str_set_len()… no
checking for rb_thread_start_timer()… no
checking for mysql.h… no
checking for mysql/mysql.h… no
*** extconf.rb failed ***
Necessary headers are there, the root of problem is what gcc isn’t
installed. But build-essential included as part of nginx::passenger
earlier than mysql. I even tried to add it into run_list as a separate
recipe right after apt::default, it didn’t helped.
A nice person on #chef told me there’s some magic in mysql cookbook, it
makes use of run_action method.
Can someone please clarify it a bit and point me in right direction?
Oh forgot to mention, all this was about mysql-0.23 and
build-essential-0.7 cookbooks.
Thanks,
Dmitry