รางติดตั้ง pg - ไม่พบส่วนหัว 'libpq-fe.h


87
$ 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'แต่นี่ไม่ได้ช่วยอะไร

Gemfile ของฉัน

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 ได้อย่างไร?
Stefan


คำตอบ:


189

ทำเพียงแค่นี้

$ sudo apt-get install libpq-dev

ฉันพยายามทำใน Ubuntu 14.04 แต่มันให้สิ่งนี้: "libpq-dev: ขึ้นอยู่กับ: libpq5 (= 9.3.4-1) แต่ต้องติดตั้ง 9.3.10-0ubuntu0.14.04"
Michael Lafayette

แต่พอลองติดตั้ง libpq5 มันขึ้นว่า "libpq5 เป็นเวอร์ชันใหม่ล่าสุดแล้ว"
Michael Lafayette

เวอร์ชัน PostgreSQL คือ: psql --version: psql (PostgreSQL) 9.3.10 PostgreSQL 9.3.10 บน x86_64-Unknown-linux-gnu รวบรวมโดย gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 64 บิต
Michael Lafayette

1
ยอดเยี่ยม! แอปพลิเคชันที่ฉันกำลังรวบรวมยังจำเป็นต้องมีการระบุเส้นทางlibpq-fe.hอย่างชัดเจนด้วย--with-cflags=-I/usr/include/postgresqlเผื่อว่าจะมีใครเจอแบบเดียวกัน
Ben Johnson

สำหรับผู้ที่สงสัยว่า libpq-dev หมายถึงอะไร: ประกอบด้วยชุดPostgreSQL_ ไบนารีและส่วนหัวขั้นต่ำที่จำเป็นสำหรับการสร้างแอปพลิเคชันของบุคคลที่สามสำหรับPostgreSQL_
IronMan007

75

สิ่งนี้ได้รับคำตอบในไม่พบส่วนหัว 'libpq-fe.h เมื่อพยายามติดตั้ง pg gem

ขึ้นอยู่กับสภาพแวดล้อมของคุณ:

  • Mac: brew install postgresql
  • Ubuntu :sudo apt-get install libpq-dev
  • RHEL :yum install postgresql-devel

จากนั้นเรียกใช้gem install pgอีกครั้ง


1
ฉันพยายามทำสิ่งนั้นบน Ubuntu 14.04 แต่ให้สิ่งนี้: "libpq-dev: ขึ้นอยู่กับ: libpq5 (= 9.3.4-1) แต่ต้องติดตั้ง 9.3.10-0ubuntu0.14.04"
Michael Lafayette

แต่พอลองติดตั้ง libpq5 มันขึ้นว่า "libpq5 เป็นเวอร์ชันใหม่ล่าสุดแล้ว" เช่นเดียวกันสำหรับ PostgreSQL
Michael Lafayette

เวอร์ชัน PostgreSQL คือ: psql --version: psql (PostgreSQL) 9.3.10 PostgreSQL 9.3.10 บน x86_64-Unknown-linux-gnu รวบรวมโดย gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
Michael Lafayette

เฮ้ไมเคิลฉันไม่แน่ใจว่าฉันสามารถตอบคำถามของคุณได้เพราะฉันไม่คุ้นเคยกับ Ubuntu แต่คุณอาจต้องการดูคำตอบของ Michael Durrant ที่นี่: stackoverflow.com/a/8887801/2484523
Phil

ทำงานกับ Red Hat EL7 ฉันได้รับไฟล์ส่วนหัวหายไประหว่างการติดตั้ง Perl ของ DBD :: Pg
Marcus


15

ในระบบ Fedora / RHEL นี่เป็นเคล็ดลับ:

sudo yum install libpqxx-devel

ทำไมถึงพูดว่า: ไม่มีแพ็คเกจ libpqxx-devel ให้ใช้งาน
itsji10dra

1
รายการ yum libpq * ตามด้วย yum ติดตั้ง libpqxx-devel.x86_64
erichfw

10
  • ระบบปฏิบัติการ: Ubuntu
  • การเขียนโปรแกรมภาษา: C

$ 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

GL



5

สำหรับ Amazon Linux (AWS):

sudo yum install postgresql-devel

จากนั้นเรียกใช้คำสั่งของคุณอีกครั้ง


4

ฉันมีปัญหากับเซิร์ฟเวอร์ Jenkins บน Amazon AMI

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

จากนั้นขึ้นอยู่กับเวอร์ชันที่คุณต้องการคุณสามารถติดตั้ง lib ที่ต้องการได้

$ 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) เป็น Roadblock ของฉันใน AMI เช่นกัน
DaveGauer



2

บน Mac ตรวจสอบให้แน่ใจว่า postgres ของคุณเชื่อมโยงอยู่ คุณสามารถทำได้โดย

brew link --overwrite postgresql

สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้


2

สิ่งนี้เกิดขึ้นกับฉันโดยใช้ capistrano ในขณะที่ปรับใช้แอปของฉันใน centos7 distro เห็นได้ชัดว่าอัญมณีต้องการไฟล์ส่วนหัวบางไฟล์ซึ่งสามารถแก้ไขได้ในการติดตั้งแพ็คเกจการพัฒนาที่เหมาะสม

ฉันแก้ไขโดยการเรียกใช้sudo yum search postgres | grep develและพบแพ็คเกจที่เหมาะสมสำหรับการติดตั้ง postgres ซึ่งเป็น 10

จากนั้นก็วิ่งsudo yum install postgresql10-develและยูเรก้า!


คุณช่วยวันของฉัน! การค้นหาเวอร์ชัน devel ที่ถูกต้องช่วยได้จริงๆ!
HoangLM

1

ฉันใช้ Ubuntu-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/ และฉันก็แก้ปัญหาได้ในที่สุด


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)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.