1

所以,我刚刚花了一天中最好的时间来尝试正确安装 Rails(和所需的 gem)。

在使用线路缓存和 nokogiri 几个小时后,我开始感到筋疲力尽,现在遇到了安装“pg”gem 的问题。

我将继续战斗,但这里有什么关于这个问题的建议吗?

(而且我知道我不应该在 1 个 SO 帖子中问两个问题,但无论如何我都会问。我过去安装了大量软件(包括从头开始编译 Linux 内核),而且 Rails 似乎很难安装Snow Leopard。与让 Linux 显示驱动程序在过去糟糕的日子里工作相提并论。在简化这个过程方面是否有任何进展?)

错误日志是:

Using linecache19 (0.5.12) 
Installing nokogiri (1.5.0) with native extensions 
Installing pg (0.12.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/user/.rvm/rubies/ruby-1.9.2-p318/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... yes
checking for PQconnectionUsedPassword()... yes
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 PQsetClientEncoding()... yes
checking for rb_encdb_alias()... yes
checking for rb_enc_alias()... yes
checking for struct pgNotify.extra in libpq-fe.h... yes
checking for unistd.h... yes
checking for ruby/st.h... yes
creating extconf.h
creating Makefile

make
/usr/bin/gcc-4.2 -I. -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1/x86_64-darwin11.3.0 -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1/ruby/backward -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1 -I. -DRUBY_EXTCONF_H=\"extconf.h\" -I/Users/user/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/include -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -o compat.o -c compat.c
/usr/bin/gcc-4.2 -I. -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1/x86_64-darwin11.3.0 -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1/ruby/backward -I/Users/user/.rvm/rubies/ruby-1.9.2-p318/include/ruby-1.9.1 -I. -DRUBY_EXTCONF_H=\"extconf.h\" -I/Users/user/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/include -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -o pg.o -c pg.c
pg.c: In function ‘pgconn_exec’:
pg.c:954: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:993: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_prepare’:
pg.c:1059: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_exec_prepared’:
pg.c:1150: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:1180: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_s_escape’:
pg.c:1324: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:1331: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_send_query’:
pg.c:1504: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:1543: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_send_prepare’:
pg.c:1608: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_send_query_prepared’:
pg.c:1697: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:1728: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_wait_for_notify’:
pg.c:2103: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_put_copy_data’:
pg.c:2173: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘pgconn_block’:
pg.c:2586: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c:2592: warning: format not a string literal and no format arguments
pg.c:2607: warning: format not a string literal and no format arguments
pg.c: In function ‘pgconn_locreate’:
pg.c:2870: warning: implicit conversion shortens 64-bit value into a 32-bit value
pg.c: In function ‘find_or_create_johab’:
pg.c:3940: warning: comparison between signed and unsigned
pg.c:3946: warning: comparison between signed and unsigned
pg.c: In function ‘pgconn_get_client_encoding_as_rb_encoding’:
pg.c:3974: warning: comparison between signed and unsigned
pg.c: In function ‘pgconn_get_rb_encoding_as_pg_encname’:
pg.c:4006: warning: comparison between signed and unsigned
pg.c: In function ‘pgconn_internal_encoding_set’:
pg.c:4065: warning: comparison between signed and unsigned
pg.c: In function ‘pgconn_external_encoding’:
pg.c:4121: warning: comparison between signed and unsigned
/usr/bin/gcc-4.2 -dynamic -bundle -o pg_ext.bundle compat.o pg.o -L. -L/Users/user/.rvm/rubies/ruby-1.9.2-p318/lib -L/Users/user/.rvm/usr/lib -L. -L/usr/local/lib -L/usr/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace  -lruby.1.9.1 -lpq  -lpthread -ldl -lobjc 
ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file for architecture x86_64
collect2: ld returned 1 exit status
make: *** [pg_ext.bundle] Error 1


Gem files will remain installed in /Users/user/.rvm/gems/ruby-1.9.2-p318/gems/pg-0.12.2 for inspection.
Results logged to /Users/user/.rvm/gems/ruby-1.9.2-p318/gems/pg-0.12.2/ext/gem_make.out
An error occured while installing pg (0.12.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.12.2'` succeeds before bundling.
4

2 回答 2

1

在简化此过程方面是否有任何进展?)

是的:Yehuda Katz 正在领导一个 Kickstarter 项目来提供帮助: http ://www.kickstarter.com/projects/1397300529/railsapp

看起来你可能有一个旧的 openssl。

尝试这个:

sudo port selfupdate

查看过期端口列表:

port outdated

清理过时的端口:

sudo port clean outdated
sudo port upgrade outdated

看看你有没有libssl:

find / | grep libssl.*dylib

尝试从 Mac 下载安装 postgresql:

http://www.postgresql.org/download/macosx/

然后像往常一样尝试安装 gem:

gem install pg

或者,如果您使用 sudo,请执行以下操作:

sudo gem install pg
于 2012-04-03T13:06:53.767 回答
0

通常这是一个 64 位/32 位的问题。你的 ruby​​ 版本和你的 Postgresql 安装不匹配。根据您的架构,您必须使用正确的 ARCH 标志。

请在stackoverflow上查看此答案。

一般来说,我使用“自制”和RVM几乎没有问题

高温高压

于 2012-04-03T13:03:24.233 回答