रेल स्थापित पीजी - 'libpq-fe.h हेडर नहीं मिल सकता है


86
$ sudo bundle install

परिणाम

Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Using rake (0.9.2.2) 
Using i18n (0.6.1) 
Using multi_json (1.3.6) 
Using activesupport (3.2.8) 
Using builder (3.0.4) 
Using activemodel (3.2.8) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.2) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.8) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.11) 
Using mail (2.4.4) 
Using actionmailer (3.2.8) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.8) 
Using activeresource (3.2.8) 
Using bundler (1.2.1) 
Using coffee-script-source (1.4.0) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.5) 
Using rdoc (3.12) 
Using thor (0.16.0) 
Using railties (3.2.8) 
Using coffee-rails (3.2.2) 
Using jquery-rails (2.1.3) 
Installing pg (0.14.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/usr/bin/ruby1.8
    --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

Gem files will remain installed in /var/lib/gems/1.8/gems/pg-0.14.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/pg-0.14.1/ext/gem_make.out
An error occurred while installing pg (0.14.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

मैं बना रहा हूं $ gem install pg -v '0.14.1'लेकिन यह मदद नहीं है

माई जेमफाइल

source 'https://rubygems.org'

#gem 'rails', '3.0.9'

#gem 'sqlite3', '1.3.6', :group => :development


gem 'rails', '3.2.8'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'


gem 'sqlite3'
gem 'pg'
gem 'taps'

gem 'json'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'


#group :production do
  #gem 'pg'
#end
#group :development do
  #gem 'sqlite3'
#end

gem_make.out

/usr/bin/ruby1.8 extconf.rb 
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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=/usr/bin/ruby1.8
    --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

mkmf.log

find_executable: checking for pg_config... -------------------- yes

--------------------

find_header: checking for libpq-fe.h... -------------------- no

"gcc -E -I. -I/usr/lib/ruby/1.8/i686-linux -I. -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I -fno-strict-aliasing -g -g -O2  -fPIC    conftest.c -o conftest.i"
conftest.c:1:22: fatal error: libpq-fe.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include <libpq-fe.h>
/* end */

--------------------

कृपया मेरी मदद करें। धन्यवाद।

इस पाठ के लिए क्षमा करें। आपकी पोस्ट में कोड सेक्शन को समझाने के लिए ज्यादा संदर्भ नहीं हैं; कृपया अपने परिदृश्य को और स्पष्ट रूप से समझाएं।


1
आपने PostgreSQL कैसे स्थापित किया?
स्टीफन

1
संभव नहीं डुप्लिकेट PostgreSQL ग्राहक पुस्तकालय (libpq)
skolima

जवाबों:


184

बस इसे बनाओ

$ sudo apt-get install libpq-dev

11
यह मेरे लिए किया था +1
मैडलेन डैनिक

मैंने उबंटू 14.04 पर ऐसा करने की कोशिश की, लेकिन इसने मुझे यह दिया: "libpq-dev: डिपेंड करता है: libpq5 (= 9.3.4-1) लेकिन 9.3.10-0ubuntu0.14.04 को इंस्टॉल किया जाना है"
माइकल

लेकिन तब जब मैं libpq5 को स्थापित करने की कोशिश करता हूं, तो यह कहता है "libpq5 पहले से ही सबसे नया संस्करण है।"
माइकल

PostgreSQL संस्करण है: psql --version: psql (PostgreSQL) 9.3.10। PostgreSQL 9.3.10 x86_64-अज्ञात-लिनक्स-गन्नू पर, gcc (उबंटू 4.8.2-19ubuntu1) 4.8.2, 64-बिट द्वारा संकलित
माइकल Lafayette

1
प्रतिभाशाली! जिस एप्लिकेशन को मैं संकलित कर रहा था, उसे भी libpq-fe.hस्पष्ट रूप से निर्दिष्ट करने के लिए पथ की आवश्यकता थी --with-cflags=-I/usr/include/postgresql, अगर किसी और का सामना करना पड़ता है।
बेन जॉनसन

75

यह जवाब दिया जा सकता है कि जब पीजी मणि स्थापित करने की कोशिश की जा रही है तो 'libpq-fe.h हेडर नहीं मिलेगा

आपके पर्यावरण पर निर्भर करता है:

  • मैक: brew install postgresql
  • उबंटू :sudo apt-get install libpq-dev
  • आरएचईएल :yum install postgresql-devel

तब चलाने के gem install pgफिर से


1
मैंने उबंटू 14.04 पर ऐसा करने की कोशिश की, लेकिन इसने मुझे यह दिया: "libpq-dev: निर्भर करता है: libpq5 (= 9.3.4-1) लेकिन 9.3.10-0ubuntu0.14.04 को स्थापित किया जाना है"
माइकल

लेकिन तब जब मैं libpq5 को स्थापित करने की कोशिश करता हूं, तो यह कहता है "libpq5 पहले से ही सबसे नया संस्करण है।" PostgreSQL के लिए एक ही
माइकल Lafayette

PostgreSQL संस्करण है: psql --version: psql (PostgreSQL) 9.3.10। PostgreSQL 9.3.10 x86_64- अज्ञात-लिनक्स-गन्नू पर, gcc द्वारा संकलित (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-बिट
माइकल

हे माइकल, मुझे यकीन नहीं है कि मैं आपके प्रश्न का उत्तर दे सकता हूं क्योंकि मैं उबंटू से परिचित नहीं हूं, लेकिन आप यहां माइकल ड्यूरेंट का जवाब देख सकते हैं: stackoverflow.com/a/8887801/2484523
Phil

Red Hat EL7 पर काम किया। मुझे DBD :: Pg की एक पर्ल इंस्टाल के दौरान हेडर फाइल गायब मिल रही थी।
मार्कस

18

इसे इस्तेमाल करे:

  1. काढ़ा स्थापित करें postgresql
  2. मणि स्थापित पी.जी.
  3. बंडल स्थापित करें

15

फेडोरा / आरएचईएल सिस्टम पर यह काम किया:

sudo yum install libpqxx-devel

यह क्यों कहता है: कोई पैकेज libpqxx-devel उपलब्ध नहीं है।
इसका अंजीर १०

1
yum list libpq * इसके बाद yum install libpqxx-devel.x86_64
erichfw

10
  • SO: उबंटू
  • भाषा प्रोग्रामिंग: सी

$ sudo apt-get install libpq-dev

मेरे मामले में मैं निर्देशिका पथ को गलत कर रहा था। इसलिए:

से: gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99

सेवा: gcc -o lib_version lib_version.c -I /usr/include/postgresql -lpq -std=c99

जीएल


5

मैक ओएस एक्स पर इस तरह से चलाएं:

gem install pg -- --with-pg-config=***/path/to/pg_config***

***/path/to/pg_config*** pg_config का रास्ता है


5

अमेज़न लिनक्स (AWS) के लिए:

sudo yum install postgresql-devel

फिर अपनी कमान फिर से चलाएं


4

मैं अमेज़न AMI पर जेनकींस सर्वर के साथ इस मुद्दे था।

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

फिर आपको किस संस्करण की आवश्यकता होती है इसके आधार पर आप आवश्यक लीबी को स्थापित कर सकते हैं

$ sudo yum list postgresql* | grep devel
postgresql92-devel.x86_64               9.2.18-1.59.amzn1          @amzn-main
postgresql94-devel.x86_64               9.4.9-1.67.amzn1           @amzn-main
postgresql8-devel.x86_64                8.4.20-5.52.amzn1          amzn-main
postgresql93-devel.x86_64               9.3.14-1.62.amzn1          amzn-main
postgresql95-devel.x86_64               9.5.4-1.71.amzn1           amzn-main

तब आप केवल संस्करण 9.4 के लिए मेरे मामले में, संबंधित संस्करण स्थापित कर सकते हैं:

sudo yum install postgresql94-devel

1
आह! अति उत्कृष्ट। विशिष्ट संस्करण (9.6) एएमआई पर भी मेरा राउटर था।
डेवगॉर



1

मैक पर सुनिश्चित करें कि आपके पोस्टग्रैस जुड़े हुए हैं। आप इसके द्वारा कर सकते हैं

brew link --overwrite postgresql

इसने मेरे लिए मुद्दा तय कर दिया।


1

brew install postgresql मेरे लिए काम किया।

Postgresql की स्थापना एक और त्रुटि दे रही थी

Error: The following directories are not writable by your user: /usr/local/lib/pkgconfig /usr/local/share/info /usr/local/share/man/man3

वर्तमान उपयोगकर्ता को उल्लिखित निर्देशिकाओं तक पहुँच देकर यह त्रुटि ठीक की गई

sudo chown -R $(whoami) (path)


1

सेंटोसो 7 डिस्ट्रो में अपने ऐप को तैनात करते समय कैपिस्ट्रानो का उपयोग करते हुए ऐसा हो रहा था। जाहिरा तौर पर मणि को कुछ हेडर फ़ाइलों की आवश्यकता होती है जिन्हें सही विकास पैकेज स्थापित करने से हल किया जा सकता है।

मैंने इसे चलाकर ठीक किया sudo yum search postgres | grep develऔर अपने पोस्टग्रेज इंस्टॉलेशन के लिए सही पैकेज पाया जो 10 था।

तो बस चलाने के लिए sudo yum install postgresql10-devel, और यूरेका!


आपने मेरा दिन बचाया! सही devel संस्करण ढूँढना वास्तव में मदद!
हंगलम

0

यह मेरे लिए काम किया:

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

0

मैं उबंटू -16 का उपयोग करता हूं। और मैं यहां दिखाए गए तरीके का उपयोग करता हूं: https://www.postgresql.org/download/linux/ubuntu/ को postgresql-9.6 स्थापित करने के लिए; और मैं "sudo apt-get install libpq-dev"devlib स्थापित करने के लिए उपयोग करता हूं। लेकिन यह अभी भी काम नहीं कर सकता है। तो मैं lnनरम लिंक स्थापित करने के लिए विधि का उपयोग करता हूं , यहां यह है sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/:; sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/ और मैं इस समस्या को अंतिम रूप से हल करता हूं।

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