pg gem无法安装

时间:2012-02-22 10:22:16

标签: ruby-on-rails cygwin pg

我正在尝试让Rails使用heroku与Cygwin合作,但是当我这样做时我遇到了问题

bundle install

我很确定安装了postgres(我在Cygwin的setup.exe的标题中安装了'postgres',但遇到了问题

gem install pg

,我无法理解错误信息。

如果这个问题很简单,请道歉;这是我第一次尝试学习RoR。错误日志如下。提前谢谢!

/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 个答案:

答案 0 :(得分:2)

gem的0.13版本不支持早于8.3的PostgreSQL版本。您需要升级Postgres或安装较旧的gem(例如gem install pg -v '< 0.13')。

'pg'宝石跟随PostgreSQL's versioning policy