2012-07-29 14 views
15

विफल हो गया है, मैंने अभी ओएस एक्स शेर से ओएस एक्स माउंटेन शेर में अपग्रेड किया है। अधिकांश भाग के लिए मेरे रेल पर्यावरण व्यवहार में रहे।पीजी मणि '0.14.0'

केवल चरणों मैं चीजों को एक अच्छी स्थिति को वापस पाने के लिए करना पड़ा था: - स्थापित XCode 4.4 - स्थापित XCode 4.4 कमांड लाइन उपकरण - स्थापित जीसीसी-4.2

तो वह सब अच्छी तरह से चला गया।

यहां समस्या है, जब मैं बंडल इंस्टॉल चलाता हूं तो मेरे सभी रत्न ठीक से इंस्टॉल होते हैं, मुझे सबसे महत्वपूर्ण चीज़ों में से एक को छोड़कर - postgresql gem 'pg'।

और यह विशेष रूप से 0.12.2 से ऊपर के संस्करणों में विफल रहता है।

मैं रूबी 1.9.3p125 का उपयोग कर रहा हूं।

मैं सफलतापूर्वक 0.12.2 पीजी मणि और नीचे के संस्करणों को सफलतापूर्वक पकड़ सकता हूं, लेकिन वे मुझे सेगमेंटेशन दोष देते हैं (मैं रूबी के संस्करण के कारण अनुमान लगा रहा हूं)।

तो यह मुझे विश्वास दिलाता है कि यह पीजी मणि के लिए विशिष्ट है, और मेरे समग्र पर्यावरण को अन्य रत्नों को ठीक से स्थापित नहीं करते हैं।

मैंने पोस्टग्रेस्क्ल को पुनः स्थापित करने का भी प्रयास किया ताकि यह सुनिश्चित किया जा सके कि मेरे पोस्टग्रेज़ पर्यावरण ठीक है और उस मोर्चे पर अच्छा लगता है।

क्या कोई भी 'पीजी' मणि संस्करण 0.13.0 या इससे ऊपर (और अधिक पसंद 0.14.एक्स) स्थापित करने में सक्षम है?

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 इंस्टॉल को कैसे प्रबंधित करते हैं? Homebrew? यदि नहीं, तो आपको वास्तव में इस पर विचार करना चाहिए; मैंने बिना किसी परेशानी के 0.11 से 0.14 तक 'पीजी' को अपग्रेड किया * (और पहाड़ शेर भी है) * – deefour

+0

अच्छा सुझाव। मैं वन-क्लिक इंस्टॉलर का उपयोग कर रहा था। मैं होमब्री के माध्यम से कोशिश करूंगा। – caseyli

उत्तर

2

माणिक को पुनर्स्थापित करना माउंटेन शेर के उन्नयन

rvm reinstall 1.9.3 

नोट के बाद एक ऐसी ही मुद्दा मैं हो रही थी तय:

यहाँ मेरी स्टैक ट्रेस है भी निम्न के रूप में यह डिफ़ॉल्ट लगता है चलाने संस्करण रीसेट

rvm --default 1.9.3 

संदर्भ के लिए मैंने त्रुटि को पोस्ट किया था जो मैं नीचे देख रहा था

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' के साथ कुछ करना है जो माउंटेन शेर ओएस एक्स पर ठीक से चल रहा है या लोड नहीं हो रहा है। क्या कोई इस पुस्तकालय पर कुछ प्रकाश डाल सकता है और यदि यह संभावित रूप से इस मुद्दे का कारण है? – caseyli

+0

यह मेरे लिए महान धन्यवाद !! – gilesadamthomas

17

डीफोर की टिप्पणी मिली! यह पोस्टग्रेएसक्यूएल स्थापित करने का तरीका था।

मैं PostgreSQL एक-क्लिक इंस्टॉलर का उपयोग करता हूं जिसे मैं अनुमान लगा रहा हूं कि माउंटेन शेर के लिए libpq को ठीक से सेट अप नहीं करता है।

दूसरी ओर होमब्री ओएस के लिए इसे ठीक से बनाएगा।

homebrew

brew install postgresql 

के माध्यम से postgres स्थापित करने के बाद मैं अपने मणि कोई समस्या नहीं स्थापित करने के लिए कर रहा था।

सभी को धन्यवाद!

+1

ठीक है, लेकिन क्या होगा यदि आपके पास होमब्रे के माध्यम से पोस्टग्रेस्क्ल पहले से स्थापित है? मैं करता हूं और अपना डेटा खोना नहीं चाहता हूं। – Callmeed

+1

जो भी इंस्टॉलर के साथ postgresql स्थापित करने में कुछ भी गलत नहीं है - आपको बस एक वास्तविक pg_configure संदर्भित करने की आवश्यकता है। ऊपर मेरा जवाब देखें। – Matt

1

मुझे एक ही समस्या है लेकिन होमब्रे के साथ पोस्टग्रेस्क्ल को पुनर्स्थापित करने से इसे हल नहीं किया गया है।हालांकि, इस आदेश ने मेरे लिए यह किया:

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

क्या चाल मेरे लिए भी थी, धन्यवाद। (मैंने बस 'सुडो' से छुटकारा पा लिया क्योंकि मैं आरवीएम का उपयोग कर रहा था। –

13

समस्या pg_config का स्थान है। यदि आप एक-क्लिक इंस्टॉलर का उपयोग करते हैं, तो यह /Library/PostgreSQL/9.2/bin/pg_config में है, इसलिए यह आपके मणि को ठीक करेगा:

env ARCHFLAGS = "- arch x86_64" मणि पीजी इंस्टॉल करें - -with-pg-config =/लाइब्रेरी/PostgreSQL/9.2/bin/pg_config

+1

मैंने एक क्लिक इंस्टॉलर का उपयोग नहीं किया था, लेकिन मुझे एक ही समस्या थी, और यह टिप भी मेरी समस्या का समाधान करती है। – lucianosousa

+2

होमब्री '/ usr/bin/pg_config पर pg_config डालता है 'मैंने आज इस के साथ संघर्ष किया ताकि उम्मीद है कि यह भविष्य में सिरदर्द या दो बचा सकता है। –

+0

ब्रू का उपयोग कर मैकॉक्स, मुझे अभी भी यह मिलता है: libpq-fe.h की जांच ... *** extconf.rb विफल *** – Trip

4

मेरे पास एक ही समस्या थी; जैसा कि आपने पोस्ट किया है वही स्टैक ट्रेस।

एमआरआई 1.9.3-पी 286/ओएस एक्स 10.8.2/पोस्टग्रेस 9.0.4 होमब्री के साथ।

मैं बस करके इसे हल:

$ brew update 
$ brew upgrade postgresql 
$ bundle 

यह किसी और के लिए काम करता है आशा है।

2

मैक पुरानी प्रीबिल्ट PostgreSQL क्लाइंट स्थापना और pg_config फ़ाइल के साथ आता है जो इसके साथ आता है किसी भी नए PostgreSQL सर्वर & क्लाइंट इंस्टॉलेशन के साथ संघर्ष करता है।

pg_config के पूर्णतः योग्य फ़ाइल नाम के साथ रूबी मणि स्थापित करना pg_config और स्थापना सफल होने के डिफ़ॉल्ट ज्ञात स्थान को ओवरराइड करता है। EnterpriseDB द्वारा एक क्लिक के संस्थापक द्वारा pg_config की

वर्तमान स्थान:/Library/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 

आप काढ़ा का उपयोग नहीं किया, तो यहां और स्थापना रद्द करें डॉक्स के लिए एक लिंक है

http://postgresapp.com/documentation#toc_16

+0

यह बहुत अच्छा काम किया। मणि इंस्टॉल pg - --with-pg-config =/अनुप्रयोग/Postgres.app/सामग्री/MacOS/bin/pg_config इंस्टॉल करने के बाद इसे इस कमांड लाइन के साथ उपयोग करना पड़ा –

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 

मैट, रंजन और पीटर मेललेट की तरह सभी कहते हैं, आपको सही pg_config स्थान प्राप्त करना है, और माउंटेन शेर एक अलग स्थान के साथ आता है जो रूबीगैम्स के साथ अच्छी तरह से खेलना प्रतीत नहीं होता है, इसलिए यदि आपको लगता है पुराने संस्करण जैसे

/Library/PostgreSQL/bin/pg_config 

तो आप इसे इंस्टॉल करने से पहले बंडल कॉन्फ़िगरेशन में सेट कर सकते हैं।

मेरी स्थिति शेर से माउंटेन शेर में अपग्रेड कर रही थी।

0

Homebrew /usr/local/bin/pg_ctl में pg_ctl स्थापित है, तो मेरे लिए आदेश था:

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

, जो Kubuntu 13.04 प्रयोग कर रहे हैं और एक क्लिक के उपकरण के साथ स्थापित स्नातकोत्तर, स्नातकोत्तर config अन्य फ़ोल्डर में है, इसलिए आदेश:

gem install pg -- --with-pg-config=/opt/PostgreSQL/9.3/bin/pg_config 
संबंधित मुद्दे