2013-03-08 9 views
7

मैं रुबी के लिए पीजी (पोस्टरेएसक्यूएल) मणि स्थापित करने की कोशिश कर रहा हूं। मैं इस त्रुटि मिल रही है:पीजी मणि इंस्टॉल विफल कहता है कि संस्करण बहुत पुराना है?

postgres/9.2-pgdg/bin/64/pg_config 
Using config values from /location/to/install/postgres/9.2-pgdg/bin/64/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()... no 
Your PostgreSQL is too old. Either install an older version of this gem or upgrade your  database. 
*** 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. 

PostgreSQL संस्करण: postgres (PostgreSQL) 9.2.3

ओएस: Solaris 10

मैं भी कोशिश की है:

gem install pg -- --with-pgsql-lib=/location/of/install/postgres/9.2-pgdg/lib/64/ --with-pg-config=/location/of/install/postgres/9.2-pgdg/bin/64/pg_config 

मेरे पास कोई राशि विचार यह त्रुटि क्यों हो रही है और मुझे Google पर कोई उपयोगी जानकारी नहीं मिल रही है।

किसी भी मदद की बहुत सराहना की जाती है।

+0

मैं एक से अधिक संस्करण है, लेकिन मैं (mkmf.log में भी सही संस्करण मैं एक ही त्रुटि pQconnectionUsedPassword संदर्भित देखने के लिए इशारा कर रहा हूँ)। – arrowill12

+2

आपको यह सुनिश्चित करने के लिए 'पथ' सेट करने की आवश्यकता हो सकती है कि सही 'pg_config' निष्पादन योग्य' पथ 'में पहले है, और सही' libpq' पाया जाता है, यह सुनिश्चित करने के लिए कोई भी 'LD_LIBRARY_PATH' या सोलारिस समकक्ष पर्यावरण वर्र्स सेट करें। –

+0

'mkmf.log' उस अनुभाग में क्या कहता है जहां यह' PQconnectionUsedPassword' की उपस्थिति की जांच कर रहा है? –

उत्तर

2

कई चीजें डेटाबेस क्लाइंट, मणि और इसका उपयोग करने में गलत हो सकती हैं।

मैं आम तौर पर स्रोत से PostgreSQL स्थापित करता हूं, एक distro से नहीं। उस समय मुझे पता है कि मेरे पास सभी स्रोत हैं और पता है कि चीजें कहां स्थापित हुईं। क्लाइंट ड्राइवरों से बात करने वाले मणि को स्थापित करते समय यह महत्वपूर्ण है।

मैं स्रोत से रुबी स्थापित करने पर भी भरोसा करता हूं, या तो इसे सीधे इंस्टॉल करके या आरबीएनवी या आरवीएम का उपयोग करके यदि यह मेरे विकास बॉक्स में से एक है। फिर मैं gem install pg का उपयोग करके सीधे पीजी मणि भी स्थापित करता हूं; भाषाओं को स्थापित करते समय मुझे distros का उपयोग करके बहुत सारे बुरे अनुभव हुए हैं इसलिए मैं उस पर पुराना स्कूल जाता हूं।

मैं एक छोटे से स्क्रिप्ट मैं अपने मैक ओएस सिस्टम पर उपयोग करने के लिए लिखा था, कि मैं अपने CentOS लिनक्स बक्से के लिए उपयोगी पाया है:

 
#!/bin/sh -x 

PATH=/Library/PostgreSQL/9.2/bin:$PATH 
gem install pg 

मैं कहाँ PostgreSQL स्थापित कर ली पर निर्भर करता है पथ अलावा समायोजित, और यह ऐसा लगता है कि चाल चल रही है। मैंने लंबे, अधिक "व्यापक" विकल्प भी उपयोग किए हैं, लेकिन ऐसा लगता है कि यह भी काम करता है।

समस्या यह है कि इंस्टॉलर को pg_config निष्पादन योग्य से इंस्टॉलेशन जानकारी खोदने की आवश्यकता होती है और यह पता लगाने में सक्षम होता है कि pg_config चाल करता है।

+0

हर बार काम करता है। – pzin

0

मैं तब तक पागल हो रहा था जब तक मुझे एहसास हुआ कि postgresql-devel और postgresql-libs8.1.23 से थे !!!

$ yum list installed postgres* 
Loaded plugins: fastestmirror, security 
Installed Packages 
postgresql-devel.i386       8.1.23-10.el5_10      installed 
postgresql-devel.x86_64       8.1.23-10.el5_10      installed 
postgresql-libs.i386       8.1.23-10.el5_10      installed 
postgresql-libs.x86_64       8.1.23-10.el5_10      installed 

--------------- 

$ sudo yum install postgresql94-libs 
$ sudo yum install postgresql94-devel 

$ gem install pg 
Successfully installed pg-0.18.1 
0

स्थापित कर रहा है और से PostgreSQL जोड़ने homebrew मेरे लिए यह तय:

brew install postgresql 
brew unlink postgresql91 
brew link --overwrite postgresql 
संबंधित मुद्दे