我在兩臺不同的OSX 10.8.2機器上安裝了Ruby/Gem/Rails。一個工作正常,另一個似乎工作,直到我試圖安裝一個包含像pg這樣的本地代碼的gem。當我做RVM在OSX 10.8.2上安裝Ruby for i386而不是x86_64
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位二進制文件。有任何想法嗎?
是什麼〜.rvmrc看起來/像多數民衆贊成失敗的呢? – echristopherson
這兩臺機器都沒有.rvmrc文件,但我確實在故障機器上的一個點上創建了一個文件,以嘗試通過該文件。雖然它沒有改變結果,但是我手工創建的那個文件只有這一行:rvm_archflags =「 - arch x86_64」 – Gooberholtzer