RVM在OSX 10.8.2上安装Ruby for i386而不是x86_64

时间:2012-10-15 21:16:09

标签: ruby rvm x86-64 i386

我在两台不同的OSX 10.8.2机器上安装了Ruby / Gem / Rails。一个工作正常,另一个似乎工作,直到我尝试安装包含本机代码如pg的gem。当我做的时候

gem install pg -v 0.12.2 

它失败了“无法找到PostgeSQL客户端库(libpq)。

如果我看一下mkmf.log,我看到:

have_library: checking for PQconnectdb() in -lpq... -------------------- no "gcc-4.2 -o conftest -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/i386-darwin12.2.0 -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/backward -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/include -I/Users/brian/.rvm/usr/include -fno-common -pipe conftest.c -L. -L/Users/brian/.rvm/rubies/ruby-1.9.3-p286/lib -L. -L/Users/brian/.rvm/usr/lib -L/usr/local/lib -L/usr/lib -lruby.1.9.1 -lpq -lpthread -ldl -lobjc " ld: warning: ignoring file /usr/local/lib/libpq.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /usr/local/lib/libpq.dylib Undefined symbols for architecture i386: "_PQconnectdb", referenced from: _t in ccLXteQk.o

我相信这是因为被忽略的库是一个64位库(我想要),但我的ruby安装是32位(由于某种原因)。作为证据,在有效的机器上我看到了

~/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/x86_64-darwin12.2.0/ruby/config.h

在失败的那个

~/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/i386-darwin12.2.0/ruby/config.h

很抱歉很长的解释。我已经尝试了很多东西来尝试设置

的架构
rvm install 1.9.3

正在生成这些目录。我的努力都没有引起“坏”机器产生一个包含目录以保持所需的64位二进制文​​件。我并没有故意在这些构建中设置架构,所以我在这一点上感到困惑的是,“坏”机器的环境导致ruby安装认为它应该构建32位二进制文​​件。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以将你的拱旗传递给我相信的。与gem install pg -- --arch-flags='i386'

一样

或pg接受arch标志的任何内容。也应该是一个标志,你可以通过它来定义拱门类型(导致它找到)

您也可以说gem install pg -- --with-pg-include=/path/to/pg/include --with-pg-dir=/path/to/pg_config