web-dev-qa-db-fra.com

Comment installer le gem pg de PostgreSQL sur Ubuntu?

J'essaie d'installer le gem pg de PostgreSQL pour Ruby.

J'ai émis la commande suivante:

gem install pg

J'ai installé Ruby 1.9.2 en utilisant RVM.

La commande ci-dessus me montre l'erreur suivante.

L'erreur est:

Building native extensions.  This could take a while...

ERROR:  Error installing pg:

ERROR: Failed to build gem native extension.

/home/User/.rvm/rubies/Ruby-1.9.2-preview3/bin/Ruby extconf.rb

checking for pg_config... yes
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)

*** 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/User/.rvm/rubies/Ruby-1.9.2-preview3/bin/Ruby
 --with-pg
 --without-pg
 --with-pg-config
 --without-pg-config
 --with-pg-dir
 --without-pg-dir
 --with-pg-include
 --without-pg-include=${pg-dir}/include
 --with-pg-lib
 --without-pg-lib=${pg-dir}/lib
 --enable-static-build
 --disable-static-build
 --with-pqlib
 --without-pqlib
 --with-libpqlib
 --without-libpqlib
 --with-ms/libpqlib
 --without-ms/libpqlib

Gem files will remain installed in /home/user/.rvm/gems/Ruby-1.9.2-preview3/gems/pg-0.9.0 for inspection.

Results logged to /home/user/.rvm/gems/Ruby-1.9.2-preview3/gems/pg-0.9.0/ext/gem_make.out

Je ne sais pas quelle est l'erreur ...

262
palani

Vous devez installer le paquet dev postgreSQL avec l’en-tête de PostgreSQL.

Sudo apt-get install libpq-dev
622
shingara

Après avoir lu et lutté pendant 2 jours, et essayé beaucoup de choses trouvées dans d’autres notes, la ligne suivante était le remède pour moi sur Ubuntu Lucid 10.04 mélangé à des paquets Maverick et à RVM (Ruby 1.9.2-p290, version 1.10.2 rubygems 1.8.15, Rails 3.0.1, postgres 8.4.10):

gem install pg  --   --with-pg-lib=/usr/lib   

le résultat: 

Building native extensions.  This could take a while...  
Successfully installed pg-0.13.1  
1 gem installed  
Installing ri documentation for pg-0.13.1...  
Installing RDoc documentation for pg-0.13.1...  

{oui - enfin le succès} !! ! Notez que la sortie de l'exécution de pg_config manque de l'élément -lpq dans la variable LIBS de mon installation Ubuntu/Postresql !!

et pourquoi le passage de pq à pg dans certains endroits - déroutant pour les débutants?

ce que je ne comprends toujours pas, c’est le double jeu de - et - avec (option mais je suis bien au-delà de ma profondeur de toute façon

38
jdupont

Je suis sur Ubuntu 12.10 et j'exécute cette commande:

apt-get install libpq-dev

m'a aidé - après cela couru gem installer pg -v "0.14.1", et tout bon maintenant

28
Xander

Besoin d'ajouter un paquet 

Sudo apt-get install libpq-dev

installer pg gem dans RoR

24

L'installation de libpq-dev n'a pas fonctionné pour moi. J'avais aussi besoin d'installer build-essential

Sudo apt-get install libpq-dev build-essential
19
philwhln

Solution simple pour les utilisateurs d'ubuntu ...

Commencez par désinstaller tous les paquets postgres, puis lancez ces commandes ...

Sudo apt-get install postgresql
Sudo apt-get install postgresql-client libpq5 libpq-dev

# for rvm (single user)
mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm 

# for rvm (multi-user)
mv /usr/local/rvm/usr/lib /usr/local/rvm/usr/lib_rvm

gem install pg  --   --with-pg-lib=/usr/lib

Puis lancez 'bundle install'. Tout ira bien. Bonne journée!

16

Dans Ubuntu, cela fonctionne pour moi, j'espère vous aider:

Sudo apt-get install libpq-dev

et

gem install pg  --   --with-pg-lib=/usr/lib 
10
Marcos Riveros

Pour les utilisateurs de .RVM, ce sera mieux:

rvmsudo gem install pg -- --with-pg-lib=/usr/lib 

cela a fonctionné pour moi (après avoir vu la version de jdupont)

9
vekozlov

Si vous avez installé libpq-dev et que vous rencontrez toujours ce problème, cela est probablement dû aux versions en conflit de libssl et de ses amis OpenSSL - la version du système Ubuntu dans/usr/lib (sur laquelle libpq est construit) et une deuxième version installée dans $ HOME/.rvm/usr/lib (ou/usr/local/rvm/usr/lib s'il s'agit d'une installation système). Vous pouvez le vérifier en renommant temporairement $ HOME/.rvm/usr/lib et en vérifiant si "gem install pg" fonctionne.

Pour résoudre le problème, rvm reconstruit à l'aide des bibliothèques système OpenSSL (vous devrez peut-être supprimer manuellement libssl. * Et libcrypto. * Du répertoire rvm/usr/lib):

rvm reinstall 1.9.3 --with-openssl-dir=/usr

Cela a finalement résolu le problème pour moi sur Ubunto 12.04.

6
Mike Blackwell

Essaye ça 

Sudo apt-get install postgresql postgresql-contrib libpq-dev

Vous devez installer le serveur de base de données PG en premier lieu pour installer les clients. Ensuite, vous installez des clients.

Consultez cet article de blog pour en savoir plus sur la configuration initiale de PostGresSQL pour le développement de Ruby on Rails.

5
illusionist

Cela a résolu le problème pour moi sur Ubuntu 12.04 après que chaque suggestion ait échoué.

rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql
5
olafurg

J'essayais de configurer un projet Rails dans mon Ubuntu 16.04 fraîchement installé. J'ai rencontré le même problème lors de l'exécution du paquet. Fonctionnement

Sudo apt-get install aptitude

suivi par 

Sudo apt-get install libpq-dev

Résolu pour moi.

3
bis

Pour ceux qui ont toujours des problèmes après avoir essayé toutes les réponses sur cette page, voici ce qui a fonctionné (enfin):

Sudo apt-get install libgmp3-dev
gem install pg

C'était après faire tout le reste mentionné sur cette page.

postgresql 9.5.8
Ubuntu 16.10

2
marksiemers

J'ai eu le même problème et j'ai essayé beaucoup de variantes. Après quelques essais, je suis devenu capable de Sudo gem install, mais j'ai toujours du mal à l'installer sans Sudo.
Enfin, j'ai trouvé une décision - la réinstallation de RVM m'a aidé. Cela peut probablement faire gagner du temps à quelqu'un d'autre.

1
RaskolnikOFF

Pour ceux qui essayent d’installer Redmine, j’ai manqué Sudo apt-get install Ruby-all-dev après avoir essayé tout ce qui précède.

L'erreur initiale était mkmf.rb can't find header files for Ruby at /usr/lib/Ruby/include/Ruby.h.

1
Matthieu

Une autre solution à ce problème consiste à installer PostgreSQL avec Homebrew/linuxbrew: 

brew install postgresql

Par habitude, je n'aime pas utiliser Sudo à moins que je ne sois obligé de le faire.

1
Braden Mugg

apt-get install Ruby-dev a travaillé pour moi.

0
ssss4world