Mavericks를 사용하여 Mac에 PG gem을 설치할 수 없음


103

내 레일 프로젝트를 다시 작업하기 위해 pg gem을 설치하려고합니다. 하지만이 오류가 발생합니다.

기본 확장 빌드. 시간이 걸릴 수 있습니다 ... 오류 : pg 설치 오류 : 오류 : gem 기본 확장을 빌드하지 못했습니다.

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If

빌드 실패, --with-pg-config = / path / to / pg_config로 libpq-fe.h 확인을 다시 시도하십시오 ... no 'libpq-fe.h 헤더를 찾을 수 없음 * extconf.rb 실패 * 어떤 이유로 인해 Makefile을 만들 수 없습니다. 필요한 라이브러리 및 / 또는 헤더가 부족한 것 같습니다. 자세한 내용은 mkmf.log 파일을 확인하십시오. 구성 옵션이 필요할 수 있습니다.

제공되는 구성 옵션 : --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 / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby ​​--with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir} / include- -with-pg-lib --without-pg-lib = $ {pg-dir} /

Gem 파일은 검사를 위해 /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0에 설치되어 있습니다. /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out에 기록 된 결과

나는 stackoverflow에서 찾은 모든 것을 시도했지만 여전히이 오류가 발생합니다.

brew를 사용하여 postgresql을 설치하려고하면 다음 경고가 표시됩니다.

경고 : postgresql-9.2.4가 이미 설치되어 있으며 연결되지 않았습니다.

링크를 시도하면

brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... 경고 : postgresql을 연결할 수 없습니다. 연결 해제 중 ...

오류 : 파일을 심볼릭 링크 할 수 없습니다 : /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7에 쓸 수 없습니다. 권한을 변경해야합니다.

도와주세요

참고 : 나는 이미 매버릭을위한 명령 줄 도구를 설치했습니다.


homebrew를 사용하여 제거하고 다시 설치하려고하면 다음 오류가 발생합니다.

==> http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2 다운로드

################################################# ################ 100.0 %

==> 패치 패치 파일 src / pl / plpython / Makefile 패치 파일 contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4- datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> make install-world ==>주의 사항

빌드 노트

PostgreSQL 9 빌드가 실패하고 버전 8.x가 설치되어있는 경우 먼저 이전 버전을 제거해야 할 수 있습니다. 참조 :
https://github.com/mxcl/homebrew/issues/issue/2510

데이터베이스 생성 / 업그레이드

처음 설치하는 경우 다음을 사용하여 데이터베이스를 만듭니다. initdb / usr / local / var / postgres -E utf8

PostgreSQL의 이전 주 버전 (9.2 이전)에서 기존 데이터를 마이그레이션하려면 http://www.postgresql.org/docs/9.2/static/upgrading.html을 참조하십시오.

확장로드

기본적으로 Homebrew는 사용 가능한 모든 Contrib 확장을 빌드합니다. 사용 가능한 모든 확장 목록을 보려면 psql 명령 줄에서 다음을 실행합니다.
SELECT * FROM pg_available_extensions;

확장 이름을로드하려면 원하는 데이터베이스로 이동하여 다음을 실행하십시오. CREATE EXTENSION [확장 이름];

예를 들어, 현재 데이터베이스에서 tablefunc 확장을로드하려면 다음을 실행하십시오. CREATE EXTENSION tablefunc;

는 CREATE EXTENSION 명령에 대한 자세한 내용은 다음을 참조하십시오
http://www.postgresql.org/docs/9.2/static/sql-createextension.html를 자세한 내용은 확장에, 참조 :
http://www.postgresql.org/ docs / 9.2 / static / contrib.html

다른

일부 시스템은 공유 메모리 프로비저닝이 필요할 수 있습니다.
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC postgres gem을 설치할 때 ARCHFLAGS를 포함하는 것이 좋습니다. ARCHFLAGS = "-arch x86_64" gem 설치 pg

sudo없이 gem을 설치하려면 Homebrew 위키를 참조하세요.

로그인시 postgresql을 시작하려면 : ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents 그런 다음 지금 postgresql을로드하려면 : launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist 또는 , launchctl을 원하지 않거나 필요하지 않으면 다음을 실행할 수 있습니다. pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start 경고 : postgresql을 연결할 수 없습니다. 연결 해제 중 ... 오류 : brew link단계가 성공적으로 완료되지 않았습니다. 수식이 빌드되었지만 / usr / local에 심볼릭 링크되지 않았습니다.`brew link postgresql '을 사용하여 다시 시도 할 수 있습니다. ==> 요약 🍺 /usr/local/Cellar/postgresql/9.2 .4 : 파일 2831 개, 38M, 4.9 분 내에 빌드 됨


해결책:

폴더의 권한을 변경하기 위해이 명령을 실행합니다.

sudo chown jeanosorio / usr / local / share / man / man7

그때

brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 symlinks created

그리고 마지막으로:

sudo ARCHFLAGS = "-arch x86_64"gem 설치 페이지

가져 오기 : pg-0.17.0.gem (100 %) 네이티브 확장 빌드. 시간이 좀 걸릴 수 있습니다 ... pg-0.17.0을 성공적으로 설치했습니다.

답변:


252

MacPorts를 사용하지 않으려면 Postgres 앱을 다운로드 하여 Application 디렉터리에 넣을 수 있습니다.

그런 다음 새로 다운로드 한 위치를 지정합니다 pg_config.

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

헤더 누락 문제가 발생 include하면 앱 의 디렉토리를 지정해보세요 .

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'

11
구성 환경 변수를 설정하여 export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
번 들러를

8
Postgres 9.3 (오늘 현재 최신 버전)을 사용하는 경우 다음을 수행 할 수 있습니다. gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
cavneb

Postgres93.app 사용은 작동했지만 번들 설치를 위해 PATH 환경 변수에 bin 경로를 추가해야했습니다.
mkhatib

5
이것을 사용하여 작업해야했습니다 gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
StevenNunez 2014

1
감사! 경고 : postgresql을 연결할 수 없습니다. 링크 해제 중 ... 오류 : 파일을 심볼릭 링크 할 수 없습니다 : ... 쓰기가 불가능합니다. 권한을 변경해야합니다. 그리고 모든 것이 brew 오류입니다 .postgresql을 brew 설치 / 링크 한 후 설치는 다음으로 이동합니다. Linking /usr/local/Cellar/postgresql/9.3.4 ... 이것은 내 경우에는 매우 충돌하는 폴더이며 pg 및 gem 설치를 사용하여 다운로드합니다. 그것은 문제를 해결합니다 감사합니다 !!!!!!
d1jhoni1b 2014

74

brew를 사용하여 postgresql

brew install postgresql

설치된 brew에 pg_config가 있는지 확인하십시오. 나는 내 것을 찾았다

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

다음을 통해 확인하십시오.

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

완료되면 다음을 사용하여 pggem을 설치하십시오.

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

2
여러 가지를 시도한 후에 나를 위해 일했습니다. 올바른 버전 번호 (제 경우에는 9.3.5_1)를 사용해야했습니다!
HK

1
사용하여 ls /usr/local/Cellar/postgresql/9.*/bin/pg_config실제 경로와 결합 찾기 위해env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
예스퍼 Grann 라우르센

여기에서 일어나는 일에 대한 좀 더 자세한 설명 deveiate.org/code/pg/README-OS_X_rdoc.html
Julia Usanova

35

MacPorts를 통해 postgres를 설치할 수 없었습니다. 대신 Postgress.app을 설치했습니다 . 그리고 전화

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

참고 : 최신 버전 (최소 9.3)에서 경로는 실제로 다음과 같습니다. /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config


2
이것은 작동하지만 때때로 Postgres.app이 Postgres <NN> .app으로 설치되며 여기서 NN은 버전 번호입니다.
nimrodm dec

11

homebrew가 있으면 다음을 입력하십시오.

$ brew install postgresql


1
이것은 나를 위해 일했습니다-PostgreSQL이 이미 설치되어 있지만 헤더를 새로 고치기 위해 다시 설치해야했다고 생각합니다 (?) 그런 다음 할 수 있습니다gem install pg
Crimbo

10

postgresql 설치 프로그램을 직접 사용하려는 경우 다른 대안이 있습니다. 매버릭스로 업데이트 한 후 시작하려면 몇 가지 후프를 거쳐야합니다. 내가 한 일은 다음과 같습니다.

먼저 xcode 명령 줄 도구를 설치합니다.

xcode-select --install

최신 버전의 PostgreSQL (9.3.1)을 다운로드하여 설치합니다. 필자의 경우 그래픽 설치 프로그램을 사용했습니다. 다음은 다운로드 페이지 링크입니다.

http://www.enterprisedb.com/products-services-training/pgdownload#osx

제공되는 모든 기본값을 선택하십시오. 내 경우에는 postgres를 다음 디렉토리에 설치했습니다. 다른 디렉토리에 설치했다면 곧 필요할 것이므로 선택한 경로를 기억하십시오.

/Library/PostgreSQL/9.3

이제 최신 pg gem (0.17.0)을 설치하려면 명령 줄에서 몇 가지 옵션을 전달해야합니다. 이것이 내가 사용한 것입니다.

ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

다른 위치에 postgres를 설치했다면 pg_config 파일의 경로를 수정해야합니다.

pg gem을 설치하는 동안 누락 된 'libpq.5.dylib'파일에 대해 불평하는 경우이 파일의 실제 위치를 가리키는 심볼릭 링크를 생성해야합니다. Postgres는 / usr / local / lib / 디렉토리에서 그것을 찾고 있으므로 거기에 심볼릭 링크를 만들고 실제 위치로 리디렉션합니다. 제 경우에는 다음을 실행해야했습니다.

sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib

일단 그렇게했다면 gem을 다시 설치해보세요. 그러면 저에게했던 것과 같은 방식으로 작동하기를 바랍니다.


9

나를 위해 Yosemite에서는 pg_config경로 를 지정할 필요가 없었습니다 . 다음이 완료되었습니다.

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg

아키텍처 플래그가 핵심 인 것 같습니다.


5

제 경우에는 (Mavericks에서 PG 0.16.0이 필요했습니다) MacPorts 를 통해 postgresql을 설치했습니다.

sudo port install postgresql90

그리고

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

최신 버전의 경우 -v '0.16.0'을 공제해야합니다.

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Homebrew가 설치되어있는 경우 공존에 대해 읽기 전에 MacPorts를 설치하지 마십시오.


5

--with-pg-configBundler의 구성 파일에 누락 된 부분 을 넣으십시오 /Users/<your_user>/.bundle/config.

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs

그런 다음 bundle install다시 실행 하십시오.


5

그것은 나를 위해 작동합니다! (Postgres 93, Mac OX 10.9.1) @ http://postgresapp.com/을 다운로드 하고

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

4

번들 설치가 3 일 동안 멈췄습니다. env ARCHFLAGS = "-arch x86_64" gem install pg--- with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config 추가와 같은 모든 것을 시도 했습니다.

이 명령 후에 pg gem이 설치되는 것을 볼 수 있었지만 여전히 번들 설치에서 설치되지 않았습니다. gem 'pg'를 제외하고 Gemfile에서 무엇을 작성해야하는지 알고 있기 때문에 고통 스러웠습니다.

마침내 나를 위해 일한 것은 내 pg_config가 /Library/PostgreSQL/9.3/bin/pg_config에 있고 기본적으로 Gemfile 번들 설치가 / usr / local / bin / pg_config에 있음을 발견하는 것이 었습니다.

방금 다음 명령을 실행했는데 마법이 일어났습니다. 번들 구성 build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config


4

제 경우에는 아치 플래그, OS X 10.10.3 및 posterApp 9.4를 지정하지 않으면 작동하지 않았습니다.

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

이 문제를 해결하는 가장 쉬운 방법은 Postgres.app 을 사용 하고 내 환경 변수를 설정 gem install pg하여 --with-pg-config플래그 를 요구하는 대신 작동하도록하는 것입니다 .

Homebrew Cask 사용 ,

brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile

# now it just works
gem install pg

2

이것이 나를 위해 일한 것입니다.

gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

2

제 경우에는 homebrew를 통해 설치된 버전을 제거하고 Postgres.app (작성 당시 v9.3.4.2)로 전환했습니다 .

환경 아키텍처 플래그를 앞에 붙이고 경로를 지정할 때만 작동하는 것처럼 보였습니다 pg_config. 마일리지가 다를 수 있으므로이 답변pg_config의 위치 에 따라 도움 될 수 있습니다.

다음은 나를 위해 일한 마지막 완전한 명령입니다.

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 

2

sudo ARCHFLAGS = "-arch x86_64"gem install pg---with-pg-config = / usr / local / bin / pg_config


이것은 또한 다음과 같이 번들 설치로 나를 위해 일했습니다.ARCHFLAGS="-arch x86_64" bundle install
d4n3

1

pg gem (Mac OS X Mavericks 사용)과 관련하여 번들 설치를 실행할 때 동일한 오류가 발생했습니다. 몇 시간의 조사 끝에 해결책을 찾았습니다. homebrew를 사용하여 postgres를 설치했습니다.

brew install postgres

설치 후 postgres를 사용하여 새로운 rails 앱을 만들었습니다. 나는 달렸다

bundle install

아무 소용이 없습니다 (질문과 동일한 오류가 있음). 나는 사용했다

which psql

내 postgres가 설치된 위치를 파악하기 위해

/usr/local/bin/psql

번들 설치를 다시 실행하기 전에 다음을 실행하여 전역 경로를 build.pg로 변경해야했습니다.

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

그런 다음 번들 설치를 다시 실행하고 짜잔! brew가 설치 한 postgres를 사용했습니다.


1

최신 Postgres 앱이 설치된 OS X Mavericks에서 sudo 권한으로 다음을 수행하십시오.

env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

1

Xcode 5.1.1과 함께 10.9.3에서 나를 위해 일한 것은 다음과 같습니다.

brew update
brew install postgresql 
gem install pg -v '0.17.1'

0.17.1 페이지가 필요했습니다.


1

분실 영혼은 여전히 해결이 문제가 발생하고 있습니다 outthere를 들어 brew설치 루비포스트 그레스를 . 확인하기위한 다음 단계는 다음과 같습니다.

  • 의 버전이 플래그 ruby와 함께 설치되지 않았는지 확인하십시오 --universal.
    • 이것은 파악하기 가장 어려웠던 것이었고, --universal문제의 최종 원인이었던 것이 었습니다.
  • 및 명령을 사용 postgresql하여 제대로 초기화 되었는지 확인하십시오 (이 작업을 수행하는 단계는 다른 곳에서 찾아보십시오).initdbcreatedb
  • Xcode(선택 사항) command line tools이 설치되어 있는지 확인하십시오 . 터미널에서 :
    • xcode-select --install
    • sudo xcodebuild -license (Xcode가 설치된 경우) 또는 응용 프로그램을 열고 라이센스 계약에 동의하십시오.
    • 컴퓨터 재부팅
  • which ruby, which gemwhich postgres표시해야합니다 /usr/local/bin/ruby, /usr/local/bin/gem그리고 /usr/local/bin/postgres정중하게.
  • 터미널에서 다음을 실행하십시오.

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • 또는
    • env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • 이 모든 단계가 충족되었는지 확인하여 다음 오류를 해결할 수있었습니다.

    • ruby.h 헤더 오류
    • developer tools installed first 오류

1

우선 pg_config 위치 찾기

sudo find / -name "pg_config" -print

대답은 내 구성의 /Library/PostgreSQL/9.1/bin/pg_config입니다 (MAC Maverick).

그런 다음 아래와 같이 설치하십시오.

gem install pg---with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config

이것이 작동하지 않으면 postgresql을 어떤 방식으로 설치했는지 확인하십시오.

양조 / 맥 포트 / 설정

그런 다음 동일한 관련 옵션을 시도해야합니다.

감사합니다.


0

나는 똑같은 문제를 가지고 있었고 이것이 내가 찾은 해결책이었습니다.

를 실행 brew doctor하면 일부 폴더에 대한 권한을 변경 한 brew없이 설치했음을 알리므로 해당 폴더에 대한 권한을 다시 변경해야합니다.

에서 /usr/local/share/man할 수있는 작업은 다음과 같습니다.

sudo chown [yourusername] man7

그리고:

brew link postgres

도움이 되었기를 바랍니다.


0

마찬가지로 Mavericks '번들 업데이트'를 설치 한 후 pg gem에서 오류가 발생했습니다.이 오류는 로컬이 아닌 프로덕션에서만 사용됩니다.

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

수정 사항은 'brew uninstall postgresql'과 'brew install postgresql'이었습니다. 그 후 즉시 '번들 업데이트'를 성공적으로 실행할 수있었습니다.



0

여기에서 모든 것을 시도한 후에도 여전히 설치되지 않으면 Xcode를 열고 라이센스 계약에 동의하십시오.


0

저에게 오류 메시지는 다음과 같습니다.

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...

checking for pg_config... no

No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

오류 메시지에서 알 수 있듯이 "pg_config"명령 / 스크립트를 실행하려고합니다. 따라서 Postgres 설치 위치에 관계없이 경로에 추가하십시오. 제 경우에는 다음과 같이했습니다.

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

그때

bundle

그게 다야.


-1

Postgres 9.4 :

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config

19 개의 다른 답변의 홍수로 인해 손실되는 것을 피하기 위해 약간의 설명이 좋을 것입니다.
Brad Koch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.