2012-08-08 135 views
3

自從我從Lion升級到Mountain Lion後,我一直試圖讓我的Rails開發環境備份。問題是特別安裝pg-0.14.0(postgresql)gem。Mountain Lion安裝後無法安裝postgresql gem

我試過這個post的指示,但沒有運氣。我試圖用Homebrew卸載Postgres,然後重新安裝它。沒有任何工作。如果我嘗試安裝這個寶石我收到此錯誤:

Building native extensions. This could take a while... 
ERROR: Error installing pg: ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
checking for pg_config... yes 
Using config values from /usr/local/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... no 
checking for PQconnectdb() in -llibpq... no 
checking for PQconnectdb() in -lms/libpq... no 
Can't find the PostgreSQL client library (libpq) 

*** extconf.rb failed *** 

Could not create Makefile due to some reason, probably 
lack of necessary libraries and/or headers. Check the 
mkmf.log file for more details. 
You may need configuration options. 

我在哪裏可以找到mkmf.log?任何人都可以給我一個關於如何再次安裝pg gem的建議嗎?

更新 我能夠用找到我的mkmf.log文件:

find/-name mkmf.log 2>/dev/null

有類似下面的幾個失敗xcrun電話:

have_library:在檢查的PQconnectdb() -llibpq ... --------------------否

"xcrun cc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/Cellar/postgresql/9.1.4/include -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -arch i386 -arch x86_64 -L/usr/local/Cellar/postgresql/9.1.4/lib -lruby -llibpq -lpthread -ldl -lobjc " ld: library not found for -llibpq clang: error: linker command failed with exit code 1 (use -v to see invocation)

爲什麼在運行xcrun時出現錯誤?有沒有人看過這個?

謝謝!

回答

2

我終於解決了這個問題。我用RVM卸載紅寶石並重新安裝紅寶石版本1.9.3。這使我可以毫無問題地運行「捆綁安裝」。我檢查了加載的所有寶石(寶石列表)。不過,我的rails應用程序在這一點上找不到postgres套接字文件。同樣的問題詳細here.而不是找到postgresql。conf文件,更改它的權限並對其進行編輯我剛剛卸載了我當前版本的Postgres並從PostGres下載了最新的One-Click安裝程序。當我再次運行安裝程序時,它檢測到其他PostGres安裝並對其進行了更新。這爲我更新了配置,一切都很好。

我希望這可以幫助一些其他貧困軌開發升級到山獅:)

2

錯誤說,它在那裏:

checking for PQconnectdb() in -lpq... no 
checking for PQconnectdb() in -llibpq... no 
checking for PQconnectdb() in -lms/libpq... no 
Can't find the PostgreSQL client library (libpq) 

它無法找到libpq的,或者它的測試,嘗試編譯一個測試程序,並鏈接到它的失敗。由於它發現/usr/local/bin/pg_config它應該知道Pg庫和頭文件的位置,所以這個問題可能是測試編譯時的錯誤。

要了解更多信息,您需要檢查mkmf.log。運行

find . -name mkmf.log 

從運行gem install命令的目錄中,可能會找到它。更新您的文章的內容。

+0

感謝您的回覆。運行gem install pg -v'0.14.0'可以毫無誤差地安裝gem。但是,運行軟件包安裝會導致我發佈的錯誤。當我嘗試在同一個目錄中找到mkmf.log文件時,我已經運行了上述兩個命令..找不到它。 – Nick 2012-08-08 04:54:42

+0

@Nick恐怕你不在我的Ruby + Mac OS X知識範圍之內。做一些挖掘以查看bundle命令是否正在某處的臨時編譯目錄中運行。如果您願意等待,請運行find/-name mkmf.log 2>/dev/null來搜索整個系統,從而抑制權限錯誤。 – 2012-08-08 05:01:04

+0

我會那樣做的。謝謝。 – Nick 2012-08-08 05:03:18

0

我已經掙扎了幾個小時,也找不到任何在我的設置中工作的東西。

我結束了使用postgres.app。這是Heroku人員發佈的Postgres的打包版本。他們說這是「在Mac上運行PostgreSQL最簡單的方法」。根據我的經驗,這是真的!

只要把它放到你的應用程序文件夾,你就完成了! (我剛剛重新啓動以釋放端口5432)。

備註:他們也發佈了一個名爲Induction的應用程序來管理和查詢您的數據庫,但目前它在Mountain Lion中無法使用。

+0

我會試試看。感謝您的建議 – Nick 2012-08-08 22:20:13

+0

這不適合我。事實上,我運行它時似乎沒有做任何事情。也許是因爲我已經安裝了Postgresql? – Nick 2012-08-09 15:36:20

+0

你有沒有在菜單欄中的小象?如果是這樣,請點擊它。你看到了什麼? – Pierre 2012-08-09 16:43:01