问题
I'm trying to get Rails working with Cygwin using heroku but I'm running into problem when I do
bundle install
I'm pretty sure postgres is installed (I installed everything with 'postgres' in its title from Cygwin's setup.exe but am running into problems with
gem install pg
, and I can't make sense of the error messages.
Apologies if this problem is trivial; it's my first time trying to learn RoR. Error log is below. Thanks in advance!
/usr/bin/ruby.exe 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 pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... yes
checking for PQconnectionUsedPassword()... no
checking for PQisthreadsafe()... yes
checking for PQprepare()... yes
checking for PQexecParams()... yes
checking for PQescapeString()... yes
checking for PQescapeStringConn()... yes
checking for PQgetCancel()... yes
checking for lo_create()... yes
checking for pg_encoding_to_char()... yes
checking for pg_char_to_encoding()... yes
checking for PQsetClientEncoding()... yes
checking for rb_encdb_alias()... no
checking for rb_enc_alias()... no
checking for struct pgNotify.extra in libpq-fe.h... yes
checking for unistd.h... yes
checking for ruby/st.h... no
checking for st.h... yes
creating extconf.h
creating Makefile
make
gcc -I. -I. -I/usr/lib/ruby/1.8/i386-cygwin -I. -DRUBY_EXTCONF_H=\"extconf.h\" -I/us /include -g -O2 -pipe -fno-strict-aliasing -c pg.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i386-cygwin -I. -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/include -g -O2 -pipe -fno-strict-aliasing -c pg_connection.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i386-cygwin -I. -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/include -g -O2 -pipe -fno-strict-aliasing -c pg_result.c
gcc -shared -s -o pg_ext.so pg.o pg_connection.o pg_result.o -L. -L/usr/lib -L. -L/usr/lib -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -lruby -lpq -lrt -ldl -lcrypt
pg_connection.o: In function 'pgconn_connection_needs_password':
/usr/lib/ruby/gems/1.8/gems/pg-0.13.1/ext/pg_connection.c:714: undefined reference to `_PQconnectionNeedsPassword'
pg_connection.o: In function 'pgconn_connection_used_password':
/usr/lib/ruby/gems/1.8/gems/pg-0.13.1/ext/pg_connection.c:727: undefined reference to `_PQconnectionUsedPassword'
pg_connection.o: In function 'pgconn_lotruncate':
/usr/lib/ruby/gems/1.8/gems/pg-0.13.1/ext/pg_connection.c:2991: undefined reference to `_lo_truncate'
collect2: ld returned 1 exit status
Makefile:152: recipe for target `pg_ext.so' failed
make: *** [pg_ext.so] Error 1
回答1:
Version 0.13 of the gem doesn't support versions of PostgreSQL older than 8.3. You'll either need to upgrade your Postgres or install an older gem (e.g., gem install pg -v '< 0.13'
).
The 'pg' gem follows PostgreSQL's versioning policy.
来源:https://stackoverflow.com/questions/9392939/pg-gem-fails-to-install