OS X에 PG gem 설치-기본 확장 빌드 실패


183

다른 많은 사람들이 pg gem을 설치하는 데 문제가있는 것 같습니다. 다른 사람들을 위해 제기 된 해결책 중 어느 것도 나를 위해 일하지 않았습니다.

pg gem과 postgres.app를 설치하려고했습니다. pg gem은 설치되지 않습니다. 내가 얻는 첫 번째 오류는 다음과 같습니다.

pg (0.17.0) 설치 중 오류가 발생하여 번 들러를 계속할 수 없습니다. gem install pg -v '0.17.0'번들로 제공하기 전에 성공 했는지 확인하십시오 .

내 gem 설치를 pg의 구성으로 지정하는 것에 대한 설치 조언은 다음 오류 메시지와 함께 실패합니다 (이 포럼의 다른 많은 사람들이 발견했습니다).

Failed to build native extensions... Results logged to /Users/melanie/.rvm/gems/ruby-1.9.3-p448/gems/pg-0.17.0/ext/gem_make.out

추가 정보를 찾기 위해이 로그 파일을 찾거나 액세스하는 방법을 모르겠습니다.

sudo apt-get install 명령을 사용하려고하면 오류 메시지 (명령을 찾을 수 없음)가 나타납니다. 지난 6 시간 동안이 포럼을 꼼꼼히 살펴보면서 레일즈 프로젝트를 수행하기 위해 각 조언을 시도했습니다.

경로를 변경하는 방법 또는 구체적으로 필요한 변경에 대한 조언을 찾을 수 없습니다. 내 which pg_config파일 소스를 반환합니다. 그 설정을 사용하여 pg를 설치하는 명령과 함께 사용했습니다. 실패합니다.

이것에 문제가있는 사람들이 너무 많습니다. 많은 답변이 사제를 제안합니다. 다른 문제가 발생했기 때문에 제거해야했습니다.


1
이봐 요, 몇 가지 질문이 있습니다.-Mac을 사용하고 있습니까? 홈브류에 문제가 있습니까? (ps, 당신이 언급했듯이 apt-get은 우분투 (그리고 데비안 기반 사촌)를위한 것입니다)-어떤 postgres 버전이 있습니까? psql -v쉘에서 실행 해보 십시오. -어떤 루비 버전을 사용하고 있습니까? 1.9.3처럼 보이지만 무엇을 ruby -v제공합니까?
rmosolgo

psql이 다음에 추가되도록 추가해야합니다. /Applications/Postgres-1.app/Contents/MacOS/bin/psql; 출구; psql (9.3.0)이지만 어떤 psql이 반환합니까 : usr / bin / psql
Mel

안녕하세요, 이것을 봐 주셔서 감사합니다. 내 psql은 v 9.3.0이고 루비는 v 1.9.3
Mel

1
Postgres.app에 대한 @paninapress의 답변을 참조하십시오. 그것은 나를 위해 훌륭했고 다른 Postgres 인스턴스를 설치할 필요가 없습니다.
Jamon Holmgren

답변:


442

나에게도 같은 오류가 발생했으며 OS X 10.9 (Mavericks)를 다운로드 할 때까지 발생하지 않았습니다. 한숨, 또 다른 OS 업그레이드 두통.

여기에 홈 브루를 사용하여 수정 한 방법이 있습니다.

  • 다른 Xcode 도구 빌드를 설치하십시오 ( brew update터미널에 입력 하면 Xcode 빌드 도구를 업데이트하라는 프롬프트가 표시됩니다)
  • brew update
  • brew install postgresql

그 후 저를 gem install pg위해 일했습니다.


7
Mavericks 업그레이드 후 Rails DB를 수정하려는 이틀의 두통으로 인해 많은 도움이되었습니다.
Deborah

4
이것은 새로운 Mavericks 설치에서 나에게도 효과가있었습니다. 감사!
marcamillion

1
내 정신을 구해 주셔서 감사합니다!
Jim

1
여전히 작동합니다. 프로젝트는 Ruby 2.2.0에서 구식 앱을 지원하지만 모두 동일합니다. 감사합니다.
TristanZimmerman

1
1. brew update2. brew install postgresql3. gem install pg4.bundle install
kai_onthereal

223

Ubuntu를 사용하는 경우 다음 lib 파일을 설치하십시오.

sudo apt-get install libpq-dev

그리고

gem install pg

나를 위해 일했다.


4
나도 일했다. 우분투 13.10을 사용하고 있습니다.
rafaelkin

4
정확하게 입력했는지 확인하십시오. 그렇지 않다 libpg-dev; P가 아닌 Q! 어려운 길을 알아내는 데 10 분이 걸렸습니다.
tir38

1
Amazon Linux의 경우yum install postgres-devel
andrewtweber

1
우분투 14에서 나를 위해 일했습니다!!
18bytes

6
CentOS의 경우yum install postgresql-devel
septerr

49

OS X Mavericks (버전 10.9)를 사용하고 있습니다

위의 내용을 실행할 때 다음과 같은 메시지가 나타납니다. PostgreSQL 9 빌드가 실패하고 버전 8.x가 설치되어있는 경우입니다.

그래서 나는 다음 명령을 실행합니다 :

ARCHFLAGS="-arch x86_64" gem install pg

그리고 이것은 나를 위해 일했습니다. 이것이 누군가를 돕기를 바랍니다 :)


2
+1, 나는 다른 사람들을 시도했지만 마침내이 솔루션으로 gem으로 pg를 설치했습니다.
BMW

1
마찬가지로 +1도 마찬가지로 postgresql이 brew를 통해 이미 설치되어있는 솔루션이기도합니다. 게시물 주셔서 감사합니다 존.
Jason Hoekstra

5
nb 어떤 이유로 든 루트로 설치하는 경우 sudo는 변수 앞에 옵니다.sudo ARCHFLAGS="-arch x86_64" gem install pg
Noach Magedman

실제로, 나는 그것을 실행할 때마다 이것을 필요로하기 bundle install때문에 그것을 ~/.bash_profile수출품으로 넣었습니다.)
Ja͢ck

42

Ok 나는 또한이 문제 (psql은 v 9.3.0이고 ruby는 v 2.1.2)를 가지고 있었고 나를 위해 일한 해결책은 번들 구성 설정을 먼저 설정하는 것이 었습니다.

bundle config build.pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

이 답변은 마침내 그것을 알아내는 데 도움이되었습니다 : https://stackoverflow.com/a/9235107/3546680


6
postgres.app를 사용 하는 경우이 방법이 선호 됩니다. 네이티브 확장 문제를 해결할 수 브루을 사용하지만에서도 Sayanees '답변을 참조하십시오이 포스트 그레스 응용 프로그램 (포트 할당 등)의 충돌을 만듭니다 가진 stackoverflow.com/questions/19569031/...
Epigene

4
이것은 Postgres.app에 대한 정답입니다.
Jamon Holmgren

몇 분 전에 성공적으로 시도한 Mojave에서 잘 작동합니다.
microspino

23

몇 시간 동안 모든 것을 시도했지만 다음은 마침내 그것을 고쳤습니다 (OS X 10.9.4에 있습니다).

  1. Xcode 명령 행 도구 설치 (Apple Developer 사이트)
  2. brew uninstall postgresql
  3. brew install postgresql
  4. ARCHFLAGS = "-arch x86_64"gem 설치 pg

감사합니다. 4 단계에 sudo를 사용했는데 그게 나쁜 것입니까? 어떻게 피할 수 있습니까?
Roy

@ Roy-도움을 줘서 기쁘다 :)-괜찮을 것입니다. 아마도 모든 사용자를 위해 설치한다고 생각할 때 sudo를 사용하지 않으려 고합니다.하지만 시스템의 유일한 사용자 인 경우 아마도 그렇게 큰 거래는 아닙니다. .
Ali Yazdani

brew uninstall postgresql그리고 brew install postgresqlOS X 10.10 및 10.11에 필요한 단계는 아니다. 그냥 gem uninstall pg다음, (모든 버전을 제거)를 확인 bundle하거나 gem install pg다시, 그리고 네이티브 확장이 OS X 버전에 대한 새로운 명령 줄 도구를 사용하여 재 구축됩니다.
Olivier Lacan


6

마찬가지로, Mavericks를 설치 한 후 bundle updatepg gem에 오류가 발생했습니다. 이는 pg gem에서 로컬에서만 사용되지 않고 프로덕션에서만 사용됩니다.

Brew를 사용하여 패키지를 관리하고 postgresql이 이미 설치되었지만 여전히 'no pg_config'오류가 발생했습니다.

그 때의 해결책은 바로 brew uninstall postgresql그 것이었다 brew install postgresql. 그 후 나는 즉시 성공적으로 실행할 수있었습니다 bundle update.


6

"올바른"답은 먼저 다음을 추가하여 ~/.profile( .zshrc또는 ~/.zprofileZSH를 사용하는 경우) Postgres.app에 대해 PATH를 올바르게 구성하는 것입니다 .

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

그런 다음 터미널에서 새 탭이나 창을 열고 다음을 사용하여 pggem을 설치하십시오 .

ARCHFLAGS="-arch x86_64" gem install pg

여기에 문서화 :


5

/ Applications에 Postgres가 설치된 OSX에서는 다음 명령을 실행하기 만하면됩니다 ( 버전에 따라 0.20 & 9.4 변경 ).

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

당신은해야합니다 :

'--with-pg-config = / Applications / Postgres.app / Contents / Versions / 9.4 / bin / pg_config'를 사용하여 기본 확장 프로그램 빌드하기 다소 시간이 걸릴 수 있습니다 ... pg-0.20을 성공적으로 설치했습니다.


인수가 실제로 제공되기 전에 왜 하이픈 2를 더 사용해야하는지 설명 할 수 있습니까?
Akash Agarwal

3

나는 이것에 하루를 보냈고 여기 내가 그것을 고쳤습니다.

build.pg의 전역 값이 다음으로 설정되어 /opt/local/lib/postgresql91/bin/pg_config 있으며 postgres가 설치된 곳이 아닙니다.

build.pg의 값을 bundle config build.pg --with-pg-config=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config postgresql 설치 위치 로 바꾸어 수정했습니다 .



0

해결되었습니다! 시스템에서 PostgreSQL 라이브러리가 부족하다는 것을 알았습니다. 두 단계만으로 해결되었습니다.

brew install postgresql

그런 다음 실행

gem install pg


0

사용하고 싶지 않은 사람들을 위해 brew.

  1. 다운로드 PostgreSQL응용 프로그램을 .
  2. macOS 기본 지침에 따라 설치하십시오.
  3. 실행하는 것이 좋습니다 PostgreSQl.
  4. 운영 gem install pg -- --with-pg-config= / 경로 /로 / 위해 Postgress /에 / 당신의 / 응용 프로그램 / 폴더 /`
    • 예를 들어 내 컴퓨터에서는 /Applications/Postgres.app/Contents/Versions/12/bin/pg_config
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.