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 gem및 which 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.