Gem install pg не может связываться с libpq
После обновления до версии Ruby 1.9.3 (с версии 1.9.2 с использованием системы RVM) на Ubuntu 10.04.3 я удалил все мои драгоценные камни и попытался переустановить pg (ala bundle install pg
).
Затем он сделал ошибку и сообщил мне, что я должен посмотреть на mkmf.log, оба из которых включены в этот текст: https://gist.github.com/d05a81701d968895c730
libpq-dev, libpq5 и postgresql-клиент установлены и работают правильно.
Нажатие gem на pg_config, а также каталоги include и bin напрямую не меняют ничего.
Я видел несколько вопросов о похожих сообщениях об ошибках вокруг stackoverflow и остальной части Интернета, но все они кажутся простыми недостающими проблемами зависимостей (большинство из них решаются путем установки libpq-dev), поэтому я с небольшими потерями.
Различные другие свойства, которые могут быть полезными/релевантными:
- ruby 1.9.3p0 (2011-10-30 версия 33570) [i686-linux]
- rvm 1.10.1 (система)
- gem 1.8.15
- psql (PostgreSQL) 8.4.9
Спасибо заранее.
gem_make.out:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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.
ldd.stdout:
$ldd /usr/lib/libpq.so
linux-gate.so.1 => (0xf57fe000)
libssl.so.0.9.8 => /lib/i686/cmov/libssl.so.0.9.8 (0xb77f4000)
libcrypto.so.0.9.8 => /lib/i686/cmov/libcrypto.so.0.9.8 (0xb76a2000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb75f1000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb75ec000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb75bd000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb758b000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0xb7544000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb752b000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb73d0000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb73cc000)
libz.so.1 => /lib/libz.so.1 (0xb73b7000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7393000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb738b000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb7386000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7372000)
/lib/ld-linux.so.2 (0xb786a000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0xb7365000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb734d000)
libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb72b2000)
libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb72a0000)
libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xb722d000)
libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb7228000)
pgconfig.stdout:
$pg_config --ldflags --libs
-Wl,-Bsymbolic-functions -Wl,--as-needed -Wl,--as-needed
-lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -lreadline -lcrypt -ldl -lm
mkmf.log:
find_executable: checking for pg_config... -------------------- yes
--------------------
find_header: checking for libpq-fe.h... -------------------- yes
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lpthread -lrt -ldl -lcrypt -lm -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */
"gcc -E -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
/* end */
--------------------
find_header: checking for libpq/libpq-fs.h... -------------------- yes
"gcc -E -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq/libpq-fs.h>
/* end */
--------------------
have_library: checking for PQconnectdb() in -lpq... -------------------- no
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lpq -lpthread -lrt -ldl -lcrypt -lm -lc"
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return 0; }
/* end */
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lpq -lpthread -lrt -ldl -lcrypt -lm -lc"
conftest.c: In function 't':
conftest.c:7: error: too few arguments to function 'PQconnectdb'
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { PQconnectdb(); return 0; }
/* end */
--------------------
have_library: checking for PQconnectdb() in -llibpq... -------------------- no
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -llibpq -lpthread -lrt -ldl -lcrypt -lm -lc"
/usr/bin/ld: cannot find -llibpq
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return 0; }
/* end */
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -llibpq -lpthread -lrt -ldl -lcrypt -lm -lc"
conftest.c: In function 't':
conftest.c:7: error: too few arguments to function 'PQconnectdb'
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { PQconnectdb(); return 0; }
/* end */
--------------------
have_library: checking for PQconnectdb() in -lms/libpq... -------------------- no
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lms/libpq -lpthread -lrt -ldl -lcrypt -lm -lc"
/usr/bin/ld: cannot find -lms/libpq
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return 0; }
/* end */
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lms/libpq -lpthread -lrt -ldl -lcrypt -lm -lc"
conftest.c: In function 't':
conftest.c:7: error: too few arguments to function 'PQconnectdb'
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { PQconnectdb(); return 0; }
/* end */
--------------------
Ответы
Ответ 1
У меня такая же проблема в моем случае была lib внутри .rvm/usr/lib, которая была взята в эту компиляцию вместо lib из системы. Я не уверен, почему это происходит и почему это не работает (в моем случае на Ubuntu 10.04 x86_64), но для его решения просто:
mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm
какое-то время или навсегда;)
Если кто-то расследует, почему это произойдет, я буду признателен.
С наилучшими пожеланиями.
Ответ 2
Посмотрите на строку mkmf.log
вокруг линии 39:
"gcc -o conftest -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/i686-linux -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1/ruby/backward -I/usr/local/rvm/rubies/ruby-1.9.3-p0/include/ruby-1.9.1 -I. -I/usr/local/rvm/usr/include -D_FILE_OFFSET_BITS=64 -I/usr/include/postgresql -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/usr/lib -Wl,-R/usr/local/rvm/usr/lib -L. -rdynamic -Wl,-export-dynamic -L/usr/lib -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p0/lib -lruby -lpq -lpthread -lrt -ldl -lcrypt -lm -lc"
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
/usr/lib/libpq.so: undefined reference to `[email protected]_0.9.8'
...
Пахнет как недостающий OpenSSL. Я также не вижу в списке библиотеки -lssl
, но недостающие символы показывают, что он должен быть там.
Итак, попробуйте установить библиотеки OpenSSL (версия 0.9.8 на вид вещей). Затем посмотрите, есть ли pg_config --libs
-lssl
или аналогичный, и повторите попытку. Если все это работает, вы можете отправить отчет об ошибке пользователям Ubuntu, чтобы они могли исправить зависимости libpq-dev.
Извините, у меня нет настройки Ubuntu в любом месте, доступном на данный момент, поэтому здесь есть некоторые догадки.
Ответ 3
Не обманывайтесь установкой SSL lib - посмотрите на свою сборку Ruby и посмотрите там журнал сборки ssl. Я уже был укушен этим. Другие библиотеки, которые иногда не загружаются, - это GZip. Возможно, это не проблема, но посмотрите.
UPDATE:
Вам нужны библиотеки -dev.
В эти дни я использую rbenv или один из других инструментов сборки ruby и слежу за сообщениями, которые они выплевывают.