pg gem을 설치할 수 없습니다


219

사용하려고 gem install pg했지만 작동하지 않는 것 같습니다.

gem install pg 이 오류를 준다

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

C:/Ruby/bin/ruby.exe 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=C:/Ruby/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 C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out


1
@NatchiQ 링크가 끊어 졌습니까?
0112

내 경우 오류 로그는 것을 libpq내가 설치, 그래서 찾을 수 없습니다sudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
라즈

답변:



388

나는이 문제가 있었고, 이것은 나를 위해 일했다 :

postgresql-devel 패키지를 설치하면 pg_config 누락 문제가 해결됩니다.

sudo apt-get install libpq-dev

139
님이 나를 위해 일했습니다 apt-get install libpq-dev. 힌트 주셔서 감사합니다.
Ryanmt

5
pg gem Wiki 홈페이지 에서 확인 : "Ubuntu에서 / usr / bin / pg_config는 libpq-dev 패키지에 의해 제공됩니다."
Mark Berry

17
맥은 어때?
Fivell

23
@Fivell 여기에 대한 답변을 게임에 늦었지만 Homebrew가 설치되어 brew install postgresql있으면 필요한 패키지를 얻을 수 있습니다.
Alex LaFroscia

19
@Fivell brew install postgresql은 Mac에서 시도
Mahattam

91

문제는 gem 의존성이므로 pg를 설치하기 전에 "libpq-dev"를 설치했는지 확인하십시오

우분투 시스템 :

sudo apt-get 설치 libpq-dev

RHEL 시스템 :

yum 설치 postgresql-devel

맥:

brew install postgresql


7
Mac의 대답은 사실입니다. 우리가 머신에 PostgreSQL을 설치하지 않았기 때문입니다.
Hoang Le

Centos 7에서 yum install postgresql-devel'pg'.gem 설치를 위해 pg_config와 관련된 내 오류를 해결했습니다. 그런데 방금 출시 한 PostgreSQL 10
Arthur

62

gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config


3
이것은 나를 도왔다 (Centos 6.2)
TuK

14
OS X에서 나를 위해 일했지만 /Applications/Postgres.app/Contents/MacOS/bin/pg_config에 대한 경로가 있습니다 (독립형 Postgres.app가 있습니다)
Matt

10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config Postgres 앱으로 요세미티에서
twmulloy

일했다. 그러나 Mac에서는 이전 env ARCHFLAGS="-arch x86_64"에 게임 체인저가있었습니다.
Janusz Lenar

2
내가 사용 gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configOSX 10.12를 위해
팀 Krins

37

@Winfield 는 다음 과 같이 말했습니다 .

pg gem은 postgresql 클라이언트 라이브러리 를 바인딩 해야합니다 . 이 오류는 일반적으로 Postgres 라이브러리를 찾을 수 없음을 의미합니다. 설치되어 있지 않거나 --with-pg-dir=gem 설치 로 전달해야 할 수도 있습니다 .

그것보다, 당신은 --with-pg-config=그것을 설치해야합니다.

Mac에서

만일 우연히도 맥에있는 웹 사이트 번들을 통해 postgres를 설치했다면, 같은 곳에있을 것 /Applications/Postgres.app/Contents/Versions/9.3/bin입니다.

따라서 gem 설치에 전달하십시오.

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

또는 당신은 제대로 경로를 설정합니다 . PATH를 일시적으로 설정하기에는 너무 많을 수 있습니다.

export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/

2
특정 버전 :gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland

latestPostgres.app 컨텐츠 폴더 안에는 9.3이 더 이상 배송되지 않는 경우에 유용한 symlink 폴더가 있습니다. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber

24

postgresql을 설치하지 않았으므로 방금 사용하여 설치했습니다.

sudo apt-get install postgresql postgresql-server-dev-9.1

우분투 12.04.

이것은 그것을 해결했다.


최신 정보:

최신 버전을 사용하십시오.

sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3

문제가 해결되었지만 Mac (homebrew 포함)에서는 다음 명령을 실행해야했습니다.brew install postgresql
gMale

19

이것은 내 경우에 효과가 있었다.

sudo apt-get install libpq-dev

나는 사용했다 :

  • 우분투 14.04.2 LTS
  • 루비 2.2.2
  • 레일 4.2.1

12

Mac에서 Postgres.app 를 사용하는 경우이 문제를 한 번만 해결할 수 있습니다.

먼저 또는 파일 또는 이와 동등한 항목 gem uninstall pg을 편집하고 다음을 추가하십시오.~/.bash_profile~/.zshrc

# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

그런 다음 bundle installgem install pg예상대로 모두 작업을해야한다.


감사합니다, 그것은 또한 설치된 설치된 postgreSQL을 사용하여 작동합니다 # PostgreSQL bin 경로 내보내기 PATH = $ PATH : /usr/local/Cellar/postgresql/9.5.0/bin/
Benoit

9
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin sudo gem install pg

시스템에 설치된 버전의 9.1을 바꾸십시오.


1
이것은 Mac에서 나를 도왔습니다. 누구든지 기본 경로가 무엇이며 어떻게 변경하는지 알고 있습니까?
Steve

OS X Maveric에서 작동
Marek Kirejczyk

5

Mac OS (El Capitano)에서. 간단하게 사용할 수 있습니다 :brew install postgresql


1
예! 이것이 내가 필요한 전부였습니다! 깨끗한 OS X에 설치, Postgres.app 없음
Lane Rettig

3

pg gem에는 postgresql 클라이언트 라이브러리가 바인딩되어 있어야합니다. 이 오류는 일반적으로 Postgres 라이브러리를 찾을 수 없음을 의미합니다. 그것들을 설치하지 않았거나 --with-pg-dir =을 gem 설치에 전달해야 할 수도 있습니다.


3

Mac 사용자의 경우

PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg

이 트릭을해야합니다


3

ARCH플래그 와 함께 사용하십시오 .

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

이것은 당신과 같은 문제를 해결했습니다.


2

Linux Mint (Maya) 13 에서이 문제를 해결하고 postgresql 및 postgresql-server를 설치하여 문제를 해결했습니다.

apt-get install postgresql-9.1 

sudo apt-get install postgresql-server-dev-9.1

2

실행중인 OS에 관계없이 로그 파일을 확인하십시오. "Makefile" 맹목적으로 설치하는 대신 진행중인 작업을 확인하십시오.

필자의 경우, MAC OS, 로그 파일은 다음과 같습니다.

/Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log

로그는 다음으로 인해 make 파일을 작성할 수 없음을 나타냅니다.

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers

mkmf.log 내부에서 빌드를 완료하는 데 필요한 라이브러리를 찾을 수 없음을 알 수 있습니다.

checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah

을 실행 한 후 "brew install postgresql"필요한 모든 라이브러리가 있음을 알 수 있습니다.

za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes

2

PG에서 수년간 귀찮은 문제가 발생했습니다. 나는이 요지를 만들어서 도움을 주었다.

다음 명령은 항상 나를 위해 작동합니다.

# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

요점 : https://gist.github.com/sharnie/5588340cf023fb177c8d


1

CentOS 5.8에서이 작업을 수행해야했습니다. bundle install특정 PG 버전을 사용하도록 강제 할 수 없으므로 실행 으로 인해 문제가 계속 발생했습니다.

난 못해 yum erase postgresql postgresql-devel의존성 문제 때문에 PHP를 (php, http 등을 제거합니다)

해결책? 기본 경로 대신 업데이트 pgsql을 우선적으로 사용하도록 $ PATH를 일시적으로 엉망으로 만듭니다.

export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install

기본적으로, 위의 명령으로는 볼 것이다 /usr/pgsql-9.2/bin/pg_config에 한하기 전에/usr/bin/pg_config


1

루비 대신 jruby를 사용하는 경우 pg gem을 설치할 때 비슷한 문제가 발생합니다. 대신 어댑터를 설치해야합니다.

gem 'activerecord-jdbcpostgresql-adapter'


0

pg 버전이 Win32 플랫폼을 지원하는지 확인 하려면 여기 로 이동 한 다음이 명령을 사용하여 설치하십시오.

gem install pg -v 0.14.1-플랫폼 = x86-mingw32

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