ruby on rails - मैवरिक्स के साथ मेरे मैक पर पीजी मणि स्थापित करना असंभव है
ruby-on-rails postgresql (18)
मैं अपने रेल परियोजनाओं के साथ फिर से काम करने के लिए पीजी मणि स्थापित करने की कोशिश कर रहा हूं। लेकिन मुझे यह त्रुटि मिलती है:
देशी एक्सटेंशन का निर्माण इसमें कुछ समय लग सकता है ... त्रुटि: पीजी स्थापित करने में त्रुटि: त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल।
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If
बिल्डिंग विफल हो जाती है, कृपया libpq-fe.h के लिए जांच के साथ-with-pg-config = / path / to / pg_config के साथ पुनः प्रयास करें ... नहीं 'libpq-fe.h header * extconf.rb विफल नहीं मिला * किसी कारण से मेकफ़ाइल नहीं बना सका, संभवतः आवश्यक पुस्तकालयों और / या शीर्षकों की कमी। अधिक जानकारी के लिए mkmf.log फ़ाइल देखें। आपको कॉन्फ़िगरेशन विकल्पों की आवश्यकता पड़ सकती है।
प्रदान किए गए कॉन्फ़िगरेशन विकल्प: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - बिना ऑप्ट-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =। --curdir --ruby = / उपयोगकर्ता / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir} / include - -with-pg-lib --without-pg-lib = $ {pg-dir} /
निरीक्षण के लिए जेम फ़ाइलें /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 में स्थापित रहेंगी। परिणाम /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out पर लॉग इन किए गए परिणाम
मैंने स्टैक ओवरफ्लो पर जो कुछ भी पाया, मैंने कोशिश की लेकिन मुझे अभी भी यह त्रुटि मिल गई है।
यदि मैं ब्रू का उपयोग करके पोस्टग्रेस्क्ल स्थापित करने का प्रयास करता हूं तो मुझे निम्नलिखित वारिंग मिलती है:
चेतावनी: postgresql-9.2.4 पहले से स्थापित है, यह अभी लिंक नहीं है
अगर मैं लिंक करने की कोशिश करता हूं
ब्रू लिंक पोस्टग्रेस्क्ल लिंकिंग /usr/local/Cellar/postgresql/9.2.4 ... चेतावनी: postgresql को लिंक नहीं कर सका। अनलिंक ...
त्रुटि: फ़ाइल को symlink नहीं कर सका: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 लिखने योग्य नहीं है। आपको इसकी अनुमतियां बदलनी चाहिए।
कृपया मदद करें
नोट: मैंने पहले से ही मैवरिक्स के लिए कमांड लाइन टूल्स इंस्टॉल किए हैं।
अगर मैं होमब्री का उपयोग करके अनइंस्टॉल करता हूं और फिर से स्थापित करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है:
==> http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2 डाउनलोड करना
################################################## #################.0# 100.0%==> पैचिंग फ़ाइल पैचिंग src / pl / plpython / मेकफ़ाइल पैचिंग फ़ाइल contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / cellar / postgresql / 9.2.4 - डेटादिर = / यूएसआर / स्थानीय / सेलर / पोस्टग्रेस्क्ल / 9.2.4 / शेयर / पोस्टग्रेस्क्ल - डॉकडिअर = / यूएसआर / स्थानीय / सेलर / पी ==> इंस्टॉल-दुनिया ==> चेतावनी बनाएं
नोट्स बनाएं
यदि PostgreSQL 9 का निर्माण विफल हो रहा है और आपके पास संस्करण 8.x स्थापित है, तो आपको पहले पिछले संस्करण को हटाने की आवश्यकता हो सकती है। देख:
https://github.com/mxcl/homebrew/issues/issue/2510डेटाबेस बनाएं / अपग्रेड करें
यदि यह आपका पहला इंस्टॉल है, तो डेटाबेस बनाएं: initdb / usr / local / var / postgres -E utf8
PostgreSQL के पिछले बड़े संस्करण (प्री-9.2) से मौजूदा डेटा माइग्रेट करने के लिए, देखें:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlएक्सटेंशन लोड हो रहा है
डिफ़ॉल्ट रूप से, होमब्रू सभी उपलब्ध Contrib एक्सटेंशन बनाता है। Psql कमांड लाइन से सभी उपलब्ध एक्सटेंशन की सूची देखने के लिए, चलाएं:
चुनें * pg_available_extensions से;किसी भी एक्सटेंशन नाम को लोड करने के लिए, वांछित डेटाबेस पर नेविगेट करें और चलाएं: एक्सटेंशन बनाएं [एक्सटेंशन का नाम];
उदाहरण के लिए, वर्तमान डेटाबेस में tablefunc एक्सटेंशन को लोड करने के लिए, चलाएं: एक्सटेंशन तालिकाफंक्शन बनाएं;
CREATE EXTENSION कमांड के बारे में अधिक जानकारी के लिए, देखें:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html एक्सटेंशन पर अधिक जानकारी के लिए, देखें:
http://www.postgresql.org/docs/9.2/static/contrib.htmlअन्य
कुछ मशीनों को साझा स्मृति की प्रावधान की आवश्यकता हो सकती है:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC पोस्टग्रेस मणि इंस्टॉल करते समय, ARCHFLAGS समेत अनुशंसित है: ARCHFLAGS = "- arch x86_64" gem इंस्टॉल pgसुडो के बिना रत्न स्थापित करने के लिए, होमब्रू विकी देखें।
लॉगिन पर postgresql लॉन्च करने के लिए: ln -sfv /usr/local/opt/postgresql/*.plist ~ / लाइब्रेरी / लॉन्चएगेंट्स फिर पोस्टग्रेस्क्ल लोड करने के लिए: लॉन्चक्टल लोड ~ / लाइब्रेरी / लॉन्चएगेंट्स / homebrew.mxcl.postgresql.plist या , यदि आप लॉन्चक्टल की आवश्यकता नहीं / चाहते हैं, तो आप बस चला सकते हैं: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log प्रारंभ चेतावनी: postgresql को लिंक नहीं कर सका। अनलिंकिंग ... त्रुटि:
brew link
चरण सफलतापूर्वक पूरा नहीं हुआ फ़ॉर्मूला बनाया गया है, लेकिन / usr / local में सिम्लिंक नहीं किया गया है आप 'ब्रू लिंक पोस्टग्रेस्क्ल' ==> सारांश 🍺 / usr / local / cellar / postgresql का उपयोग करके पुनः प्रयास कर सकते हैं /9.2.4: 2831 फाइलें, 38 एम, 4.9 मिनट में निर्मित
उपाय:
फ़ोल्डर की अनुमति बदलने के लिए मैं इस आदेश को निष्पादित करता हूं:
सुडो चॉउन जीनोसोरियो / यूएसआर / स्थानीय / शेयर / मैन / मैन 7
फिर
ब्रू लिंक पोस्टग्रेस्क्ल लिंकिंग /usr/local/Cellar/postgresql/9.3.1 ... 421 सिम्लिंक बनाया गया
और अंत में:
सुडो ARCHFLAGS = "- आर्क x86_64" मणि पीजी स्थापित करें
प्राप्त करना: पीजी-0.17.0.gem (100%) मूल एक्सटेंशन का निर्माण। इसमें कुछ समय लग सकता है ... सफलतापूर्वक पीजी-0.17.0 स्थापित किया गया
sudo ARCHFLAGS = "- arch x86_64" मणि पीजी स्थापित करें - --with-pg-config = / usr / local / bin / pg_config
अगर आप आर्क झंडे, ओएस एक्स 10.10.3 और पोस्टर्स ऐप 9.4 निर्दिष्ट नहीं करते हैं तो मेरे मामले में यह काम नहीं करता है
sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
इसी तरह, मैवरिक्स के बंडल अपडेट को स्थापित करने के बाद पीजी मणि पर एक त्रुटि फेंक रही थी, जिसका उपयोग केवल उत्पादन पर किया जाता है, न कि स्थानीय रूप से।
मैं अपने पैकेजों को प्रबंधित करने के लिए ब्रू का उपयोग करता हूं और postgresql पहले ही इंस्टॉल हो चुका था, लेकिन फिर भी मुझे 'no pg_config' त्रुटि मिल रही थी।
फिक्स बस 'पोस्टग्रेस्क्ल अनइंस्टॉल करें', फिर 'breg install postresresll' बनाना था। जिसके बाद मैं तुरंत 'बंडल अपडेट' चलाने में सक्षम था
इसे हल करने के लिए मेरे लिए सबसे आसान तरीका Postgres.app का उपयोग करना था और मेरे env vars को gem install pg
ताकि gem install pg
बस काम करता है (इसके बजाय --with-pg-config
ध्वज की आवश्यकता होती है)।
होमब्रू कास्क का उपयोग करना,
brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile
# now it just works
gem install pg
किसी भी खोए हुए आत्मा के लिए अभी भी इस मुद्दे को कोई संकल्प नहीं मिला है और एक brew
रूबी और पोस्टग्रेस स्थापित किया गया है। यह सुनिश्चित करने के लिए निम्न चरणों का पालन करें:
- सुनिश्चित करें कि
ruby
का आपका संस्करण ---universal
ध्वज के साथ स्थापित नहीं किया गया था।- यह पता लगाने की सबसे कठिन बात थी, मेरे पास -
--universal
था जो समस्या का अंतिम मूल था।
- यह पता लगाने की सबसे कठिन बात थी, मेरे पास -
- सुनिश्चित करें कि आपने
postgresql
कोinitdb
औरinitdb
आदेशों के साथ ठीक से प्रारंभ किया है (ऐसा करने के लिए चरणों के लिए कहीं और देखें)। - सुनिश्चित करें कि
Xcode
(वैकल्पिक) औरcommand line tools
स्थापित है; टर्मिनल पर:-
xcode-select --install
-
sudo xcodebuild -license
(यदिsudo xcodebuild -license
स्थापित है) या एप्लिकेशन खोलें और लाइसेंस समझौते को स्वीकार करें। - कंप्यूटर रीबूट करें
-
-
which ruby
,which gem
औरwhich postgres
/usr/local/bin/ruby
,/usr/local/bin/gem
और/usr/local/bin/postgres
सम्मानपूर्वक दिखाना चाहिए। टर्मिनल रन पर:
-
gem install pg -- --with-pg-config=/usr/local/bin/pg_config
- या
-
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
-
यह सुनिश्चित करना कि ये सभी चरण संतुष्ट हैं, मैं निम्नलिखित त्रुटियों को हल करने में सक्षम था:
-
ruby.h
हेडर त्रुटि -
developer tools installed first
त्रुटिdeveloper tools installed first
-
नवीनतम पोस्टग्रेस ऐप के साथ ओएस एक्स मैवरिक्स पर सुडो विशेषाधिकारों के साथ निम्नलिखित कार्य करें
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
पोस्टग्रेस 9.4:
gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config
मुझे पीजी मणि (मैक ओएस एक्स मैवरिक्स का उपयोग करके) के बारे में बंडल इंस्टॉल करते समय एक ही त्रुटि मिल रही थी। शोध के घंटों के बाद, मुझे समाधान मिला। मैंने होमब्री का उपयोग करके पोस्टग्रेर्स स्थापित किए
brew install postgres
इसे स्थापित करने के बाद, मैंने पोस्टग्रेस का उपयोग करके एक नया रेल ऐप बनाया। मैं भाग गया
bundle install
कोई फायदा नहीं हुआ (प्रश्न के समान त्रुटि मिली)। मैंनें इस्तेमाल किया
which psql
यह पता लगाने के लिए कि मेरे पोस्टग्रेर्स कहाँ स्थापित किए गए थे, यह वापस आ गया
/usr/local/bin/psql
बंडल को फिर से स्थापित करने से पहले, मुझे निम्नलिखित चलाने के द्वारा वैश्विक.पी. बनाने के लिए वैश्विक पथ बदलना पड़ा
bundle config build.pg --with-pg-config=/usr/local/bin/pg_config
तो मैं बंडल फिर से स्थापित और voila भाग गया! मैंने पोस्टग्रेज़ का इस्तेमाल किया जहां ब्रू ने इसे स्थापित किया।
मेरे मामले में, मैंने होमब्री के माध्यम से स्थापित संस्करण को अनइंस्टॉल किया और Postgress.app स्विच किया (लेखन के समय v9.3.4.2)।
पर्यावरण वास्तुकला झंडे को तैयार करते समय और pg_config
के पथ को निर्दिष्ट करते समय यह केवल काम करना प्रतीत होता था। आपका pg_config
भिन्न हो सकता है, इसलिए यह उत्तर pg_config
के स्थान पर pg_config
साथ मदद कर सकता है।
यहां अंतिम, पूर्ण आदेश दिया गया है जो मेरे लिए काम करता है:
env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
मेरे लिए, pg_config
पर, मुझे pg_config
पथ निर्दिष्ट करने की आवश्यकता नहीं थी। निम्नलिखित यह हो गया।
brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg
ऐसा लगता है कि वास्तुकला ध्वज कुंजी है।
मैं अपने बंडल पर 3 दिनों के लिए स्थापित अटक गया था। एनवी ARCHFLAGS = "- arch x86_64" मणि जोड़ने की तरह सब कुछ कोशिश की - pem - --with-pg-config = / usr / local / cellar / postgresql / 9.3.5_1 / bin / pg_config
मैं इस आदेश के बाद पीजी मणि स्थापित करने में सक्षम था लेकिन फिर भी यह बंडल इंस्टॉल से स्थापित नहीं हो रहा था, जो दर्द था क्योंकि मुझे पता है कि जेमफाइल में लिखना क्या है, मणि 'पीजी'
अंततः मेरे लिए काम करने वाली चीज़ यह जानना था कि मेरा pg_config /Library/PostgreSQL/9.3/bin/pg_config में था और डिफ़ॉल्ट रूप से जेमफ़ाइल बंडल इंस्टॉल / usr / local / bin / pg_config में दिखता है
मैं बस निम्नलिखित आदेश चला गया और जादू हुआ। बंडल कॉन्फ़िगरेशन build.pg --with-pg-config = / लाइब्रेरी / PostgreSQL / 9.3 / bin / pg_config
मैं एक ही समस्या के साथ था, यह समाधान मैंने पाया था।
यदि आप brew doctor
चलाते हैं, तो यह आपको बताएगा कि शायद आपने ब्रू के बिना कुछ इंस्टॉल किया है जिसने कुछ फ़ोल्डरों पर अनुमतियां बदल दी हैं, और इसलिए, आपको उस फ़ोल्डर पर अनुमतियां वापस बदलने की आवश्यकता है।
अंदर /usr/local/share/man
, आप क्या कर सकते हैं निम्नलिखित है:
sudo chown [yourusername] man7
और तब:
brew link postgres
आशा करता हूँ की ये काम करेगा!
यदि आप पोस्टग्रेस्क्ल इंस्टॉलर का सीधे उपयोग करना चाहते हैं तो यहां एक और विकल्प है। मैवरिक्स को अपडेट करने के बाद शुरू करने के लिए आपको कुछ हुप्स मिलना होगा। यहां मैंने जो किया है:
पहले xcode कमांड लाइन उपकरण स्थापित करें:
xcode-select --install
PostgreSQL (9.3.1) के नवीनतम संस्करण को डाउनलोड और इंस्टॉल करें, मेरे मामले में मैंने अभी ग्राफिकल इंस्टॉलर का उपयोग किया है। डाउनलोड पेज का लिंक यहां दिया गया है:
http://www.enterprisedb.com/products-services-training/pgdownload#osx
बस आपको जो भी डिफ़ॉल्ट देता है उसे चुनें। यह मेरे मामले में निम्न निर्देशिका में पोस्टग्रेस स्थापित करता है, अगर आपने इसे किसी भिन्न निर्देशिका में स्थापित किया है, तो बस आपके द्वारा चुने गए पथ को याद रखें, क्योंकि आपको इसकी जल्द ही आवश्यकता होगी।
/Library/PostgreSQL/9.3
यदि अब आप नवीनतम पीजी मणि (0.17.0) को आजमाएं और इंस्टॉल करें तो आपको कमांड लाइन पर कुछ विकल्प पारित करने होंगे। यही वह है जो मैंने उपयोग किया था:
ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
यदि आपने पोस्टग्रेस को किसी दूसरे स्थान पर इंस्टॉल किया है तो आपको pg_config फ़ाइल के पथ को ठीक करने की आवश्यकता होगी।
यदि यह पीजी मणि स्थापित करने की कोशिश करते समय अनुपलब्ध 'libpq.5.dylib' फ़ाइल की शिकायत करता है तो आपको इस फ़ाइल के वास्तविक स्थान पर इंगित एक सिम्लिंक बनाना होगा। Postgres इसे आपके / usr / local / lib / निर्देशिका में ढूंढ रहा है, इसलिए वहां एक सिम्लिंक बनाएं और इसे अपने वास्तविक स्थान पर रीडायरेक्ट करें। मेरे मामले में मुझे दौड़ना पड़ा:
sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib
एक बार ऐसा करने के बाद, फिर से मणि इंस्टॉल करने का पुनः प्रयास करें और उम्मीद है कि यह आपके लिए भी वैसे ही काम करेगा जैसा उसने मेरे लिए किया था।
यदि आप मैकपॉर्ट्स का उपयोग करना टालना चाहते हैं, तो आप Postgress.app डाउनलोड कर सकते हैं और इसे एप्लिकेशन निर्देशिका में रख सकते हैं।
फिर, नए डाउनलोड किए गए pg_config
का स्थान निर्दिष्ट करें:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
यदि आप हेडर समस्या को याद करने में भागते हैं, तो ऐप की निर्देशिका include
करने का प्रयास करें:
gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
यदि यहां सब कुछ करने का प्रयास करने के बाद भी यह इंस्टॉल नहीं होगा, एक्सकोड खोलने और लाइसेंस समझौते को स्वीकार करने का प्रयास करें।
यह मेरे लिए काम किया है:
gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
सबसे पहले pg_config स्थान खोजें
sudo find / -name "pg_config" -print
उत्तर मेरी कॉन्फ़िगरेशन में /Library/PostgreSQL/9.1/bin/pg_config है (मैक Maverick)
फिर नीचे की तरह कुछ स्थापित करने का प्रयास करें
मणि स्थापित पीजी - --with-pg-config = / लाइब्रेरी / PostgreSQL / 9.3 / bin / pg_config
अगर यह काम नहीं करता है तो जांचने का प्रयास करें कि आपने postgresql को किस तरह से स्थापित किया है
ब्रू / मैक पोर्ट / सेटअप
तो आपको इसके लिए प्रासंगिक विकल्प आज़माएं।
धन्यवाद।
राम
postgresql
पाने के लिए ब्रू का प्रयोग करें
brew install postgresql
जांचें कि आपके पास स्थापित ब्रू में pg_config है। मैंने मेरा पाया
/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
के माध्यम से जांचें:
$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
एक बार हो जाने के बाद, pg
मणि के साथ स्थापित करें
env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config