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
Rohit
la source
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:

14

Réponse ici: impossible d'installer pg gem sous Windows

Il n'y a pas de version native de Windows de la dernière version de pg (0.10.0) publiée hier, mais si vous installez 0.9.0, il devrait installer des binaires sans problème.

Nikita Barsukov
la source
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
Devaroop
la source
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

Mahattam
la source
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

Flaviu
la source
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/
cregox
la source
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
Lasse Skindstad Ebert
la source
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
Zainal
la source
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.

DuArme
la source
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.

jstnno
la source
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

Jones Agyemang
la source
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.

Winfield
la source
3

Pour les utilisateurs Mac

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

Cela devrait faire l'affaire

Ronak Jain
la source
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.

Aman Chhabra
la source
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
SAIDI Belkacem
la source
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
zee
la source
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

SharnieIvery
la source
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

Christian
la source
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'
Nuri
la source
1

Sur Mac brew install postgresALORSbundle install

Yar HTUT
la source
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

revskill
la source