Nie można znaleźć 'libpq-fe.nagłówek h podczas próby instalacji PG gem
Używam Ruby on Rails 3.1 pre version. Lubię używać PostgreSQL, ale problemem jest instalacja pg
gem. Daje mi to następujący błąd:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out
Jak rozwiązać ten problem? 30 answers
Wygląda na to, że w Ubuntu nagłówek jest częścią libpq-dev
pakiet (przynajmniej w następujących wersjach Ubuntu:
11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Pangolin precyzyjny), 14.04 (wierny Tahr) i 18.04 (Bóbr Bioniczny)):
...
/usr/include/postgresql/libpq-fe.h
...
Więc spróbuj zainstalować {[1] } lub jego odpowiednik dla Twojego systemu operacyjnego:
- dla systemów Ubuntu / Debian:
sudo apt-get install libpq-dev
- On Czerwony Kapelusz Linux (RHEL) systemy:
yum install postgresql-devel
- Dla Mac Homebrew :
brew install postgresql
- For Mac MacPorts PostgreSQL:
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
- Dla OpenSuse :
zypper in postgresql-devel
- Dla ArchLinux :
pacman -S postgresql-libs
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-02 01:00:48
Na macOS (poprzednio Mac OS X i OS X ), użyj Homebrew aby zainstalować odpowiednie nagłówki:
brew install postgresql
And then running
gem install pg
Powinno zadziałać.
Alternatywnie, zamiast instalować całość postgresql
, możesz brew install libpq
i wyeksportować poprawne PATH
i PKG_CONFIG_PATH
, Jak wyjaśniono w sekcji "zastrzeżenia"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-24 22:57:15
Próbowałem też zrobić gem install libpq-dev
, ale otrzymałem ten błąd:
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Okazało się jednak, że instalacja za pomocą sudo apt-get
(którego staram się unikać używając Ruby on Rails) zadziałała, czyli
sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04
Wtedy byłem w stanie zrobić
gem install pg
Bez problemów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:09:01
Mógłbym to rozwiązać w inny sposób. Nie znalazłem biblioteki w moim systemie. Tak więc zainstalowałem go za pomocą aplikacji z głównej strony PostgreSQL. W moim przypadku (OS X) znalazłem plik pod /Library/PostgreSQL/9.1/include/
po zakończeniu instalacji. Możesz również mieć plik gdzieś indziej w zależności od systemu, jeśli masz już zainstalowany PostgreSQL.
Dzięki temu linkowi na Jak dodać dodatkową ścieżkę do instalacji gem , mogłem wskazać gem do lib tym polecenie:
export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg
Potem działa, ponieważ teraz wie, gdzie znaleźć brakującą bibliotekę. Po prostu zastąp ścieżkę odpowiednią lokalizacją dla libpq-fe.h
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:07:55
Nie można znaleźć libpq-fe.H header
Odniosłem sukces na CentOS 7.0.1406 uruchamiając następujące komendy:
~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
Alternatywnie , możesz skonfigurować bundler tak, aby zawsze instalował pg
z tymi opcjami (pomocnymi przy uruchamianiu bundlera w środowiskach wdrażania),
bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 05:47:47
Dla CentOS 6.4,
yum install postgresql-devel
gem install pg
Działa dobrze!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:10:01
Tak dla przypomnienia:
Aplikacja Ruby on Rails 4 w OS X z PostgresApp (w tym przypadku potrzebna wersja 0.17.1 - rodzaj starego projektu):
gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:26:38
Na Mac OS X Uruchom tak:
gem install pg -- --with-pg-config=***/path/to/pg_config***
***/path/to/pg_config***
jest ścieżką do pg_config
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-08 09:36:16
W moim przypadku był to pakiet postgresql-server-dev-8.4
(jestem na Ubuntu 11.04 (Natty Narwhal), 64 bity).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 16:59:38
Właściwa odpowiedź dla użytkowników Mac z Postgres.aplikacja ma być zbudowana na podstawie libpq
dostarczonego z tym pakietem. Na przykład, w wydaniu 9.4 (aktualnym w chwili pisania tego tekstu), wszystko, czego potrzebujesz, to:
export CONFIGURE_ARGS="with-pg-include=/Applications/Postgres.app/Contents/Versions/9.4/include"
gem install pg
Dzięki temu Twój gem pg
będzie zsynchronizowany z dokładnie tą wersją PostgreSQL, którą zainstalowałeś. Instalacja czegoś z Homebrew jest marnotrawstwem w tym przypadku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:20:23
Miałem ten sam problem na Amazon Linux. Mogłem znaleźć nagłówek libpq-fe.h
, ale jakoś nie zadziałał.
Pochodzi z różnych wersji pakietów, które zostały zainstalowane przez różnych użytkowników na komputerze. Zainstalowano PostgreSQL 9.2 i PostgreSQL 9.3. Upewnij się więc, że masz wersję PostgreSQL przed dołączeniem bibliotek.
Dla mnie magiczna linia poleceń brzmiała:
sudo yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel
Źródło: prawie idiotyczny Poradnik Instalacji PostgreSQL 9.3, PostGIS 2.1 i PGR z Mniam
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:24:33
Bardziej ogólna odpowiedź dla każdej dystrybucji opartej na Debianie (która obejmuje Ubuntu) jest następująca. Najpierw zainstaluj pakiet apt-file
działający jako root:
apt-get install apt-file
Pozwala to na wyszukiwanie pakietów zawierających plik. Następnie zaktualizuj swoją bazę danych za pomocą
apt-file update
(może być uruchamiany jako zwykły użytkownik). Następnie poszukaj brakującego nagłówka używając:
apt-file search libpq-fe.h
Na mojej maszynie daje to:
libpq-dev: /usr/include/postgresql/libpq-fe.h
postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h
Proszę bardzo !Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-29 21:16:01
Dla MacOS bez instalacji serwera PostgreSQL:
brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-09 10:13:12
W Ubuntu zainstaluj "libpq-dev", aby pozbyć się tego problemu.
sudo apt-get install libpq-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-12 13:34:52
Znalazłem taką odpowiedź i tylko ta mi się sprawdziła (Mac OS) - po około dwóch dniach badań:
$ sudo su
$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...
Zobacz pytanie o przepełnienie stosu nie można znaleźć biblioteki klienta PostgreSQL (libpq).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:54
Na Macu rozwiązałem to używając tego kodu:
gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:26:59
Prowadzę Postgres.aplikacja na Maca i musiałem
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
Pierwszy. Then
bundle install
Zadziałało dla mnie.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-17 14:16:11
Miałem ten sam problem na Mac OS, ale zainstalowałem gem PostgreSQL łatwo, używając następującego w Terminalu:
ARCHFLAGS="-arch x86_64" gem install pg
(najpierw zainstalowałem PostgreSQL z brew install postgresql
.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:15:35
Niedawno uaktualniłem do Mac OS X v10.10 (Yosemite) i miałem problemy z zbudowaniem pg
gem.
Zgłoszony błąd był typowy:
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... *** extconf.rb failed ***
Moim rozwiązaniem było gem uninstall pg
, a następnie bundle update pg
zastąpienie klejnotu najnowszym. Uruchomiłem brew update; brew upgrade
Po instalacji Yosemite, aby pobrać najnowsze wersje pakietów, które zainstalowałem wcześniej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:18:59
Moje rozwiązanie dla Fedory 30:
sudo dnf install /usr/include/libpq-fe.h
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-19 21:26:14
Na CentOS zainstalowałem libpq-dev package
używając poniższego polecenia
yum install postgresql-devel
Wykonanie gem install pg
zwróciło ten sam błąd co "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
".
Instalacja klejnotu jak poniżej rozwiązała mój problem
gem install pg -- --with-pg-config=/usr/pgsql-x.x/bin/pg_config
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-21 09:26:14
Na FreeBSD (9.1) niezbędnym pakietem jest / usr / ports/database / postgresql-server*, który po zainstalowaniu zainstaluje również wymagany plik nagłówkowy, co powoduje, że instalacja gem "pg" nie powiedzie się. Ta odpowiedź pomogła mi znaleźć rozwiązanie, ale różnica w nazwach pakietów wymagała trochę przeszukiwania.
Miejmy nadzieję, że pomoże to uniknąć zadrapania głowy podczas wyszukiwania pakietu "- dev " w systemie FreeBSD!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-06 00:27:26
On Debian 7.0, 64-bit (Wheezy), po prostu uruchom:
sudo apt-get install libpq-dev
Po pomyślnym zainstalowaniu libpq-dev Uruchom:
bundle install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:12:32
Pod CentOS 6.5 (Squeeze) utworzyłem plik:
$ sudo touch /etc/profile.d/psql.sh
Z treścią:
pathmunge /usr/pgsql-9.3/bin
Uwaga tutaj, powinieneś ustawić ścieżkę PostgreSQL za pomocą pliku pg_config. Można to znaleźć za pomocą polecenia:
$ sudo find / -iname pg_config
Zapisz plik:
$ sudo chmod +x /etc/profile.d/ruby.sh
I spróbuj ponownie wykonać polecenie.
Uwaga: za każdym razem, gdy zmienisz konfigurację Bash - zmiana profilu.konfiguracja d - powinieneś przeładować Basha.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:14:47
Lokalizacja libpq-fe.h
zależy od tego, gdzie znajduje się Twoja instalacja PostgreSQL (co zależy od tego, jak ją zainstalowałeś). Użycie locate
(http://en.wikipedia.org/wiki/Locate_%28Unix%29 ), aby znaleźć libpq-fe.h
plik na komputerze. Jeśli istnieje, będzie w katalogu include
Twojej instalacji PostgreSQL.
$ locate libpq-fe.h
/Library/PostgreSQL/9.1/include/libpq-fe.h
Katalog bin
, który zawiera pg_config
, będzie w tym samym katalogu co katalog include
. Jak sugeruje błąd, użyj opcji --with-pg-config, aby zainstalować klejnot:
$ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config"
Zauważ, że może być konieczne uruchomienie updatedb
, Jeśli nigdy nie używałeś locate
lub nie aktualizowałeś się od czasu instalacji PostgreSQL.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:21:13
W końcu rozwiązałem ten problem, ale nie używając wcześniej opisanych metod.
Używając brew install postgresql
, dowiaduję się, że był już zainstalowany, ale nie połączony.
-
Dowiedz się, gdzie jest zainstalowany PostgreSQL i usuń go,
-
Następnie
brew install postgresql
ponownie, brew link postgresql
gem install pg
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 17:28:25
[[2]}Właśnie miałem to na OSX running brew i [email protected]
.
Moja poprawka była taka:
CONFIGURE_ARGS="with-pg-include=/usr/local/opt/[email protected]/include/" bundle install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-04 21:17:09
Miałem taki problem z Postgresql 9.6. Udało mi się to naprawić robiąc:
brew upgrade [email protected]
brew link [email protected] --force
gem install pg
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 20:04:06
Napotkałem ten sam błąd z postgres zainstalowanym przez asdf. Rozwiązania pg-config nie działały dla mnie. Zamiast tego musiałem zlokalizować folder include postgres, który zawiera plik i uruchomić polecenie z flagą --with-pg-include
gem install pg -- --with-pg-include=/<path>/.asdf/installs/postgres/<version>/include
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-05 19:57:10
Dla AltLinux
pakiet postgresqlx.x-devel
(w moim przypadku postgresql9.5-devel
) musi być zainstalowany:
apt-get install postgresql9.5-devel
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 07:23:49