rails install pg- 'libpq-fe.h 헤더를 찾을 수 없습니다.


88
$ 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을 어떻게 설치 했습니까?
스테판


답변:


190

그냥 만들어

$ sudo apt-get install libpq-dev

우분투 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. GCC에 의해 컴파일 x86_64에-알 - 리눅스 GNU에 PostgreSQL을 9.3.10 (우분투 4.8.2-19ubuntu1) 4.8.2, 64 비트
마이클 라파예트

1
훌륭한! 내가 컴파일하고 있던 응용 프로그램은 다른 사람이 같은 것을 만날 경우를 대비 libpq-fe.h하여 명시 적으로 지정할 경로가 필요했습니다 --with-cflags=-I/usr/include/postgresql.
Ben Johnson

libpq-dev가 무엇을 의미하는지 궁금하신 분들을 위해 : PostgreSQL_ 용 타사 애플리케이션을 빌드 하는 데 필요한 최소한의 _ 바이너리 및 헤더 세트가 포함되어 있습니다 PostgreSQL.
IronMan007

75

이것은 pg gem을 설치하려고 할 때 'libpq-fe.h 헤더를 찾을 수 없습니다.

환경에 따라 :

  • 맥: brew install postgresql
  • 우분투 :sudo apt-get install libpq-dev
  • RHEL :yum install postgresql-devel

그런 다음 gem install pg다시 실행


1
우분투 14.04에서 그렇게하려고했지만 "libpq-dev : 종속 : libpq5 (= 9.3.4-1)하지만 9.3.10-0ubuntu0.14.04가 설치 될 예정입니다."
Michael Lafayette

하지만 libpq5를 설치하려고하면 "libpq5가 이미 최신 버전입니다."라는 메시지가 표시됩니다. PostgreSQL를위한 동일
마이클 라파예트

PostgreSQL 버전 : psql --version : psql (PostgreSQL) 9.3.10. GCC에 의해 컴파일 x86_64에-알 - 리눅스 GNU에 PostgreSQL을 9.3.10 (우분투 4.8.2-19ubuntu1) 4.8.2, 64 비트
마이클 라파예트

Hey Michael, Ubuntu에 익숙하지 않아서 질문에 답할 수 있을지 모르겠지만 여기에서 Michael Durrant의 답변을 확인하고 싶을 수도 있습니다. stackoverflow.com/a/8887801/2484523
Phil

Red Hat EL7에서 작업했습니다. DBD :: Pg의 Perl 설치 중에 헤더 파일이 누락되었습니다.
Marcus

18

이 시도:

  1. 양조 설치 postgresql
  2. gem 설치 pg
  3. 번들 설치

15

Fedora / RHEL 시스템에서 이것은 트릭을 수행했습니다.

sudo yum install libpqxx-devel

이유 : libpqxx-devel 패키지가 없습니다.
itsji10dra

1
냠 목록 libpq를 *이 냠 libpqxx-devel.x86_64 설치 다음
erichfw

10
  • SO : 우분투
  • 언어 프로그래밍 : 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

Mac OS X에서는 다음과 같이 실행합니다.

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

***/path/to/pg_config*** pg_config의 경로입니다.


5

Amazon Linux (AWS)의 경우 :

sudo yum install postgresql-devel

그런 다음 명령을 다시 실행하십시오.


4

Amazon AMI의 Jenkins 서버에서이 문제가 발생했습니다.

$ 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)도 AMI에 대한 제 장애물이었습니다.
DaveGauer



2

Mac에서는 postgres가 연결되어 있는지 확인하십시오. 당신은 그것을 할 수 있습니다

brew link --overwrite postgresql

이것은 나를 위해 문제를 해결했습니다.


2

이것은 centos7 배포판에 내 앱을 배포하는 동안 capistrano를 사용하여 발생했습니다. 분명히 gem은 올바른 개발 패키지를 설치하여 해결할 수있는 헤더 파일을 필요로합니다.

실행 sudo yum search postgres | grep devel하여 수정하고 내 postgres 설치에 적합한 패키지 인 10을 찾았습니다.

그런 다음 sudo yum install postgresql10-devel, 그리고 유레카 를 실행하십시오 !


당신은 내 하루를 구했습니다! 올바른 개발자 버전을 찾는 것이 정말 도움이됩니다!
HoangLM

1

저는 Ubuntu-16을 사용합니다. 그리고 여기에 표시된 방법을 사용합니다 : https://www.postgresql.org/download/linux/ubuntu/ to install 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)


0

이것은 나를 위해 일했습니다.

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.