rails install pg - 'libpq-fe.h üstbilgisi bulunamıyor


87
$ sudo bundle install

Sonuç

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.

Yapıyorum $ gem install pg -v '0.14.1'ama bu yardım değil

Gemfile'ım

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 */

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

Bana yardım et lütfen. Teşekkür ederim.

Bu yazı için özür dilerim. Gönderiniz kod bölümlerini açıklamak için fazla bağlam içermiyor; lütfen senaryonuzu daha net açıklayın.


1
PostgreSQL'i nasıl kurdunuz?
Stefan


Yanıtlar:


189

Sadece bunu yap

$ sudo apt-get install libpq-dev

Bunu Ubuntu 14.04'te yapmaya çalıştım ama bana şunu verdi: "libpq-dev: Depends: libpq5 (= 9.3.4-1) ama 9.3.10-0ubuntu0.14.04 yüklenecek"
Michael Lafayette

Ama sonra libpq5'i kurmaya çalıştığımda, "libpq5 zaten en yeni sürüm" diyor.
Michael Lafayette

PostgreSQL sürümü: psql --version: psql (PostgreSQL) 9.3.10. X86_64-unknown-linux-gnu üzerinde PostgreSQL 9.3.10, gcc tarafından derlendi (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
Michael Lafayette

1
Parlak! Derlediğim uygulama , başka birinin aynı şeyle karşılaşması durumunda libpq-fe.haçıkça belirtilmesi gereken yolun da gerekliydi --with-cflags=-I/usr/include/postgresql.
Ben Johnson

Libpq-dev'in ne anlama geldiğini merak edenler için: PostgreSQL_ için 3. parti uygulamaları oluşturmak için gerekli olan minimum _ ikili dosya ve başlık setini içerir PostgreSQL.
IronMan007

75

Bu, pg gem'i yüklemeye çalışırken 'libpq-fe.h üstbilgisini bulamıyorum' bölümünde yanıtlanır

Çevrenize bağlı olarak:

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

Sonra gem install pgtekrar koş


1
Bunu Ubuntu 14.04'te yapmaya çalıştım ama bana şunu verdi: "libpq-dev: Depends: libpq5 (= 9.3.4-1) ama 9.3.10-0ubuntu0.14.04 yüklenecek"
Michael Lafayette

Ama sonra libpq5'i kurmaya çalıştığımda, "libpq5 zaten en yeni sürümdür" diyor. PostgreSQL için aynı
Michael Lafayette

PostgreSQL sürümü: psql --version: psql (PostgreSQL) 9.3.10. X86_64-unknown-linux-gnu üzerinde PostgreSQL 9.3.10, gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit tarafından derlendi
Michael Lafayette

Hey Michael, Ubuntu'ya aşina olmadığım için sorunuzu yanıtlayabileceğimden emin değilim, ancak Michael Durrant'ın cevabına buradan göz atmak isteyebilirsiniz: stackoverflow.com/a/8887801/2484523
Phil

Red Hat EL7'de çalıştı. DBD :: Pg'nin Perl kurulumu sırasında başlık dosyasını eksik alıyordum.
Marcus

18

Bunu dene:

  1. brew postgresql yüklemek
  2. gem kurulum pg
  3. paket yükleme

15

Fedora / RHEL sistemlerinde bu hile yaptı:

sudo yum install libpqxx-devel

Neden diyor: libpqxx-devel paketi yok.
itsji10dra

1
yum list libpq * ve ardından yum install libpqxx-devel.x86_64
erichfw

10
  • İşletim Sistemi: Ubuntu
  • Dil Programlama: C

$ sudo apt-get install libpq-dev

Benim durumumda dizin yolunu yanlış koyuyordum. Yani:

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

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

GL


5

Mac OS X'te şu şekilde çalıştırın:

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

***/path/to/pg_config*** pg_config yoludur


5

Amazon Linux (AWS) için:

sudo yum install postgresql-devel

sonra komutunuzu tekrar çalıştırın


4

Amazon AMI üzerindeki bir Jenkins sunucusuyla bu sorunu yaşadım.

$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9

Sonra hangi sürüme ihtiyacınız olduğuna bağlı olarak gerekli kütüphaneyi kurabilirsiniz.

$ 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

O zaman benim durumumda 9.4 sürümü için ilgili sürümü kurabilirsiniz:

sudo yum install postgresql94-devel

1
Ah! Mükemmel. Spesifik sürüm (9.6) da AMI'deki engelimdi.
DaveGauer



2

Mac'te postgres'inizin bağlantılı olduğundan emin olun. Bunu yapabilirsin

brew link --overwrite postgresql

Bu benim için sorunu çözdü.


2

Bu, uygulamamı bir centos7 dağıtımına yerleştirirken capistrano kullanırken oluyordu. Görünüşe göre gem, doğru geliştirme paketini kurarak çözülebilecek bazı başlık dosyalarını gerektiriyor.

Çalıştırarak düzelttim sudo yum search postgres | grep develve 10 olan postgres kurulumum için doğru paketi buldum.

O zaman basitçe koş sudo yum install postgresql10-develve eureka!


Günümü kurtardın! Doğru geliştirme sürümünü bulmak gerçekten yardımcı oluyor!
HoangLM

1

Ubuntu-16 kullanıyorum. Ve burada gösterilen yöntemi kullanıyorum: https://www.postgresql.org/download/linux/ubuntu/ postgresql-9.6'yı yüklemek için; Ve kullandığım "sudo apt-get install libpq-dev"iş yapamaz hala devlib.But It yükleyin. Bu yüzden lnyumuşak bağlantı kurmak için yöntemi kullanıyorum , işte burada sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/:; sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/ Ve sonunda sorunu çözüyorum.


1

brew install postgresql benim için çalıştı.

Postgresql kurulumu başka bir hata veriyordu

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

Bu hata, mevcut kullanıcıya belirtilen dizinlere erişim verilerek düzeltildi.

sudo chown -R $(whoami) (path)


0

Bu benim için çalıştı:

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.