2014-04-25 5 views
6

पर पीजी मणि स्थापित करें मैं रेल और पोस्टग्रेज़ पर रूबी के साथ अपना वीपीएस (सेंटोस 6.4) सेट करने की कोशिश कर रहा हूं।CentOS 6

मैंने रूबी (2.1.0 पी 0), रेल (4.1.0), और पोस्टग्रेस्क्ल (9.3.4) को बिना किसी समस्या के स्थापित किया।

जब मैं नई रेल ऐप बनाने की कोशिश करता हूं (नए new_app -d postgresql रेल) ​​यह पीजी मणि स्थापित करते समय बंद हो जाता है। मैंने इस त्रुटि के बारे में सभी SO पोस्टों को देखा है और मुझे जो कुछ भी मिल सकता है, उससे काफी कुछ करने की कोशिश की है। सबसे सुझाव दिया गया था कि "yum install postgresql-devel" चलाएं और अभी भी काम नहीं किया है।

नीचे आप एसएसएच आउटपुट और mkmf.log पा सकते हैं। मुझे अगर अधिक जानकारी की जरूरत जानते हैं ...


आउटपुट

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

/home/deploy/.rvm/rubies/ruby-2.1.0/bin/ruby extconf.rb 
checking for pg_config... yes 
Using config values from /usr/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 
    --without-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/deploy/.rvm/rubies/ruby-2.1.0/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}/lib 
/home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:587:in `try_cpp' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:1120:in `block in find_header' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:918:in `block in checking_for' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:321:in `open' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:321:in `open' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:347:in `postpone' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:917:in `checking_for' 
    from /home/deploy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/mkmf.rb:1119:in `find_header' 
    from extconf.rb:48:in `' 

extconf failed, exit code 1 


mkmf.log

 
"gcc -o conftest -I/home/deploy/.rvm/rubies/ruby-2.1.0/include/ruby-2.1.0/x86_64-linux -I/home/deploy/.rvm/rubies/ruby-2.1.0/include/ruby-2.1.0/ruby/backward -I/home/deploy/.rvm/rubies/ruby-2.1.0/include/ruby-2.1.0 -I. -I/usr/include  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC conftest.c -L. -L/home/deploy/.rvm/rubies/ruby-2.1.0/lib -Wl,-R/home/deploy/.rvm/rubies/ruby-2.1.0/lib -L/usr/lib64 -Wl,-R/usr/lib64 -L. -fstack-protector -rdynamic -Wl,-export-dynamic  -Wl,-rpath,'/../lib' -Wl,-R -Wl,'/../lib' -L'/../lib' -lruby -lpthread -lrt -ldl -lcrypt -lm -lc" 
gcc: error trying to exec 'as': execvp: Permission denied 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: int main(int argc, char **argv) 
4: { 
5: return 0; 
6: } 
/* end */ 

उत्तर

0

कुछ इस तरह का प्रयास करें;

before "bundle:install" do 
    run "ls -l #{fetch(:latest_release)}/Gemfile" 
    #run "bundle config --local --gemfile=#{fetch(:latest_release)}/Gemfile build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config" 
    run "cd #{fetch(:latest_release)} && bundle config build.pg --with-pg-config=/usr/pgsql-9.3/bin/pg_config" 
end 
+0

आपको कहां कोशिश करनी है? – Victor

0

आप postres pg_config फ़ाइल पथ विकल्प के साथ स्नातकोत्तर मणि स्थापित करने की कोशिश कर सकते: मैं इस समस्या थी

gem install pg -- --with-pg-config=/usr/pgsql-9.2/bin/pg_config 

कृपया अपने सिस्टम

सादर

0

के अनुसार पथ को अद्यतन मेरे मैक पर और यह एक बैश/आरवीएम मुद्दा था। मुझे इसे अपने बैश में जोड़ना पड़ा: [[-s "$ HOME/.rvm/स्क्रिप्ट/आरवीएम"]] & & स्रोत "$ HOME/.rvm/स्क्रिप्ट/आरवीएम"। यह देखते हुए कि यह कॉन्फ़िगरेशन फ़ाइल ढूंढ रहा है I यदि आप पुरानी PostgreSQL संस्करण कि CentOS 6 (PostgreSQL 8.4) के साथ आता है का उपयोग नहीं कर रहे हैं इस पर विचार करेंगे।

5

, आप -devel पैकेज आपके संस्करण (PostgreSQL 9.X) मिलान स्थापित करने की आवश्यकता।

official PostgreSQL yum repository का उपयोग करना सबसे आसान तरीका है।

जैसा कि नवीनतम संस्करण 9.5 है और यह सभी 9 .X संस्करणों के साथ संगत है, मैं इसके लिए निर्देश लिखूंगा ई। भविष्य में आप अपडेट किए गए आदेशों के लिए official instructions का संदर्भ ले सकते हैं।

yum install http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm 
yum install postgresql95-devel 

फिर -with-pg-config विकल्प के साथ मणि स्थापित:

gem install pg -- --with-pg-config=/usr/pgsql-9.5/bin/pg_config 
3

यह मेरे लिए आसान था:

ln -s /usr/pgsql-9.5/bin/pg_config /usr/local/bin/ 
+0

यह प्रत्येक बंडल में निर्दिष्ट करना बहुत आसान है। हालांकि आपको इसे प्रमुख पोस्टग्रेस्क्ल संस्करण परिवर्तनों पर अपडेट करना याद रखना चाहिए (9। *। *) –

+0

यह PostgreSQL 9.X के साथ काम नहीं करेगा क्योंकि CentOS 6 PostgreSQL 8.4 के साथ आता है – Victor