2012-07-29 68 views
15

我剛從OS X Lion升級到OS X Mountain Lion。 我的鐵軌環境大部分時間保持完好。pg在山獅上的'0.14.0'失敗

的僅幾步之遙,我不得不做的東西找回來,以良好的狀態是: - 安裝的XCode 4.4 - 安裝的XCode 4.4命令行工具 - 安裝GCC-4.2

所以一切都很順利。

這是問題所在,當我運行軟件包安裝(除了我需要的最重要軟件之一 - postgresql gem'pg')之外,幾乎所有的gem都可以正常安裝。

對於0.12.2以上的版本,它具體失敗。

我使用紅寶石1.9.3p125。我可以成功地抓住0.12.2 pg gem和下面的版本,但它們給了我分段錯誤(我猜是因爲我使用的ruby版本)。

因此,這使我相信它是特定於pg gem,而不是我的整體環境,因爲其他寶石安裝正常。

我也嘗試重新安裝Postgresql,以確保我的postgres環境是好的,在這方面看起來不錯。

有人能夠安裝'pg'寶石版本0.13.0或更高版本(更可取的是0.14.X)?

這裏是我的堆棧跟蹤:

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

    /Users/caseyli/.rvm/rubies/ruby-1.9.3-p125/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 pg_config_manual.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 PQescapeLiteral()... yes 
checking for PQescapeIdentifier()... 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 PQlibVersion()... yes 
checking for PQping()... yes 
checking for rb_encdb_alias()... yes 
checking for rb_enc_alias()... no 
checking for PGRES_COPY_BOTH in libpq-fe.h... no 
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 
compiling pg.c 
pg.c: In function ‘pg_s_library_version’: 
pg.c:273: warning: implicit declaration of function ‘PQlibVersion’ 
pg.c: In function ‘Init_pg_ext’: 
pg.c:384: error: ‘PQPING_OK’ undeclared (first use in this function) 
pg.c:384: error: (Each undeclared identifier is reported only once 
pg.c:384: error: for each function it appears in.) 
pg.c:386: error: ‘PQPING_REJECT’ undeclared (first use in this function) 
pg.c:388: error: ‘PQPING_NO_RESPONSE’ undeclared (first use in this function) 
pg.c:390: error: ‘PQPING_NO_ATTEMPT’ undeclared (first use in this function) 
make: *** [pg.o] Error 1 


Gem files will remain installed in /Users/caseyli/.rvm/gems/ruby-1.9.3-  [email protected]/gems/pg-0.14.0 for inspection. 
+0

如何管理PostgreSQL安裝?家釀?如果不是,你真的應該考慮它;我剛剛將'pg'從0.11升級到0.14而沒有麻煩*(並且我也有山獅)* – deefour 2012-07-29 17:37:47

+0

好的建議。我使用的是一鍵式安裝程序。我會嘗試通過自制軟件。 – caseyli 2012-07-30 03:19:38

回答

2

重新安裝紅寶石固定我有一個類似的問題在升級到山獅

rvm reinstall 1.9.3 

注後:也運行下面的,因爲它似乎默認版本重置

rvm --default 1.9.3 

For refer因爲我發佈了我在下面看到的錯誤

gem install pg 
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 --with pg=/usr/local/Cellar/postgresql/9.1.4/bin 
checking for pg_config... yes 
Using config values from /usr/local/bin/pg_config 
checking for libpq-fe.h... no 
Can't find the 'libpq-fe.h header 
*** extconf.rb failed *** 
+0

謝謝彌迦。我很感激幫助,但似乎沒有用,但我想我正在縮小這個問題。我有一種感覺,它與'libpq'在Mountain Lion OS X上無法正常運行或加載有關。任何人都可以在這個庫中找到一些啓示,如果這可能是導致此問題的原因? – caseyli 2012-07-30 03:18:36

+0

這對我很有幫助非常感謝! – gilesadamthomas 2013-03-07 21:47:49

17

Deefour的評論得到了它!這是我安裝PostgreSQL的方式。

我使用的PostgreSQL一鍵安裝程序,我猜並沒有爲山獅適當地設置libpq。

另一方面,Homebrew會爲操作系統正確構建它。

通過自制

brew install postgresql 

安裝的Postgres後,我能夠安裝我的寶石沒有問題。

謝謝大家!

+1

好吧,但如果你已經通過自制軟件安裝了postgresql呢?我願意並且不想丟失我的數據。 – Callmeed 2012-08-09 21:41:38

+1

使用任何安裝程序安裝postgresql都沒有問題 - 只需引用實際的pg_configure即可。看到我上面的答案。 – Matt 2012-10-18 05:40:15

1

我有同樣的問題,但用自制軟件重新安裝postgresql並沒有解決它。然而,這個命令爲我做了:

sudo env ARCHFLAGS="-arch x86_64" gem install pg 
+0

對我來說也有竅門,謝謝。 (我剛剛擺脫了'sudo',因爲我使用的是RVM。 – 2012-12-06 13:41:34

13

問題是pg_config的位置。如果你使用的是一鍵式安裝程序,它在/Library/PostgreSQL/9.2/bin/pg_config中,所以這會構建你的gem就好了:

env ARCHFLAGS =「 - arch x86_64」gem install pg - - -with-pg-config =/Library/PostgreSQL/9.2/bin/pg_config

+1

我沒有使用過一次點擊安裝程序,但是我遇到了同樣的問題,並且這個提示也解決了我的問題。 – lucianosousa 2013-02-01 19:58:22

+2

homebrew把pg_config放在'/ usr/bin/pg_config '。今天我很努力,所以希望這可以在未來節省一兩個頭痛。 – 2013-03-05 20:50:47

+0

使用Brew的MacOSX,我仍然得到這個:檢查libpq-fe.h ... *** extconf.rb失敗*** – Trip 2013-04-01 13:39:10

4

我有完全相同的問題;與您發佈的相同的堆棧跟蹤。

MRI 1.9.3-p286/OS X 10.8.2/Postgres 9.0.4自制軟件。

我解決它通過簡單地做:

$ brew update 
$ brew upgrade postgresql 
$ bundle 

希望工程爲別人。

2

Mac都預裝了其附帶任何新的PostgreSQL服務器&客戶端安裝衝突過時的預建的PostgreSQL客戶端安裝和pg_config文件。

使用完全限定的文件名pg_config安裝ruby gem會覆蓋pg_config的默認已知位置,並且安裝會成功。通過點擊安裝程序由EnterpriseDB公司pg_config的

您現在的位置:/資源庫/ PostgreSQL的/ bin中/ pg_config

此命令終於爲我工作。

CrashMX2$ gem install pg -- --with-pg-config=/Library/PostgreSQL/bin/pg_config

1

我能得到它從Heroku的安裝Postgres.app和刪除我現有的PostgreSQL安裝工作。從Postgres.app

http://postgresapp.com/

brew remove postgresql 

bundle install 

如果你沒有使用BREW,這裏有更多的卸載文件的鏈接

http://postgresapp.com/documentation#toc_16

+0

這工作非常感謝。必須在安裝gem install後使用此命令行pg - --with-pg-config =/Applications/Postgres.app/Contents/MacOS/bin/pg_config – 2013-08-06 11:06:47

1

我剛:你可以在這裏下載該應用程序通過這張機票啓動並運行:

How can I pass a parameter for gem installation when I run bundle install?

bundle config build.pg --with-pg-config=/path/to/pg_config 
bundle install 

就像Matt,Ranjan和Peter Mellett都說的,你必須得到正確的pg_config位置,而Mountain Lion帶有一個不同於rubygems的不同位置,所以如果你發現你的舊版本如

/Library/PostgreSQL/bin/pg_config 

然後你可以在安裝之前在bundle config中設置它。

我的情況是從獅子升級到山獅。

0

家釀在/usr/local/bin/pg_ctl安裝pg_ctl,所以對我的命令是:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_ctl 
0

回回的,正在使用的Kubuntu 13.04誰與點擊工具安裝PG,PG配置在其他文件夾中,這樣的命令:

gem install pg -- --with-pg-config=/opt/PostgreSQL/9.3/bin/pg_config