/ / मणि स्थापित pg OSX शेर पर काम नहीं करता है

मणि स्थापित पीजी ओएसएक्स शेर पर काम नहीं करता है - रूबी, postgresql, rubygems, osx-शेर, पीजी

एसओ के चारों ओर उछलते हुए इस सवाल के रूपांतर हैं, लेकिन उनमें से किसी का भी जवाब नहीं है जो मेरी समस्या को हल करता है।

मैं OSX शेर (10.7.3) चला रहा हूं। नवीनतम XCode स्थापित है।

मैंने "postgresapp.com से Postgres.app पैकेज का उपयोग करके पोस्टग्रेज स्थापित किया है।

लेकिन जब मैं pg रत्न को स्थापित करने की कोशिश करता हूं, तो मुझे विफलता मिलती है:

$ gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.

/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/MacOS/bin/pg_config
checking for libpq-fe.h... *** 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=/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/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
/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do": The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:970:in `block in find_header"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:280:in `postpone"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for"
from /Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:969:in `find_header"
from extconf.rb:40:in `<main>"


Gem files will remain installed in /Users/disaacs/.rvm/gems/ruby-1.9.3-p125/gems/pg-0.13.2 for inspection.
Results logged to /Users/disaacs/.rvm/gems/ruby-1.9.3-p125/gems/pg-0.13.2/ext/gem_make.out

का उत्पादन /Applications/Postgres.app/Contents/MacOS/bin/pg_config आदेश है:

$ /Applications/Postgres.app/Contents/MacOS/bin/pg_config
BINDIR = /Applications/Postgres.app/Contents/MacOS/bin
DOCDIR = /Applications/Postgres.app/Contents/MacOS/share/doc
HTMLDIR = /Applications/Postgres.app/Contents/MacOS/share/doc
INCLUDEDIR = /Applications/Postgres.app/Contents/MacOS/include
PKGINCLUDEDIR = /Applications/Postgres.app/Contents/MacOS/include
INCLUDEDIR-SERVER = /Applications/Postgres.app/Contents/MacOS/include/server
LIBDIR = /Applications/Postgres.app/Contents/MacOS/lib
PKGLIBDIR = /Applications/Postgres.app/Contents/MacOS/lib
LOCALEDIR = /Applications/Postgres.app/Contents/MacOS/share/locale
MANDIR = /Applications/Postgres.app/Contents/MacOS/share/man
SHAREDIR = /Applications/Postgres.app/Contents/MacOS/share
SYSCONFDIR = /Applications/Postgres.app/Contents/MacOS/etc
PGXS = /Applications/Postgres.app/Contents/MacOS/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = "--prefix=/Users/mattt/Code/heroku/Postgres/Postgres/Vendor/postgres" "--enable-thread-safety" "--with-openssl" "--with-gssapi" "--with-bonjour" "--with-krb5" "--with-libxml" "--with-libxslt" "--with-ossp-uuid" "--with-perl" "--with-python"
CC = gcc
CPPFLAGS = -I/usr/include/libxml2
CFLAGS = -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv
CFLAGS_SL =
LDFLAGS = -Wl,-dead_strip_dylibs
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgport -lxslt -lxml2 -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
VERSION = PostgreSQL 9.1.3

CONFIGURE वैरिएबल को छोड़कर (जो कुछ अन्य कंप्यूटर का संदर्भ देता हुआ प्रतीत हो रहा है) - उन सभी को सही प्रतीत होता है - जिनके पास मैट नामक कोई उपयोगकर्ता नहीं है)।

Mkmf.log फ़ाइल की सामग्री हैं

"/usr/bin/gcc-4.2 -o conftest -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin10.8.0 -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -I/Users/disaacs/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/Applications/Postgres.app/Contents/MacOS/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe conftest.c  -L. -L/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib -L/Users/disaacs/.rvm/usr/lib -L. -L/usr/local/lib -L/Applications/Postgres.app/Contents/MacOS/lib     -lruby.1.9.1  -lpthread -ldl -lobjc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

किसी भी सुझाव की सराहना की जाएगी।

मैंने "extconf.rb फ़ाइल को देखा और कुछ डीबगिंग के बाद मैंने पाया कि यह एक कॉल है

find_header ("libpq-fe.h")

वह विफल हो रहा है। इसलिए नहीं कि libpq-fe.h वहां नहीं है, बल्कि इसलिए कि द find_header तरीका ही फेल हो रहा है। मैंने irb का उपयोग करके find_header चलाने की कोशिश की, और वही त्रुटि मिली:

$ irb
1.9.3-p125 :001 > require "mkmf"
=> true
1.9.3-p125 :002 > find_header "libpq-fe.h"
checking for libpq-fe.h... RuntimeError: The compiler failed to generate an executable file.
You have to install development tools first.

संपादित करें:

मुझे लगा कि जितना मैंने सोचा था उससे अधिक मेरे कंप्यूटर को और भी अधिक बोर किया जाना चाहिए। मैं एक और प्रोजेक्ट के लिए बंडल इंस्टॉल कर रहा था, और मुझे sqlite3 रत्न स्थापित करने में बहुत ही समान विफलता मिली।

checking for sqlite3.h... *** extconf.rb failed ***

मैं अतीत में sqlite3 मणि के साथ समस्या नहीं थी

उत्तर:

उत्तर № 1 के लिए 62

मैं अंत में समस्या का कारण पाया! हालांकि मैं अभी भी अनिश्चित हूं कि यह समस्या कैसे आई।

Mkmf.log फ़ाइल की सामग्री को देखें जो तब स्थापित की जाती है जब मेरी इंस्टॉल कमांड विफल हो जाती है (मेरी मूल पोस्ट देखें)। यह निम्न कमांड को चलाने का प्रयास करता है

/usr/bin/gcc-4.2 ...and so on...

कोई नहीं है /usr/bin/gcc-4.2 मेरे सिस्टम पर। वहां एक है gcc, जो प्रतीकात्मक रूप से जुड़ा हुआ है llvm-gcc-4.2। मेरा समाधान एक और प्रतीकात्मक लिंक बनाना था

sudo ln -s llvm-gcc-4.2 gcc-4.2

इस लिंक को बनाने के बाद, मेरी gem install pg कमांड ने बिना किसी समस्या के काम किया।

मैंने इस समस्या का समाधान पोस्ट में जमे हुए कैनक ब्लॉग पर पाया सी एक्सटेंशन के साथ रूबी जेम स्थापित करने में त्रुटि। वह अनुमान लगाता है कि समस्या XCode के परस्पर विरोधी संस्करणों के कारण हो सकती है। कारण जो भी हो, मेरा शाश्वत धन्यवाद!


उत्तर № 2 के लिए 1 9

OS X Mavericks पर

sudo ln -s /usr/bin/llvm-gcc /usr/bin/gcc-4.2

काम करता है।


जवाब के लिए 15 № 3

मेरा मुद्दा भी ऐसा ही था। एक के लिए bobfet1 द्वारा एक उत्तर के बाद इसी तरह की समस्या मैं मणि को स्थापित करने में सक्षम था:

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

जवाब के लिए 13 № 4

इस आदमी को धन्यवाद: http://www.computersnyou.com/2025/

का उपयोग कर Mavericks पर: xcode-select --install (यह मानते हुए कि आपने ऐप स्टोर से Xcode इंस्टॉल किया है) काम करता है।


उत्तर के लिए 7 № 5

ऐप स्टोर से xcode इंस्टॉल करना पर्याप्त नहीं है। आपको xcode की कमांड लाइन टूल की भी आवश्यकता होगी। https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_3.html

ऐप स्टोर से xcode इंस्टॉल करने के बाद, xcode खोलें। गोटो Xcode-> ओपन डेवलपर टूल-> अधिक डेवलपर टूल नवीनतम कमांड लाइन टूल डाउनलोड और इंस्टॉल करें।

एक टर्मिनल विंडो खोलें और चलाएं: sudo gem स्थापित पी.जी.


जवाब के लिए 6 № 6

मावेरिक्स 10.9 पर इसी तरह की समस्या है - लेकिन यह Xcode लाइसेंस समझौते के लिए सहमत नहीं होने के कारण था। Blech।

रन sudo xcodebuild और कबाड़ के लिए सहमत हैं। सब कुछ उम्मीद के मुताबिक काम करता है।


जवाब के लिए 2 № 7

मैं भी इस मुद्दे में भाग गया, मेरे लिए जवाब सभी चीजों का आरवीएम अपडेट कर रहा था।

rvm get head
rvm install 1.9.2

जवाब के लिए 2 № 8

मैं भी, माउंटेन लायन पर हूँ, इसके अलावा @grilix द्वारा सुझाए गए "sudo ln -s /usr/bin/lookllvm-, Idealgcc-4.2" के अलावा, मुझे करने की ज़रूरत है:

sudo ln -s /usr/bin/{llvm-,}g++-4.2

जवाब के लिए 2 № 9

Mavericks उन्नयन के बाद ...

अपने रूबी संस्करण को पुनर्स्थापित करें।

rvm uninstall 1.9.2-p320

फिर

rvm install 1.9.2-p320

या आपके पास माणिक का जो भी संस्करण है।


उत्तर के लिए 1 № 10

मैं माउंटेन लायन पर हूं, और डेव इसाक के स्वीकृत जवाब ने मेरे लिए काम किया। मुझे भी करना पड़ा

sudo ln -s llvm-g++-4.2 g++-4.2

उत्तर के लिए 1 № 11

आरवीएम को अपडेट करने के बजाय (https://stackoverflow.com/a/10430742/2807795), ऊपर के रूप में, यह रूबी 2.0.0-p247 की पुनर्स्थापना थी जिसने सफलता के ऊपर अन्य सभी चरणों की कोशिश करने के बाद, चाल चली।

rvm get head
rvm install 2.0.0

उत्तर के लिए 1 № 12
$ gem install pg

यदि वह विफल रहा:

$ sudo gem install pg

फिर, अगर वह विफल रहा:

$ sudo find / -name “pg_config”

तुम्हारे जाने के बाद pg_config"स्थान, अंत में इसे स्थापित करने के लिए इसे चलाएं:

$ sudo gem install pg --with-pg-config=/usr/local/Cellar/postgresql/9.5.1/bin/pg_config

बेशक, आप "जहाँ भी आप चाहते हैं पथ को बदलना चाहेंगे pg_config.

फिर, अपने स्थापित रत्नों की जाँच करें gem list, और इसे कुछ इस तरह दिखाना चाहिए:

<code> रत्न सूची </ code> सही चीजें दिखा रहा है

अधिक जानकारी में पाया जा सकता है मेरा गाईड.


उत्तर के लिए 0 № 13

यदि आउटपुट में शामिल हैं:

/Users/disaacs/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do": 
The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

तो वास्तव में आपके संकलन वातावरण के साथ कुछ गड़बड़ है। खासतौर पर तब, जब असफलता पहली परीक्षा हो extconf.rb रन।

यदि आपने XCode स्थापित किया है, तो शायद आप XCode के कमांड-लाइन टूल घटक को स्थापित नहीं करते हैं? वे थे हाल ही में XCode से अलग विभाजित उचित, इसलिए आपको उन्हें अलग से स्थापित करने की आवश्यकता है।