Note that there are some explanatory texts on larger screens.

plurals
  1. POgem install pg can not bind to libpq
    primarykey
    data
    text
    <p>After upgrading to Ruby 1.9.3 (from 1.9.2 using system RVM) on Ubuntu 10.04.3, I removed all of my gems, and attempted to reinstall pg (ala <code>bundle install pg</code>).</p> <p>It then threw an error and informed me that I should look at mkmf.log, both of which are included in this gist: <a href="https://gist.github.com/d05a81701d968895c730" rel="noreferrer">https://gist.github.com/d05a81701d968895c730</a></p> <p>libpq-dev, libpq5, and postgresql-client are all installed and working correctly. Pointing gem at pg_config, and the include and bin directories directly does not appear to change anything.</p> <p>I've seen several questions about similar error messages around stackoverflow, and the rest of the web, but they all appear to be simple missing dependency issues (most of them are solved by installing libpq-dev), so I'm at a bit of a loss.</p> <p>Various other properties that might be useful / relevant:</p> <ul> <li>ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]</li> <li>rvm 1.10.1 (system)</li> <li>gem 1.8.15</li> <li>psql (PostgreSQL) 8.4.9</li> </ul> <p>Thanks in advance.</p> <p><strong>gem_make.out:</strong></p> <pre><code>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. </code></pre> <p><strong>ldd.stdout:</strong></p> <pre><code>$ldd /usr/lib/libpq.so linux-gate.so.1 =&gt; (0xf57fe000) libssl.so.0.9.8 =&gt; /lib/i686/cmov/libssl.so.0.9.8 (0xb77f4000) libcrypto.so.0.9.8 =&gt; /lib/i686/cmov/libcrypto.so.0.9.8 (0xb76a2000) libkrb5.so.3 =&gt; /usr/lib/libkrb5.so.3 (0xb75f1000) libcom_err.so.2 =&gt; /lib/libcom_err.so.2 (0xb75ec000) libgssapi_krb5.so.2 =&gt; /usr/lib/libgssapi_krb5.so.2 (0xb75bd000) libcrypt.so.1 =&gt; /lib/tls/i686/cmov/libcrypt.so.1 (0xb758b000) libldap_r-2.4.so.2 =&gt; /usr/lib/libldap_r-2.4.so.2 (0xb7544000) libpthread.so.0 =&gt; /lib/tls/i686/cmov/libpthread.so.0 (0xb752b000) libc.so.6 =&gt; /lib/tls/i686/cmov/libc.so.6 (0xb73d0000) libdl.so.2 =&gt; /lib/tls/i686/cmov/libdl.so.2 (0xb73cc000) libz.so.1 =&gt; /lib/libz.so.1 (0xb73b7000) libk5crypto.so.3 =&gt; /usr/lib/libk5crypto.so.3 (0xb7393000) libkrb5support.so.0 =&gt; /usr/lib/libkrb5support.so.0 (0xb738b000) libkeyutils.so.1 =&gt; /lib/libkeyutils.so.1 (0xb7386000) libresolv.so.2 =&gt; /lib/tls/i686/cmov/libresolv.so.2 (0xb7372000) /lib/ld-linux.so.2 (0xb786a000) liblber-2.4.so.2 =&gt; /usr/lib/liblber-2.4.so.2 (0xb7365000) libsasl2.so.2 =&gt; /usr/lib/libsasl2.so.2 (0xb734d000) libgnutls.so.26 =&gt; /usr/lib/libgnutls.so.26 (0xb72b2000) libtasn1.so.3 =&gt; /usr/lib/libtasn1.so.3 (0xb72a0000) libgcrypt.so.11 =&gt; /lib/libgcrypt.so.11 (0xb722d000) libgpg-error.so.0 =&gt; /lib/libgpg-error.so.0 (0xb7228000) </code></pre> <p><strong>pgconfig.stdout:</strong></p> <pre><code>$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 </code></pre> <p><strong>mkmf.log:</strong></p> <pre><code>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 &lt;libpq-fe.h&gt; /* 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 &lt;libpq/libpq-fs.h&gt; /* 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 `X509_STORE_set_flags@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `CRYPTO_set_locking_callback@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ENGINE_init@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ENGINE_free@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ENGINE_load_private_key@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ENGINE_finish@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_check_private_key@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_free@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_new@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_pending@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `TLSv1_method@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_STORE_load_locations@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_set_verify@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ERR_pop_to_mark@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_new@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_get_error@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ERR_get_error@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ENGINE_by_id@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_write@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_load_error_strings@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_load_verify_locations@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `BIO_ctrl@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `PEM_read_bio_PrivateKey@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `CRYPTO_set_id_callback@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_free@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `BIO_free@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_get_cert_store@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_get_subject_name@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_shutdown@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_set_client_cert_cb@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `PEM_read_bio_X509@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ERR_set_mark@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `OPENSSL_config@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_NAME_get_text_by_NID@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_read@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_CTX_ctrl@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `ERR_reason_error_string@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_get_peer_certificate@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `X509_NAME_oneline@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_set_ex_data@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_set_fd@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_library_init@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `CRYPTO_num_locks@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_get_ex_data@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `SSL_connect@OPENSSL_0.9.8' /usr/lib/libpq.so: undefined reference to `BIO_new_file@OPENSSL_0.9.8' collect2: ld returned 1 exit status checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include &lt;libpq-fe.h&gt; 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 &lt;libpq-fe.h&gt; 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 &lt;libpq-fe.h&gt; 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 &lt;libpq-fe.h&gt; 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 &lt;libpq-fe.h&gt; 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 &lt;libpq-fe.h&gt; 4: 5: /*top*/ 6: int main() {return 0;} 7: int t() { PQconnectdb(); return 0; } /* end */ -------------------- </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload