Nepavyko rasti libpq-fe.h antraštės, kai bandote įdiegti „pg gem“

Naudoju Ruby on Rails 3.1 versijos išleidimo versiją. Man patinka naudoti „PostgreSQL“, tačiau problema yra įdiegti „ pg gem“. Tai suteikia man šią klaidą:

 $ 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 

Kaip išspręsti šią problemą?

670
18 мая '11 в 9:11 2011-05-18 09:11 Demonchandas nustatytas gegužės 18 d., 11 val., 11:11 . 2011-05-18 09:11
@ 38 atsakymai
  • 1
  • 2

Ubuntu rodoma, kad antraštė atrodo kaip libpq-dev paketo dalis (bent jau šiose Ubuntu versijose: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr ) ir 18.04 (bioninis bebras)):

 ... /usr/include/postgresql/libpq-fe.h ... 

Taigi pabandykite įdiegti „ libpq-dev arba jo atitikmenį savo OS:

  • Ubuntu / Debian sistemoms: sudo apt-get install libpq-dev
  • Red Hat Linux“ (RHEL) sistemose : yum install postgresql-devel
  • Mac Homebrew : brew install postgresql
  • Mac MacPorts PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • OpenSuse : zypper in postgresql-devel
  • ArchLinux : pacman -S postgresql-libs
1070
18 мая '11 в 9:41 2011-05-18 09:41 atsakymas duotas per trumpas gegužės 18 d. 11 val

MacOS“ (anksčiau „ Mac OS X“ ir „ OS X“ ) naudokite „ Homebrew“, kad įdiegtumėte tinkamas antraštes:

 brew install postgresql 

ir tada jis veikia

 gem install pg 

turėtų dirbti.

Arba, užuot įdiegę visą postgresql , galite brew install libpq ir eksportuoti teisingą PATH ir PKG_CONFIG_PATH kaip aprašyta skyriuje „Perspėjimai“.

139
10 дек. Atsakymas pateikiamas i decrobbed 10 Dec. 2013-12-10 01:30 '13, 13:30 2013-12-10 01:30

Aš taip pat bandžiau „ gem install libpq-dev , bet aš gavau šią klaidą:

 Can't find the 'libpq-fe.h header *** extconf.rb failed *** 

Tačiau pastebėjau, kad darbas su sudo apt-get (kurį bandau išvengti naudojant Ruby on Rails) veikia, t.y.

 sudo apt-get install libpq-dev # or apt-get install postgres-server-dev-{pg.version} # for postgresql 9.4 on Ubuntu 14.04 

tada galėčiau padaryti

 gem install pg 

jokių problemų.

113
17 янв. Michael Durrant atsakymas sausio 17 d 2012-01-17 02:34 '12 at 2:34 am 2012-01-17 02:34

Aš galėčiau ją išspręsti kitaip. Mano sistemoje neradau bibliotekos. Taigi aš ją įdiegiau naudojant pagrindinę „PostgreSQL“ svetainę. Mano atveju (OS X) failą /Library/PostgreSQL/9.1/include/ po įdiegimo. Jūs taip pat galite turėti failą kitoje vietoje, priklausomai nuo jūsų sistemos, jei jau įdiegėte „PostgreSQL“.

Šios nuorodos dėka, kaip pridėti papildomą kelią įdiegti brangakmenį , naudodamas šią komandą galiu nurodyti brangakmenį lib'e:

 export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/" gem install pg 

Po to jis veikia, nes dabar jis žino, kur rasti trūkstamą biblioteką. Tiesiog pakeiskite kelią tinkama vieta jūsų libpq-fe.h

40
12 янв. David Pelaez atsakymas sausio 12 d 2012-01-12 09:52 '12 at 9:52 am 2012-01-12 09:52

Nepavyko rasti libpq-fe.h antraštės

Sėkmės CentOS 7.0.1406 , vykdydamas šias komandas:

 ~ % psql --version # => psql (PostgreSQL) 9.4.1 yum install libpqxx-devel gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config 

Arba galite sukonfigūruoti plug-in, kad visada įdiegtumėte pg su šiais parametrais (naudinga dispečeriui paleisti diegimo aplinkose),

  • bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
26
02 марта '15 в 4:51 2015-03-02 04:51 atsakymą pateikė lfender6445 kovo 02 '15 , 4:51 2015-03-02 04:51

CentOS 6.4,

 yum install postgresql-devel gem install pg 

gerai dirbo!

21
10 апр. Atsakymas pateikiamas Arivarasan L 10 Bal. 2013-04-10 12:13 '13, 12:13, 2013-04-10 12:13

Tik įrašymui:

Ruby on Rails 4 programa OS X sistemoje su PostgresApp (šiuo atveju reikalinga 0.17.1 versija - senas projekto vaizdas):

 gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
14
19 окт. atsakymas pateikiamas pablomarti 19 okt. 2015-10-19 19:53 '15, 19:53, 2015-10-19 19:53

Mano atveju tai buvo postgresql-server-dev-8.4 paketas (aš esu Ubuntu 11.04 (Natty Narwhal), 64 bitai).

12
18 июля '11 в 21:18 2011-07-18 21:18 Atsakymą pateikė Johanas liepos 18 d. 11 val. 21:18 2011-07-18 21:18

„Mac OS X“ atlikite šiuos veiksmus:

 gem install pg -- --with-pg-config=***/path/to/pg_config*** 

***/path/to/pg_config*** - kelias į pg_config

12
08 янв. Atsakymą pateikė Jiemurat 08 sausis 2014-01-08 12:36 '14 at 12:36 2014-01-08 12:36

Teisingas atsakymas į „Mac“ naudotojus, naudojančius „Postgres.app“, yra sukurti „ libpq , pateikiamą kartu su šiuo paketu. Pvz., Su 9.4 leidimu (dabartinis rašymo metu), viskas, ko jums reikia, yra:

 export CONFIGURE_ARGS="with-pg-include=/Applications/Postgres.app/Contents/Versions/9.4/include" gem install pg 

Tai padės jūsų pg perlas sinchronizuoti su tiksliai įdiegta PostgreSQL versija. Šiuo atveju kažko iš Homebrew įdiegimas yra atliekos.

11
22 янв. Atsakymas pateikiamas žiederis 22 sausis 2015-01-22 18:29 '15, 18:29, 2015-01-22 18:29

Turėjau tą pačią problemą „Amazon Linux“. Galiu rasti „ libpq-fe.h , bet dėl ​​kokios nors priežasties jis neveikė.

Jis atėjo iš skirtingų paketų versijų, kurias įdiegė skirtingi įrenginio naudotojai. Įdiegti PostgreSQL 9.2 ir PostgreSQL 9.3. Todėl įsitikinkite, kad „PostgreSQL“ versija yra išjungta prieš įgalindami bibliotekas.

Man, magijos komandinė eilutė:

 sudo yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel 

Šaltinis: Beveik idiotiškas PostgreSQL 9.3 diegimo vadovas, PostGIS 2.1 ir pgRouting su Yum

8
30 янв. atsakymą pateikė Fab V. Jan 30 2015-01-30 10:47 '15, 10:47, 2015-01-30 10:47

Bendresnis atsakymas į bet kurį „Debian“ pagrįstą paskirstymą (įskaitant Ubuntu) yra toks. Pirmiausia įdiekite apt-file paketą kaip root:

 apt-get install apt-file 

Tai leidžia ieškoti paketų, kuriuose yra failas. Tada atnaujinkite savo duomenų bazę

 apt-file update 

(tai galima paleisti kaip įprastą vartotoją). Tada raskite trūkstamą antraštę naudodami:

 apt-file search libpq-fe.h 

Mano įrenginyje:

 libpq-dev: /usr/include/postgresql/libpq-fe.h postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h 

Ten jūs einate!

7
30 авг. Atsakymą pateikė Vincent Fourmond 30 rug. 2013-08-30 00:16 '13 - 0:16 2013-08-30 00:16

„Mac“ nusprendžiau naudoti šį kodą:

 gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config 
4
05 февр. Atsakymas pateiktas Mario 05 Feb. 2016-02-05 00:00 '16 at 0:00 2016-02-05 00:00

Radau šį atsakymą, ir tai buvo vienintelis, kuris dirbo man („Mac OS“) - po dviejų dienų tyrinėjimo:

 $ 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... 

Žr. Stekų perpildymo problemą. Nerandate PostgreSQL kliento bibliotekos (libpq) .

4
20 окт. atsakymą pateikė Cynthia Sanchez spalio 20 d. 2014-10-20 19:21 '14, 19:21, 2014-10-20 19:21

Turėjau tą pačią problemą „Mac OS“, bet aš greitai įdiegiau „PostgreSQL“ perlus, naudodami šiuos terminus:

 ARCHFLAGS="-arch x86_64" gem install pg 

(Aš pirmą kartą įdiegiau „PostgreSQL“ su brew install postgresql .)

4
10 авг. atsakymas duotas 10 rug . 2014-08-10 22:39 '14, 10:39 pm 2014-08-10 22:39

Neseniai atnaujinome į „ Mac X v10.10“ („Yosemite“) ir vos sukūriau perlas ps .

Pranešta klaida buvo tipiška:

 Using config values from /usr/local/bin/pg_config checking for libpq-fe.h... *** extconf.rb failed *** 

Mano sprendimas buvo gem uninstall pg , o tada bundle update pg pakeisti perlas su paskutiniu. Aš padariau brew update; brew upgrade įdiegti „Yosemite“, kad gautumėte naujausias anksčiau įdiegtų paketų versijas.

4
02 нояб. Atsakymą pateikė Martin Streicher . 2014-11-02 15:21 '14, 15:21 2014-11-02 15:21

„CentOS“ įdiegiau „ libpq-dev package naudodamas šią komandą

 yum install postgresql-devel 

Vykdant gem install pg grąžina tą pačią klaidą kaip ir " No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config ".

Kaip parodyta toliau, išspręstas mano brangakmenis

 gem install pg -- --with-pg-config=/usr/pgsql-xx/bin/pg_config 
3
21 янв. atsakymą pateikė user2086641 21 sausis 2015-01-21 12:26 '15, 12:26 pm 2015-01-21 12:26

MacOS“ be diegimo „PostgreSQL“ serverio:

 brew install libpq gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config" 
3
09 дек. Michael A. Atsakymas: gruodžio 09 2017-12-09 13:13 '17 at 13:13 2017-12-09 13:13

Paleidžiu „Postgres.app“ „Mac“, ir turėjau

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

pirmasis. Tada

 bundle install 

dirbo man.

3
17 февр. vasario 17 d. 2015-02-17 17:16 '15, 17:16, 2015-02-17 17:16

Debian 7.0“, 64 bitų („Wheezy“), tiesiog paleiskite:

 sudo apt-get install libpq-dev 

Sėkmingai įdiegę „libpq-dev“, paleiskite:

 bundle install 
2
19 февр. Atsakymą pateikė Eric Wu vasario 19 d. 2014-02-19 06:30 '14 at 6:30 2014-02-19 06:30

libpq-fe.h priklauso nuo to, kur įdiegtas „PostgreSQL“ diegimas (tai priklauso nuo to, kaip ją įdiegėte). Norėdami locate libpq-fe.h kompiuteryje, naudokite libpq-fe.h ( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ). Jei jis yra, jis bus įtrauktas į „PostgreSQL“ diegimo katalogą.

 $ locate libpq-fe.h /Library/PostgreSQL/9.1/include/libpq-fe.h 

bin kuriame yra pg_config bus tame pačiame kataloge kaip ir įtraukimo katalogas. Kaip matyti iš šios klaidos, naudokite parametrą --with-pg-config, kad įdiegtumėte perlas:

 $ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config" 

Atkreipkite dėmesį, kad jums gali tekti paleisti updatedb jei niekada nenaudojote, arba, jei įdiegėte PostgreSQL.

2
26 янв. atsakymą pateikė akbrown sausio 26 d 2015-01-26 07:57 '15, 7:57 2015-01-26 07:57

„CentOS 6.5“ („Squeeze“) sukūriau failą:

 $ sudo touch /etc/profile.d/psql.sh 

su turiniu:

 pathmunge /usr/pgsql-9.3/bin 

Atkreipkite dėmesį, kad turite nustatyti PostgreSQL kelią su pg_config failu. Tai galite rasti komandoje:

 $ sudo find / -iname pg_config 

Įrašykite failą:

 $ sudo chmod +x /etc/profile.d/ruby.sh 

ir bandykite vykdyti komandą dar kartą.

Pastaba Bet kuriuo metu keisdami „ Bash “ konfigūraciją - pakeiskite profilio d konfigūraciją - turite iš naujo paleisti „Bash“.

2
30 июля '14 в 6:46 2014-07-30 06:46 atsakymą pateikė lucianosousa liepos 30 d. 14, 6:46 2014-07-30 06:46

Aš turėjau jį tik OSX, bėgant virimui ir postgres@9.4 .

Mano taisymas buvo toks:

 CONFIGURE_ARGS="with-pg-include=/usr/local/opt/postgresql@9.4/include/" bundle install 
2
05 апр. Atsakymas pateikiamas Nick 05 Bal. 2017-04-05 00:17 '17 at 0:17 2017-04-05 00:17

Į „Ubuntu“ įdiekite „libpq-dev“, kad atsikratytumėte šios problemos.

 sudo apt-get install libpq-dev 
2
12 нояб. Atsakymas pateikiamas Raju 12 lapkričio. 2017-11-12 16:34 '17, 16:34 pm 2017-11-12 16:34

Aš pagaliau išsprendžiau šią problemą, bet nenaudojau anksčiau aprašytų metodų.

Naudodami brew install postgresql , brew install postgresql , kad jis jau buvo įdiegtas, bet neprijungtas.

  • Sužinokite, kur įdiegta „PostgreSQL“, ir pašalinkite ją,

  • Tuomet vėl brew install postgresql ,

  • brew link postgresql

  • gem install pg

2
15 февр. atsakymas pateikiamas Čilė Yang 15 vasaris. 2016-02-15 11:24 '16 at 11:24 AM 2016-02-15 11:24

„FreeBSD“ (9.1) yra reikalingas paketas „/ usr / ports / database / postgresql -server *“, kuris, įdiegus, taip pat įdiegia reikiamą antraštės failą, dėl kurio „pg“ diegimas bus sugedęs. Šis atsakymas padėjo man rasti sprendimą, tačiau paketų pavadinimų skirtumai turėjo šiek tiek ieškoti.

Tikiuosi, kad tai padės kas nors išvengti savo galvų braižymo ieškant „-dev“ paketo FreeBSD sistemoje!

2
06 сент. Atsakymas pateikiamas Claus Due 06 Sep. 2013-09-06 03:27 '13, 3:27, 2013-09-06 03:27

Aš turėjau panašią problemą, ir tai man paskatino:

 gem install do_postgres -- --with-pgsql-server-dir=/Applications/Postgres.app/Contents/MacOS --with-pgsql-server-include=/Applications/Postgres.app/Contents/MacOS/include/server 

Šaltinis:

https://gist.github.com/oisin/6562181

1
07 февр. atsakymas dunkles 07 Vas 2014-02-07 05:27 '14 at 5:27 2014-02-07 05:27

Aš nusprendžiau įdiegti bendrąjį paketą „postgresql“. Šiame pakete pateikiamas dvejetainis failas, pg_config , kurį greičiausiai neturite.

1
07 янв. Atsakymą pateikė Fabrizio Regini 07 Jan 2013-01-07 20:19 '13, 20:19, 2013-01-07 20:19

Turėjau šią problemą su Postgresql 9.6. Aš galėjau tai išspręsti paleisdamas:

 brew upgrade postgresql@9.6 brew link postgresql@9.6 --force gem install pg 
1
05 янв. Atsakymą pateikė mwalsher 05 sausis 2018-01-05 23:04 '18, 11:04 val. 2018-01-05 23:04

AltLinux atveju reikia įdiegti paketą postgresqlx.x-devel (mano atveju, postgresql9.5-devel ):

 apt-get install postgresql9.5-devel 
1
02 марта '16 в 10:23 2016-03-02 10:23 atsakymas pateikiamas Mal Skrylev 02 kovo 16 d. 10:23 2016-03-02 10:23
  • 1
  • 2