impossible d'installer pg gem


217

J'ai essayé d'utiliser gem install pgmais cela ne semble pas fonctionner.

gem install pg donne cette erreur

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
Si vous êtes sur un Mac, suivez ce tutoriel: matthew.mceachen.us/blog/…
Noah W. Smith

1
Lien cassé @NatchiQ?
0112

dans mon cas, le journal d'erreurs libpqn'a pas été trouvé, j'ai donc installésudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
Raj

Réponses:



388

J'ai eu ce problème, cela a fonctionné pour moi:

Installez le paquet postgresql-devel, cela résoudra le problème de pg_config manquant.

sudo apt-get install libpq-dev

139
A travaillé pour moi par apt-get install libpq-dev. Merci pour l'astuce.
Ryanmt

5
Confirmation, à partir de la page d'accueil du pg gem Wiki : "Sur Ubuntu, / usr / bin / pg_config est fourni par le paquet libpq-dev."
Mark Berry

17
qu'en est-il de mac?
Fivell

23
@Fivell Tard dans le jeu avec la réponse ici, mais si vous avez installé Homebrew, brew install postgresqlvous obtiendrez les packages dont vous avez besoin.
Alex LaFroscia

19
@Fivell try brew install postgresqlon mac
Mahattam

91

Le problème est la dépendance des gemmes, donc avant d'installer pg, assurez-vous d'avoir installé "libpq-dev"

Systèmes Ubuntu:

sudo apt-get install libpq-dev

Systèmes RHEL:

yum install postgresql-devel

Mac:

installer brew postgresql


7
La réponse pour Mac est vraie. C'est simplement parce que nous n'avons pas installé PostgreSQL sur la machine.
Hoang Le

Sur Centos 7, yum install postgresql-develj'ai résolu mon erreur liée à pg_config pour l'installation du 'pg' .gem. Au fait, j'ai choisi d'utiliser le PostgreSQL 10
Arthur

62

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


3
Cela m'a aidé (sur Centos 6.2)
TuK

14
A travaillé pour moi sur OS X, mais avec un chemin vers /Applications/Postgres.app/Contents/MacOS/bin/pg_config (j'ai un Postgres.app autonome)
Matt

10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config sur yosemite avec Postgres App
twmulloy

Travaillé. Mais sur Mac, le précédent env ARCHFLAGS="-arch x86_64"a changé la donne pour moi.
Janusz Lenar

2
J'ai utilisé gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configpour OSX 10.12
Tim Krins

37

@Winfield l'a dit :

Le pg gem nécessite la liaison des bibliothèques clientes postgresql . Cette erreur signifie généralement qu'il ne peut pas trouver vos bibliothèques Postgres. Soit vous ne les avez pas installés, soit vous devrez peut-être passer --with-pg-dir=à l'installation de votre gem.

Plus que cela, il vous suffit --with-pg-config=de l'installer.

Sur un Mac

Si, par hasard, vous avez également installé postgres via le site Web sur Mac, ce sera quelque part comme /Applications/Postgres.app/Contents/Versions/9.3/bin.

Donc, soit vous le passez sur l'installation de gem:

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

Ou vous définissez correctement le CHEMIN . Étant donné que cela peut être trop, pour définir temporairement le CHEMIN:

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

2
pour une version spécifique:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland

Il existe un dossier de liens symboliques appelé à l' latestintérieur du dossier de contenu Postgres.app qui est utile dans le cas où 9.3 n'est plus expédié. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber

24

Je n'avais pas installé postgresql, donc je l'ai installé en utilisant

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

sur Ubuntu 12.04.

Cela l'a résolu.


Mettre à jour:

Utilisez la dernière version:

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

Correction du problème pour moi mais sur un mac (avec homebrew) j'ai dû exécuter cette commande:brew install postgresql
gMale

19

Cela a fonctionné dans mon cas:

sudo apt-get install libpq-dev

J'ai utilisé:

  • Ubuntu 14.04.2 LTS
  • Ruby 2.2.2
  • Rails 4.2.1

12

Si vous utilisez Postgres.app sur Mac, vous pouvez résoudre ce problème une fois pour toutes comme ceci:

Tout d' abord gem uninstall pg, puis modifiez votre ~/.bash_profileou ~/.zshrcfichier ou équivalent et ajouter:

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

Ensuite bundle installet gem install pgdevraient tous deux fonctionner comme prévu.


Merci, cela fonctionne également en utilisant brew installé postgreSQL # PostgreSQL bin path export PATH = $ PATH: /usr/local/Cellar/postgresql/9.5.0/bin/
Benoit

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

remplacez le 9.1 pour la version installée sur votre système.


1
Cela m'a aidé sur un Mac, n'importe qui sait quel est le chemin par défaut et comment le changer?
Steve

Fonctionne sur OS X Maveric
Marek Kirejczyk

5

Sur Mac OS (El Capitano). Vous pouvez simplement utiliser:brew install postgresql


1
Oui! C'était tout ce dont j'avais besoin! Installer sur OS X propre, pas Postgres.app
Lane Rettig

3

Le pg gem nécessite la liaison des bibliothèques clientes postgresql. Cette erreur signifie généralement qu'il ne peut pas trouver vos bibliothèques Postgres. Soit vous ne les avez pas installés, soit vous devrez peut-être passer --with-pg-dir = à votre installation gem.


3

Pour les utilisateurs Mac

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

Cela devrait faire l'affaire


3

À utiliser avec le ARCHdrapeau.

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

Cela a résolu le même problème que vous rencontrez.


2

J'aurais ce problème sur Linux Mint (Maya) 13, et je l'ai résolu en installant postgresql et postgresql-server:

apt-get install postgresql-9.1 

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

2

Quel que soit le système d'exploitation que vous exécutez, consultez le fichier journal du "Makefile"pour voir ce qui se passe, au lieu d'installer des choses à l'aveugle.

Dans mon cas, MAC OS, le fichier journal est ici:

/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

Les journaux indiquent que le fichier de création n'a pas pu être créé en raison des éléments suivants:

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

Dans le fichier mkmf.log, vous verrez qu'il n'a pas pu trouver les bibliothèques requises pour terminer la construction.

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

Après l'exécution "brew install postgresql", je peux voir toutes les bibliothèques requises:

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

Je rencontre ce problème ennuyeux avec PG depuis des années. J'ai créé cet essentiel pour vous aider.

La commande suivante fonctionne toujours pour moi.

# 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

J'ai dû le faire sur CentOS 5.8. L'exécution bundle installcontinuait de causer des problèmes car je ne pouvais pas le forcer à utiliser une version PG particulière.

Je ne peux pas non yum erase postgresql postgresql-develplus, à cause de problèmes de dépendance (cela supprimerait php, http, etc.)

La solution? Mess $ PATH temporairement pour donner la préférence à la mise à jour de pgsql au lieu de celle par défaut:

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

Fondamentalement, avec les commandes ci-dessus, il regardera /usr/pgsql-9.2/bin/pg_configavant celui de/usr/bin/pg_config


1

Si vous utilisez jruby au lieu de ruby, vous aurez des problèmes similaires lors de l'installation du pg gem. Au lieu de cela, vous devez installer l'adaptateur:

gem 'activerecord-jdbcpostgresql-adapter'


0

Vous allez simplement ici pour voir si votre version pg prend en charge la plate-forme Win32, puis utilisez cette commande pour installer:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.