2012-09-21 13 views
8

मैं स्थानीय रूप से PostgreSQL का उपयोग कर रेल पर रूबी में विकसित करने की कोशिश कर रहा हूं, इसलिए मैं पीजी मणि स्थापित करने की कोशिश कर रहा हूं। उबंटू 12.04 पर।पीजी मणि स्थापित नहीं कर सकता है, PQconnectdb() in -lpq में जांच रहा है ... नहीं

gem install pg -v '0.12.2' 

कौन सा निम्न त्रुटि फेंकता है: टर्मिनल में, मैं में टाइप

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

     /home/troyshu/.rvm/rubies/ruby-1.9.3-p194/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... 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. 

Provided configuration options: 
    --with-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/home/troyshu/.rvm/rubies/ruby-1.9.3-p194/bin/ruby 
    --with-pg 
    --without-pg 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/lib 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pqlib 
    --without-pqlib 
    --with-libpqlib 
    --without-libpqlib 
    --with-ms/libpqlib 
    --without-ms/libpqlib 


Gem files will remain installed in /home/troyshu/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1 for inspection. 
Results logged to /home/troyshu/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/ext/gem_make.out 

दिलचस्प है, आदेश काम करता है के लिए एक sudo जोड़ने:

$ sudo gem install pg -v '0.12.2' 
Building native extensions. This could take a while... 
Successfully installed pg-0.12.2 
1 gem installed 

Btw मैं चलाने के लिए किया था " काम करने के लिए उपरोक्त आदेश प्राप्त करने के लिए sudo apt-get ruby1.9.1-dev "स्थापित करें। लेकिन मैं अभी भी कोई विकास नहीं कर सकता क्योंकि "बंडल इंस्टॉल" काम नहीं करेगा (और मुझे 'gem install pg -v' 0.12.2 'चलाने के लिए कहता रहता है)

मुझे लगता है कि "मणि इंस्टॉल पीजी" है

checking for PQconnectdb() in -lpq... no 
checking for PQconnectdb() in -llibpq... no 
checking for PQconnectdb() in -lms/libpq... no 

पर, लेकिन उबंटू और आरओआर के लिए पूर्ण नोब के रूप में, मुझे नहीं पता कि क्यों। हो सकता है कि मेरे खोज कौशल भी बदबू आ जाए, क्योंकि मैं अपने विशेष मामले का समाधान नहीं ढूंढ पाया। उम्मीद है कि एक फिक्स है?

धन्यवाद!

+0

क्या आप वाकई 'हैं libpq-dev' स्थापित किया गया है? मैंने एक उत्तर पोस्ट किया है जो बताता है कि ऐसा कैसे करें। –

+0

पोस्टग्रेएसक्यूएल और 'libpq-dev' के कौन से संस्करण आपने स्थापित किए हैं? –

+0

तो मैंने अभी एक उबंटू 12.04 वाग्रेंट बॉक्स स्थापित किया है और निम्न आदेशों को गैर-रूट उपयोगकर्ता के रूप में चलाया है: '$ sudo apt-get update',' $ sudo apt-get postresresll libpq-dev build-essentials git-core curl ' , '$ curl -L https://get.rvm.io | बैश-स्थिर - रूबी ', और '$ gem pg -v' 0.12.2' को बिना किसी त्रुटि के स्थापित करें (साथ ही, मैंने' pg' मणि का नवीनतम संस्करण, v0.14.1, त्रुटि के बिना स्थापित किया है; आप चाहें यह देखने के लिए कि क्या आप नवीनतम संस्करण का उपयोग कर सकते हैं, न कि यह आपके मुद्दे को जरूरी रूप से ठीक करेगा)। –

उत्तर

-2

जब आप sudo gem install pg करते हैं तो मणि स्थापित होता है जहां रूबी और पोस्टग्रेस्क्ल स्थापित होते हैं; जब आप gem install pg करते हैं तो मणि आपके घर निर्देशिका में स्थापित होता है (अपने संदेश देखें!)। इसलिए, आपको अपने सभी रत्नों के लिए sudo bundle install blah-blah-blah करने की आवश्यकता है, जिस तरह से आप स्थानीय रूप से काम कर रहे हैं। अन्य विकल्प हैं, ज़ाहिर है, जैसे आरवीएम, जिसका मैं उपयोग नहीं करता हूं।

+0

धन्यवाद, हर रोज कुछ नया सीखना। हालांकि मैं थोड़ा उलझन में हूँ। मेरी होम निर्देशिका में रूबी स्थापित है: 'कौन सा रूबी' रिटर्न '/ home/troyshu/.rvm/rubies/ruby-1.9.3-p194/bin/ruby'। तो चलाने के लिए सही आदेश 'बंडल इंस्टॉल' है (जो मेरी मूल पोस्ट में त्रुटि के अनुसार काम नहीं करता है)? – user1686439

+0

आह, आप आरवीएम का उपयोग करते हैं। यह बहुत बढ़िया बात है! कई इसे उपयोगी पाते हैं। आरवीएम वेबसाइट पर एक पूर्ण दस्तावेज़ पृष्ठ है जो बताता है कि आप क्या करने की कोशिश कर रहे हैं। आप कुछ चाहते हैं जैसे 'आरवीएम exec gem install blah', या ऐसा कुछ। – thisfeller

+0

ठीक है। मैंने 'rvm 1.9.3 की कोशिश की है gem pg -v '0.12.2' इंस्टॉल करें, लेकिन यह मेरी मूल पोस्ट में सटीक त्रुटि को फेंकता है। मैंने सोचा कि यह एक पीजी संस्करण त्रुटि हो सकती है, इसलिए मैंने कोशिश की कि 'rvm 1.9.3 मणि इंस्टॉल करें pg', जिसने एक ही त्रुटि दी है। – user1686439

1

आपके द्वारा पोस्ट किए गए त्रुटि संदेश के आधार पर, ऐसा लगता है कि आपके पास libpq-dev इंस्टॉल नहीं है। apt-get install libpq-dev (sudo के साथ यदि आप root नहीं हैं) और फिर मणि इंस्टॉल करने का प्रयास करें।

चूंकि आप आरवीएम का उपयोग कर रहे हैं, यदि आपको कभी भी मणि स्थापित करने के लिए sudo का उपयोग करना है, तो आप इसे गलत कर रहे हैं। sudo सिस्टम के रूबी का उपयोग करने के लिए मणि इंस्टॉल करता है, न कि रूबी जिसे आपने आरवीएम का उपयोग करके इंस्टॉल किया है।

+0

कूल। मुझे लगता है कि मैंने पहले आदेश कम किया है। मुझे लगता है कि 'libpq-dev पहले से ही नवीनतम संस्करण है।' मुझे अन्य आउटपुट का गुच्छा भी मिलता है, यह सुनिश्चित नहीं है कि इसमें से कोई भी प्रासंगिक है: 'निम्नलिखित पैकेज स्वचालित रूप से स्थापित किए गए थे और अब इसकी आवश्यकता नहीं है: libsdl-ttf2.0- 0 libboost-filesystem1.46.1 अजगर-numpy अजगर-pygame जल प्रलय-जीटीके libsdl-mixer1.2 libboost-system1.46.1 libboost-python1.46.1 अजगर-libtorrent libportmidi0 जल प्रलय-आम libmikmod2 libboost-thread1.46.1 libtorrent-rasterbar6 libsmpeg0 'अभी भी' gem install pg -v '0.12.2'' चलाने के बाद एक ही त्रुटि हो रही है :( – user1686439

+0

हाँ, इंस्टॉल किया गया। कोई फर्क नहीं पड़ता। – JosephK

0

यदि सूडो काम करता है और एक मानक उपयोगकर्ता नहीं करता है, तो यह सुझाव देता है कि यह पुस्तकालयों और हेडर फ़ाइलों के कुछ सेट को कहीं और ढूंढ रहा है जो अन्य उपयोगकर्ता के रूप में नहीं पाए जाते हैं या वास्तव में एक अनुमति समस्या है जो ठीक से नहीं हो रही है कहीं और संभाला। यदि आप चाहें तो समस्या की जड़ को ढूंढने के लिए आप शायद स्ट्रेस का उपयोग कर सकते हैं।

हालांकि, मुझे लगता है कि सैनर समाधान आपको यह पहचानना है कि आपको इस तरह की कई चीजों को स्थापित करने के लिए रूट पहुंच की आवश्यकता है, और इसलिए यदि यह मेरा सिस्टम था तो मैं इसके साथ रहूंगा।

4

संबंधित: gem install pg can not bind to libpq। कृपया अपने एमकेएमएफ लॉग की जांच करें और libssl के साथ त्रुटियों को देखें। मेरे साथ भी ठीक यही समस्या थी। मैंने libpq-dev और डबल चेक pg_config स्थापित किया था। ऐसा लगता है कि मणि को libpq-dev हेडर फाइलें मिलीं लेकिन libpq से लिंक करने में विफल रही थीं। यह पता चला कि एसएसएल के लिए आरवीएम स्थापित किए गए संकुल libssl-dev के माध्यम से स्थापित संकुलों में हस्तक्षेप कर रहे थे।

+0

क्या आप इसे थोड़ा सा भर सकते हैं? आपने समस्या को कैसे हल किया - छुटकारा पाएं "हस्तक्षेप" पैकेज? – JosephK

1

मैं एक अजीब समाधान नहीं मिला लेकिन यह सब अन्य सुझावों के बजाय मेरे लिए काम किया:

mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm 
0

मैं ने वही समस्या थी, एक असफल bundle install साथ:

Installing pg 0.17.1 with native extensions 

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

...

An error occurred while installing pg (0.17.1), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.17.1'` succeeds before bundling. 

लेकिन gem install pg -v '0.17.1' के साथ।

मैं सफलतापूर्वक मणि इंस्टॉल कर सकता हूं, लेकिन बंडल अभी भी असफल हो जाएगा। pg के लिए

/usr/local/bin/pg_config

  • चेक वर्तमान बंडल निर्माण विकल्प:

    1. चेक स्नातकोत्तर कॉन्फ़िगरेशन:

      $ which pg_config रिटर्न

      मैं स्नातकोत्तर बंडल विन्यास को बदलने के द्वारा यह तय

    $ bundle config build.pg

    1. which pg_config द्वारा दिए गए मान नहीं हैं, तो

    $ bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

    अब bundle install करने की कोशिश !!!!

  • 0

    मेरे लिए, काम करने वाली एकमात्र चीज आरवीएम की वेबसाइट पर दिए गए निर्देशों के माध्यम से rvm स्थापित कर रही थी: https://rvm.io। मैं इसे उबंटू 14.04 पर काम करने में सक्षम था।

    इस तिथि पर पूर्ण आदेश सूची:
    sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

    सुनिश्चित करें कि आप एक डाउनलोड निर्देशिका में हैं तो चलाएँ:
    \curl -sSL https://get.rvm.io | bash -s stable

    संबंधित मुद्दे