[ruby-on-rails] pg gem을 설치하려고 할 때 ‘libpq-fe.h 헤더를 찾을 수 없습니다
Ruby on Rails 3.1 프리 버전을 사용하고 있습니다. PostgreSQL을 사용하고 싶지만 문제는 pg
gem을 설치하는 것 입니다. 다음과 같은 오류가 발생합니다.
$ 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-dev
OS에 맞는 설치 또는 이에 상응하는 것을 시도하십시오 .
- 우분투 / 데비안 시스템 :
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 X 및 OS X )를 사용 브루을 적절한 헤더를 설치합니다 :
brew install postgresql
그런 다음 실행
gem install pg
작동해야합니다.
또한, 대신 전체를 설치하는 postgresql
작업을 수행 할 수 있습니다 brew install libpq
올바른을 수출 PATH
과 PKG_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
답변
답변
기록만을 위해서:
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