Rails 3-pg gem을 설치할 수 없습니다.


98

번들 (번들 설치)을 실행하려고하면 항상

Installing pg (0.13.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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=/Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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 /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection.
Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out
An error occured while installing pg (0.13.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.13.2'` succeeds before bundling.

Mac OS X 10.6을 사용하고 있으며 설치된 PostgreSQL 버전은 9.1입니다. 문제가 libpq-dev 에 있음을 발견했습니다 . 어떻게 설치 / 수정할 수 있습니까?


2
Mac에 postgres를 어떻게 설치 했습니까?
shingara

1
이런 식으로
user984621

on_click 설치 프로그램? Flink? 또는 MacPort?
shingara

이 방법으로 설치하려고 시도 sudo port install libpq-dev했지만 또 다른 문제- Error: Port libpq-dev not found To report a bug, see <http://guide.macports.org/#project.tickets>. 즉 ... 여전히 몇 가지 문제가 끔찍
user984621

1
이 질문을보십시오 : [여기] [1] [1] : stackoverflow.com/questions/10321189/…
banditKing

답변:


78

오류 로그에 명시된대로 pg_config의 경로를 전달해야합니다. 다음을 사용하여 gem을 설치하십시오.

gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'

pg_config가 어디에 있는지 확실하지 않고 Linux 또는 Mac에 있다고 가정하면 다음 명령을 실행할 수 있습니다.

which pg_config

pg-config는 postgres를 설치 한 방법에 따라 다른 위치에있을 수 있습니다.


참고로 Postgres 사이트의 바이너리 패키지에는 개발 헤더 나 pg_config프로그램이 포함되어 있지 않습니다 .
tadman

3
여기에있는 바이너리 패키지 : enterprisedb.com/products-services-training/pgdownload#osx 확실히 pg_config(예 : /Library/PostgreSQL/9.1/bin/pg_config9.1.x의 경우) 및 개발 헤더를 모두 포함합니다 . pg개발중인 gem 을 테스트하는 데 사용합니다 .
Michael Granger

8
which pg_config보다 빠르지 않을까요 find / -name pg_config?
Justin D.

명령 줄 인수를 약간 조정했습니다. 버전을 현재 버전으로 바꾸면 정상적으로 작동합니다. 내 명령 줄은 다음과 같습니다. sudo env ARCHFLAGS = "-arch x86_64"gem install pg---with-pg-include = / Library / PostgreSQL / 9.1 / include / --with-pg-lib = / Library / PostgreSQL / 9.1 / lib /
Rod Paddock 2013

13
OSX에서는 brew를 사용하여 헤더를 가져올 수도 brew install libpqxx있으며 모든 것이 잘 될 것입니다.
Vetsin

99

Linux에서 실행중인 경우 저에게 효과가있는 것에 관심이있을 수 있습니다.

sudo apt-get install postgresql
sudo apt-get install libpq-dev

그때

gem install pg

그때

bundle install

소스 : http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac


1
감사합니다. 제 경우에는 번들 gem install pg를 실행할 필요가 없습니다
valk

21
OS X에 적합하지 않습니다.
dfrankow

1
2013 년 11 월 우분투 13.04를 실행하면서 나를 위해 일했습니다!
Starkers 2013

잘못된 OS에 대한 것이 분명한데 왜 이렇게 많은 찬성표가 있습니까?
sevenseacat 2013

1
@sevenseacat에는 사용해야하는 OS가 명시되어 있습니다. 그리고 분명히 Linux OS를 사용하는 많은 사람들이이 문제를 조사 할 때이 답을 찾고 있습니다.
EE33

57

Postgress.app 을 사용하는 경우 명령 줄 도구에 액세스해야 합니다 . 터미널 또는 PATH 프로필 에 다음 줄을 입력합니다 .

 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

gem install pg이제 작동합니다. (이것은 나를 위해 일한 것입니다.)

참고 새 버전 경로는 다음과 같습니다.

/Applications/Postgres.app/Contents/Versions/<version>/bin

3
정말 고마워! 나는 작동하지 않는 일을 겪으면서 30 분을 보냈고 마침내 이것이 여기에 묻혀있는 것을 발견했습니다. : D
Peter Brown

1
양조가 필요없는 훌륭한 솔루션.
lucian303

7
93 버전에서 Postgre.app 패치가 변경되었습니다. 현재 상태 : /Applications/Postgres93.app/Contents/MacOS/bin
Alain

2
내 bin이 매우 다른 위치에 있었지만 이것은 나를 위해 일했습니다.-> /Library/PostgreSQL/9.3/bin
Jeremiah

5
이것은 지금 /Applications/Postgres.app/Contents/Versions/9.3/bin입니다-Postgres.app을 사용하는 경우 9.3.5부터
Ashley


12

libpq 검색 :

brew search libpq

출력해야 함 libpqxx

그런 다음 설치해보십시오.

brew install libpqxx


7

설치 후 지침을 따르십시오. http://postgresapp.com/documentation/configuration-ruby.html

pg gem을 설치하려면 $ PATH를 올바르게 설정했는지 확인한 다음 ( http://postgresapp.com/documentation/cli-tools.html에 지정된대로 ) 다음을 실행합니다.

sudo ARCHFLAGS="-arch x86_64" gem install pg

나는 강하게 두 페이지를 읽어 보시기 바랍니다. 그냥 훑어보고 내 인생의 1 시간을 잃었습니다. 그것들을 읽으면 문제가 해결됩니다.


OSX 10.9.5, 기본 루비 버전 2.0, rbenv 로컬 버전 1.9.3에서 작동합니다.
jlucasps

OSX 10.11에서 작동 감사합니다
Yarin

OSX 10.11.4에서 작동합니다. 감사!!
Martyn Chamberlin

3

내가 가진 문제는 어떤 이유로 /usr/bin/gcc-4.2로 컴파일을 시도했다는 것입니다. 실패한 컴파일 라인에서 예외를 발생시키기 위해 mkmf.rb (스택 추적에서 보았습니다)의 try_cpp를 변경하여 발견했습니다.

gcc를 gcc-4.2에 소프트 링크했고 작동했습니다.

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

gcc-4.2를 사용하려는 이유는 무엇입니까? 몰라.

실제 컴파일 라인 :

/usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/Cellar/postgresql/9.1.4/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe  conftest.c -o conftest.i (RuntimeError)

3

동일한 문제가 발생했지만 Postgres가 설치되었습니다.

/Library/PostgreSQL/9.3

다음을 추가하여 ~ / .bash_profile을 업데이트했습니다.

export PATH=/Library/PostgreSQL/9.3/bin:$PATH

새 터미널을 열고 실행 bundle update하면 저에게도 효과적이었습니다. 고마워 아리.


하지만 나를 위해 버전을 확인하는 작업이 필요에 다음 수출의 PATH = / 응용 프로그램 / Postgres.app / 내용 / 버전이 / 9.4 / 빈 : $ PATH
Prateep 쿨

1

빌드 구성 옵션을 설정하고 옵션 없이 bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config사용할 gem install pg수 있습니다 (pg_config에 대한 경로가 다를 수 있습니다.이 경로는 Postgresapp 9.3.5.0 용입니다)


1

openSUSE13.1 KDE 시스템에서 동일한 문제가 발생했습니다. 그 문제가 발생하기 전에 나는 패키지 만 설치 postgresql하고 명령을 postgresql-server사용했습니다 zypper. 그런 다음 2 개의 추가 패키지를 다시 설치했습니다.

[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

그리고 다시 bundle install뛰고 성공 !!!



0

먼저 Homebrew 버전을 제거하십시오. --force 옵션은 모든 버전을 제거합니다.

brew rm postgresql --force

버전에 따라 경로를 변경하십시오.

sudo /sbin/SystemStarter stop postgresql-8.4
sudo rm -rf /Applications/PostgreSQL\ 8.4
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-8.4
sudo rm -rf /Library/PostgreSQL/8.4
sudo dscl . delete /users/postgres

/ etc / profile을 편집하고 "postgres"를 참조하는 모든 줄을 삭제합니다.

nano /etc/profile

PostgresSQL 설치

brew update
brew install postgresql

PG GEM 설치

gem install pg

그게 다야. 문안 인사.


0

먼저 lib 파일로 이동하여 터미널에 postrgresql 파일이 있는지 확인할 수 있습니다. cd ~ / opt / local / lib /로 이동 한 다음 ls를 입력하고 Enter 버튼을 누릅니다. 그러면 lib 디렉토리에있는 모든 파일 목록이 표시됩니다.

1. postreseql이없는 경우 macports를 통해 다운로드 할 수 있습니다. sudo 포트 설치 postgresql93 @ 9.3.2_1

이제 번들 설치를 시도하는 폴더로 CD를 다시 넣으십시오.

  1. pg가 postgesql 파일과 함께 작동하도록하거나 방금 다운로드 한 gem install pg---with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

이제 번들 설치 실행



0

El Capitan에서 나를 위해 일한 것은 시스템 기본값에서 2.3.1로 루비를 업그레이드하는 것이 pg젬에 필요한 올바른 라이브러리를 찾는 것처럼 보였습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.