nie można zainstalować pg gem


218

Próbowałem użyć, gem install pgale nie działa.

gem install pg daje ten błąd

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

3
Jeśli używasz komputera Mac, postępuj zgodnie z tym samouczkiem: matthew.mceachen.us/blog/…
Noah W. Smith

1
@NatchiQ uszkodzony link?
0112

w moim przypadku dziennik błędów powiedział, że libpqnie znaleziono, więc zainstalowałemsudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
Raj

Odpowiedzi:



388

Miałem ten problem, to działało dla mnie:

Zainstaluj pakiet postgresql-devel, to rozwiąże problem braku pg_config.

sudo apt-get install libpq-dev

139
Pracował dla mnie przez apt-get install libpq-dev. Dzięki za podpowiedź.
Ryanmt,

5
Potwierdzenie ze strony głównej Wiki pg gem : „Na Ubuntu pakiet / usr / bin / pg_config jest dostarczany przez pakiet libpq-dev”.
Mark Berry

17
co z komputerem Mac?
Fivell,

23
@Fivell Późno do gry z odpowiedzią tutaj, ale jeśli masz zainstalowany Homebrew, brew install postgresqldostaniesz potrzebne pakiety.
Alex LaFroscia

19
@Fivell spróbuj brew install postgresqlna komputerze Mac
Mahattam

91

Problem jest zależny od klejnotów, więc przed instalacją pg upewnij się, że zainstalowałeś „libpq-dev”

Systemy Ubuntu:

sudo apt-get install libpq-dev

Systemy RHEL:

mniam zainstalować postgresql-devel

Prochowiec:

napar zainstalować postgresql


7
Odpowiedź na Maca jest prawdziwa. Po prostu dlatego, że nie zainstalowaliśmy PostgreSQL na maszynie.
Hoang Le

Na Centos 7 yum install postgresql-develrozwiązałem mój błąd związany z pg_config dla instalacji 'pg' .gem. Nawiasem mówiąc, zdecydowałem się użyć właśnie wydanego PostgreSQL 10
Arthur

62

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


3
Pomogło mi to (w
Centos

14
Pracowałem dla mnie w systemie OS X, ale ze ścieżką do /Applications/Postgres.app/Contents/MacOS/bin/pg_config (mam samodzielny Postgres.app)
Matt

10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config w yosemite z aplikacją Postgres
twmulloy

Pracował Ale na Macu poprzednia zmiana env ARCHFLAGS="-arch x86_64"była dla mnie zmieniaczem gier.
Janusz Lenar

2
Użyłem gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configOSX 10.12
Tim Krins

37

@Winfield to powiedział :

Klejnot pg wymaga, aby biblioteki klienckie postgresql były powiązane. Ten błąd zwykle oznacza, że ​​nie można znaleźć bibliotek Postgres. Albo nie masz ich zainstalowanych, albo może być konieczne zaliczenie--with-pg-dir= do instalacji klejnotów.

Co więcej, potrzebujesz tylko --with-pg-config= go zainstalować.

Na komputerze Mac

Jeśli przez przypadek zainstalowałeś postgres za pośrednictwem pakietu witryny na komputerze Mac, będzie on podobny do tego /Applications/Postgres.app/Contents/Versions/9.3/bin.

Więc albo przekaż to przy instalacji klejnotów:

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

Albo ty PATH ustawione prawidłowo . Ponieważ może to być za dużo, aby tymczasowo ustawić ŚCIEŻKĘ:

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

2
dla konkretnej wersji:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland,

W folderze latestzawartości Postgres.app znajduje się folder dowiązania symbolicznego, który jest przydatny w przypadku, gdy 9.3 nie jest już wysyłany. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber,

24

Nie zainstalowałem postgresql, więc po prostu zainstalowałem go za pomocą

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

na Ubuntu 12.04.

To rozwiązało.


Aktualizacja:

Użyj najnowszej wersji:

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

Naprawiłem problem dla mnie, ale na komputerze Mac (z homebrew) musiałem uruchomić to polecenie:brew install postgresql
gMale

19

To zadziałało w moim przypadku:

sudo apt-get install libpq-dev

Użyłem:

  • Ubuntu 14.04.2 LTS
  • Ruby 2.2.2
  • Szyny 4.2.1

12

Jeśli używasz Postgres.app na Macu, możesz rozwiązać ten problem raz na zawsze w ten sposób:

Po pierwsze gem uninstall pg, następnie edytować ~/.bash_profilelub ~/.zshrcplik lub równoważne i dodać:

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

Wtedy bundle installi gem install pgpowinny działać zgodnie z oczekiwaniami.


Dzięki, działa również przy użyciu browaru zainstalowanego postgreSQL # ścieżka eksportu bin PostgreSQL PATH = $ PATH: /usr/local/Cellar/postgresql/9.5.0/bin/
Benoit

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

zamień 9.1 na wersję zainstalowaną w twoim systemie.


1
Pomogło mi to na komputerze Mac, ktoś wie, jaka jest domyślna ścieżka i jak ją zmienić?
Steve

Działa na OS X Maveric
Marek

5

W systemie Mac OS (El Capitano). Możesz po prostu użyć:brew install postgresql


1
Tak! To wszystko, czego potrzebowałem! Zainstaluj na czystym OS X, bez Postgres.app
Lane Rettig

3

Klejnot pg wymaga, aby biblioteki klienckie postgresql były powiązane. Ten błąd zwykle oznacza, że ​​nie można znaleźć bibliotek Postgres. Albo nie masz ich zainstalowanych, albo może być konieczne przekazanie --with-pg-dir = do instalacji gem.


3

Dla użytkowników komputerów Mac

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

To powinno załatwić sprawę


3

Użyj z ARCHflagą.

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

Rozwiązało to ten sam problem, który masz.


2

Chciałbym ten problem na Linux Mint (Maya) 13, i naprawiłem go, instalując postgresql i postgresql-server:

apt-get install postgresql-9.1 

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

2

Bez względu na to, z jakiego systemu operacyjnego korzystasz, spójrz na plik dziennika, "Makefile"aby zobaczyć, co się dzieje, zamiast ślepo instalować rzeczy.

W moim przypadku MAC OS plik dziennika znajduje się tutaj:

/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

Dzienniki wskazały, że nie można utworzyć pliku make z następujących powodów:

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

Wewnątrz pliku mkmf.log zobaczysz, że nie można znaleźć wymaganych bibliotek do ukończenia kompilacji.

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

Po uruchomieniu "brew install postgresql"widzę wszystkie wymagane biblioteki:

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

Ten irytujący problem z PG mam od lat. Stworzyłem tę treść, aby pomóc.

Następujące polecenie zawsze działa dla mnie.

# 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

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


1

Musiałem to zrobić na CentOS 5.8. Uruchamianie bundle installpowodowało problemy, ponieważ nie mogłem zmusić go do użycia określonej wersji PG.

Nie mogę yum erase postgresql postgresql-devel , z powodu problemów z zależnością (usunęłoby to php, http itp.)

Rozwiązanie? Mess $ PATH tymczasowo, aby dać pierwszeństwo aktualizacji pgsql zamiast domyślnej:

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

Zasadniczo dzięki powyższym poleceniom będzie on wyglądał /usr/pgsql-9.2/bin/pg_configprzed tym, który wprowadzono/usr/bin/pg_config


1

Jeśli używasz jruby zamiast ruby, będziesz mieć podobne problemy podczas instalowania klejnotu pg. Zamiast tego musisz zainstalować adapter:

gem 'activerecord-jdbcpostgresql-adapter'


0

Po prostu przejdź tutaj, aby sprawdzić, czy Twoja wersja pg obsługuje platformę Win32, a następnie użyj tego polecenia, aby zainstalować:

gem zainstaluj pg -v 0.14.1 --platform = x86-mingw32

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.