[ruby-on-rails] pg gem을 설치하려고 할 때 ‘libpq-fe.h 헤더를 찾을 수 없습니다

Ruby on Rails 3.1 프리 버전을 사용하고 있습니다. PostgreSQL을 사용하고 싶지만 문제는 pggem을 설치하는 것 입니다. 다음과 같은 오류가 발생합니다.

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

        /home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
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=/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
    --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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out

이 문제를 어떻게 해결합니까?



답변

우분투에서 헤더는 libpq-dev패키지의 일부입니다 (적어도 다음 우분투 버전에서는
11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr)) 및 18.04 (바이오닉 비버) :

...
/usr/include/postgresql/libpq-fe.h
...

따라서 libpq-devOS에 맞는 설치 또는 이에 상응하는 것을 시도하십시오 .

  • 우분투 / 데비안 시스템 : sudo apt-get install libpq-dev
  • 레드햇 리눅스 (RHEL) 시스템 :yum install postgresql-devel
  • Mac Homebrew의 경우 :brew install postgresql
  • Mac MacPorts PostgreSQL의 경우 :gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • 의 경우 오픈 수세 :zypper in postgresql-devel
  • 대한 아치 리눅스 :pacman -S postgresql-libs

답변

맥 OS (이전에 맥 OS XOS X )를 사용 브루을 적절한 헤더를 설치합니다 :

brew install postgresql

그런 다음 실행

gem install pg

작동해야합니다.

또한, 대신 전체를 설치하는 postgresql작업을 수행 할 수 있습니다 brew install libpq올바른을 수출 PATHPKG_CONFIG_PATH같은 ‘주의 사항’섹션에 설명


답변

또한 시도했지만 gem install libpq-dev이 오류가 발생했습니다.

Can't find the 'libpq-fe.h header
*** extconf.rb failed ***

그러나 sudo apt-get(Ruby on Rails와 함께 사용하지 않으려 는) 설치가 작동한다는 것을 알았습니다.

sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04

그때 나는 할 수 있었다

gem install pg

문제없이.


답변

다른 방법으로 해결할 수 있습니다. 시스템에서 라이브러리를 찾지 못했습니다. 따라서 PostgreSQL 기본 웹 사이트의 앱을 사용하여 설치했습니다. 필자의 경우 (OS X) /Library/PostgreSQL/9.1/include/설치가 끝나면 파일이 발견되었습니다 . PostgreSQL이 이미 설치되어있는 경우 시스템에 따라 파일이 다른 곳에있을 수도 있습니다.

gem 설치를위한 추가 경로를 추가하는 방법대한 이 링크 덕분에 다음 명령으로 gem을 lib로 지정할 수 있습니다.

export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg

그 후에는 누락 된 라이브러리를 찾을 위치를 알기 때문에 작동합니다. 경로를 libpq-fe.h에 적합한 위치로 바꾸십시오.


답변

libpq-fe.h 헤더를 찾을 수 없습니다

CentOS 7.0.1406 에서 다음 명령을 실행하여 성공했습니다 .

~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config

또는pg 이 옵션 으로 항상 설치하도록 번 들러를 구성 할 수 있습니다 (배포 환경에서 번 들러를 실행하는 데 도움이 됨)

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config

답변

의 경우 에 CentOS 6.4,

yum install postgresql-devel
gem install pg

잘 작동했습니다!


답변

기록만을 위해서:

PostgresApp가 포함 된 OS X의 Ruby on Rails 4 애플리케이션 (이 경우 0.17.1 버전 필요-오래된 프로젝트) :

gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config