रेल और libpq- देव बुरा निर्भरताएँ


12

मुझे नहीं पता कि यह सवाल यहाँ है, लेकिन मैं एक शॉट लूंगा। नमस्ते। मैं अपनी मशीन पर विंडोज़ विस्टा के साथ ubuntu 11.10 डुअल-बूट चला रहा हूं। उबंटू पर, मैंने आरवीएम, रेल्स रत्न, और पोस्टग्रेक्यूएल (सर्वर, क्लाइंट, और अन्य पैकेज जैसे libpq5 पोस्ट किया है, क्योंकि मैंने इसे सॉफ्टवेयर सेंटर के माध्यम से स्थापित किया है)।

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

त्रुटि: मणि देशी विस्तार बनाने में विफल।

/home/pcr/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb pg_config के लिए जाँच कर रहा है ... हाँ

/ Usr / bin / pg_config से कॉन्फिग वैल्यू का उपयोग करना

क्लाइंट-साइड एप्लिकेशन बनाने के लिए आपको सर्वर-साइड एक्सटेंशन या libpq-dev बनाने के लिए postgresql-server-dev-XY इंस्टॉल करना होगा। क्लाइंट-साइड एप्लिकेशन बनाने के लिए आपको सर्वर-साइड एक्सटेंशन या libpq-dev बनाने के लिए postgresql-server-dev-XY इंस्टॉल करना होगा।

libpq-fe.h के लिए जाँच ... * extconf.rb विफल *

थोड़ी देर के लिए google और stackoverflow को खोजने के बाद, कई लोगों ने कहा कि libpq-dev को स्थापित किया जाना है। मैंने सॉफ्टवेयर सेंटर के माध्यम से कोशिश की, लेकिन निर्भरता को कम करने में असफल रहा। मैंने apt-get के माध्यम से कोशिश की, इसने कहा कि मुझे libkrb5-dev और krb5-multidev की आवश्यकता है। मैंने कोशिश की sudo apt-get install libpq-dev libkrb5-dev krb5-multidev, और यह मिल गया:

निम्नलिखित पैकेजों में कुछ निर्भरताएँ हैं: krb5-multidev:

निर्भर करता है: libkrb5-3 (= 1.9.1 + dfsg-1ubuntu1) लेकिन 1.9.1 + dfsg-1ubuntu2.1 स्थापित किया जाना है

निर्भर करता है: libk5crypto3 (= 1.9.1 + dfsg-1ubuntu1) लेकिन 1.9.1 + dfsg-1ubuntu2.1 स्थापित किया जाना है

निर्भर करता है: libgssapi-krb5-2 (= 1.9.1 + dfsg-1ubuntu1) लेकिन 1.9.1 + dfsg-1ubuntu2.1 को स्थापित किया जाना है E: समस्याओं को ठीक करने में असमर्थ, आपके पास टूटे हुए पैकेज हैं।

लेकिन मेरे पास पहले से ही मेरे सिस्टम पर libkrb5-3, libk5crypto3, और libgssapi-krb5-2 (सभी संस्करण 1.9.1 + dfsg-1ubuntu2.1 के साथ) है! मुझे लगता है कि शायद आवश्यक संस्करण 1.9.1 + dfsg-1ubuntu1 है। तो, शायद मुझे पहले 1.9.1 + dfsg-1ubuntu2.1 संकुल निकालना होगा। क्या आपको लगता है कि इसे हटाना मेरे लिए सुरक्षित है? मैंने उनमें से एक को हटाने की कोशिश की, लेकिन सॉफ्टवेयर सेंटर ने मुझे चेतावनी दी कि यह पोस्टग्रैस, ओप्सनल-क्लाइंट, smbclient, कप और कई अन्य पैकेजों को भी हटा देगा।

इसे हल करने के लिए मुझे क्या करना चाहिए? और, क्या पीजी रत्न को dbms के रूप में पोस्टग्रेज के साथ रेल ऐप बनाने के लिए मेरे स्थानीय मशीन पर स्थापित किया जाना आवश्यक है? वहाँ एक तरीका है "हाथ सौंपना" करने के लिए इसके बजाय pg मणि heroku करने के लिए शामिल करने की जिम्मेदारी है?

जवाबों:


8

असली समाधान, जैसा कि अमित पटेल ने सही ढंग से बताया है , स्थापित करने के लिएlibpq-dev


यदि आप विकास मशीन पर pg सेटअप करने में असमर्थ थे, तो यहाँ एक समाधान है। आप अपनी लोकल मशीन में sqlite का उपयोग कर सकते हैं और Heroku में pg कर सकते हैं। यहाँ आप अपने Gemfile में क्या होना चाहिए

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

और उत्पादन रत्न की अनदेखी करने के लिए बंडल स्थापित करने के लिए इस कमांड का उपयोग करें:

bundle install --without production

कृपया ध्यान रखें कि उत्पादन और विकास मशीनों में समान वातावरण नहीं होने की अनुशंसा नहीं की जाती है।


हाँ, यह सही उत्तर है। +1, मैं यह अब हर समय करता हूं।
jrg

@ Jrg क्या आपको ऐसा करने से कुछ समस्या का अनुभव होता है? मैं पूछता हूं क्योंकि हरोकू कहता है "यह अनुशंसित नहीं है"।
2

हरोकू इसकी अनुशंसा नहीं करता है क्योंकि आम तौर पर आप सर्वर के समान ही विकास करना चाहते हैं - हालाँकि, जब तक आप ActiveRecord या DataMapper का उपयोग कर रहे हैं और आप कच्चे SQL नहीं लिख रहे हैं, आपको समय का 99% ठीक होना चाहिए। :)
jrg

1
@PatrixCR नोप, हरोकू आपके लिए यही करेगा।
गुड़

1
Sqlite का उपयोग करना समाधान है। फिर क्या उपाय है?
अमित पटेल

32

मुझे आज वही मुद्दा मिला। मैंने संदेश का पालन किया है आपको एक क्लाइंट-साइड एप्लिकेशन के निर्माण के लिए सर्वर-साइड एक्सटेंशन या libpq-dev के निर्माण के लिए postgresql-server-dev-XY स्थापित करने की आवश्यकता है। तो स्थापित libpq- देव और बंडल रेल एप्लिकेशन फिर से और त्रुटि गायब हो गई।

$ sudo apt-get install libpq-dev
$ bundle install

2
यह एक बेहतर उपाय है यदि आप अपनी विकास मशीन पर दर्पण लगाना चाहते हैं, तो मेरे लिए काम करें।
Collin व्हाइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.