J'utilise la pré-version de Ruby on Rails 3.1. J'aime utiliser PostgreSQL, mais le problème est d'installer la pg
gemme. Cela me donne l'erreur suivante:
$ 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
Comment résoudre ce problème?
Réponses:
Il semble que dans Ubuntu cet en-tête fasse partie du
libpq-dev
package (au moins dans les versions Ubuntu suivantes: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr) et 18.04 (castor bionique)):Essayez donc d'installer
libpq-dev
ou son équivalent pour votre système d'exploitation:sudo apt-get install libpq-dev
yum install postgresql-devel
brew install postgresql
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
zypper in postgresql-devel
pacman -S postgresql-libs
la source
durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ gem install libpq-dev ERROR: Could not find a valid gem 'libpq-dev' (>= 0) in any repository durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$
apt-get install postgres-server-dev-{pg.version}
Votre réponse ne fonctionne plus avec postgresql 9.4 sur Ubuntu 14.04 Voir: stackoverflow.com/a/28837453/75194Sur macOS (anciennement Mac OS X et OS X ), utilisez Homebrew pour installer les en-têtes appropriés:
puis en cours d'exécution
devrait marcher.
Alternativement, au lieu d'installer le tout
postgresql
, vous pouvezbrew install libpq
et exporter le correctPATH
etPKG_CONFIG_PATH
comme expliqué dans la section 'Avertissements'la source
brew install postgressql
je coursARCHFLAGS="-arch x86_64" gem install pg
et fonctionne bien.brew install libpqxx
sur mac OSXlibpqxx
s'installepostgresql
comme dépendance, c'est donc essentiellement la même chose quebrew install postgresql
postgresql
, vous pouvezbrew install libpq
et exporter le correctPATH
etPKG_CONFIG_PATH
comme expliqué dans la section «Avertissements».J'avais également essayé de le faire
gem install libpq-dev
, mais j'ai reçu cette erreur:Cependant, j'ai trouvé que l'installation avec
sudo apt-get
(que j'essaie d'éviter d'utiliser avec Ruby on Rails) fonctionnait, c'est-à-direalors j'ai pu faire
sans problèmes.
la source
libpq-dev
paquet Ubuntu / Debian / ....Je pourrais résoudre cela d'une autre manière. Je n'ai pas trouvé la bibliothèque sur mon système. Je l'ai donc installé à l'aide d'une application du site Web principal de PostgreSQL. Dans mon cas (OS X), j'ai trouvé le fichier sous
/Library/PostgreSQL/9.1/include/
une fois l'installation terminée. Vous pouvez également avoir le fichier ailleurs selon votre système si vous avez déjà installé PostgreSQL.Grâce à ce lien sur la façon d'ajouter un chemin supplémentaire pour l'installation de gem , j'ai pu pointer le gem vers la lib avec cette commande:
Après cela, cela fonctionne, car il sait maintenant où trouver la bibliothèque manquante. Remplacez simplement le chemin par le bon emplacement pour votre libpq-fe.h
la source
export CONFIGURE_ARGS="with-pg-include=/usr/local/Cellar/postgresql/9.3.1/include/"
pg_*
scripts dans le $ PATH comme ceci:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. J'ai installé postgres 9.3 comme ceci:yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm && yum install postgresql93 postgresql93-contrib postgresql93-server postgresql93-devel
gem install pg -- with-pg-include=/Library/PostgreSQL/9.1/include/
export CONFIGURE_ARGS="with-pg-config=/path/to/postgres/bin/pg_config"
. L'pg_config
exécutable sera appelé pour obtenir toutes les options requises du compilateur et de l'éditeur de liens - vous pouvez l'exécuter vous-même pour les voir.j'ai réussi sur CentOS 7.0.1406 en exécutant les commandes suivantes:
Alternativement , vous pouvez configurer bundler pour toujours installer
pg
avec ces options (utile pour exécuter bundler dans des environnements de déploiement),bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
la source
Pour CentOS 6.4,
a bien fonctionné!
la source
sudo port install postgresql-devel
.Juste pour info:
Application Ruby on Rails 4 sous OS X avec PostgresApp (dans ce cas, la version 0.17.1 est nécessaire - une sorte de vieux projet):
la source
/Applications/Postgres.app/Contents/Versions/10/bin/pg_config
Sur Mac OS X, exécutez comme ceci:
***/path/to/pg_config***
est le chemin vers pg_configla source
sudo find / -name "pg_config"
, puisgem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config
utiliser le chemin que je viens de découvrir.Dans mon cas, c'était un package
postgresql-server-dev-8.4
(je suis sur Ubuntu 11.04 (Natty Narwhal), 64 bits).la source
La bonne réponse pour les utilisateurs de Mac avec Postgres.app est de s'appuyer sur le
libpq
package fourni avec. Par exemple, avec la version 9.4 (en cours de rédaction), tout ce dont vous avez besoin est:Cela gardera votre
pg
bijou synchronisé avec exactement la version de PostgreSQL que vous avez installée. Installer quelque chose de Homebrew est un gaspillage dans ce cas.la source
J'ai eu le même problème sur Amazon Linux. J'ai pu trouver l'en-tête
libpq-fe.h
, mais ça n'a pas fonctionné.Il provenait des différentes versions des packages installés par les différents utilisateurs de la machine. PostgreSQL 9.2 et PostgreSQL 9.3 ont été installés. Assurez-vous donc de votre version de PostgreSQL avant d'inclure les bibliothèques.
Pour moi, la ligne de commande magique était:
Source: Un guide presque idiot pour installer PostgreSQL 9.3, PostGIS 2.1 et pgRouting avec Yum
la source
Une réponse plus générale pour toute distribution basée sur Debian (qui inclut Ubuntu) est la suivante. Tout d'abord, installez le
apt-file
package exécuté en tant que root:Cela vous permet de rechercher des packages contenant un fichier. Ensuite, mettez à jour sa base de données en utilisant
(cela peut être exécuté en tant qu'utilisateur normal). Ensuite, recherchez l'en-tête manquant en utilisant:
Sur ma machine, cela donne:
Voilà !
la source
Pour MacOS sans installer le serveur PostgreSQL:
la source
Sur un Mac, je l'ai résolu en utilisant ce code:
la source
J'utilise Postgres.app sur un Mac et je devais
première. alors
travaillé pour moi.
la source
J'ai eu le même problème sur Mac OS, mais j'ai installé facilement la gemme PostgreSQL en utilisant ce qui suit dans un terminal:
(J'ai d'abord installé PostgreSQL avec
brew install postgresql
.)la source
J'ai trouvé cette réponse, et c'était la seule qui fonctionnait pour moi (Mac OS) - après avoir fait des recherches pendant environ deux jours:
Voir la question Stack Overflow Impossible de trouver la bibliothèque client PostgreSQL (libpq) .
la source
J'ai récemment mis à niveau vers Mac OS X v10.10 (Yosemite) et j'ai eu du mal à construire le
pg
joyau.L'erreur signalée était typique:
Ma solution était
gem uninstall pg
etbundle update pg
pour remplacer la pierre précieuse avec le dernier. J'ai exécutébrew update; brew upgrade
après l'installation de Yosemite pour obtenir les dernières versions des packages que j'avais installés précédemment.la source
Sur Ubuntu, installez le "libpq-dev" pour vous débarrasser de ce problème.
la source
sudo apt-get install postgresql
avantlibpq-dev
Sur CentOS, j'ai installé en
libpq-dev package
utilisant la commande ci-dessousL'exécution a
gem install pg
renvoyé la même erreur que "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
".L'installation de la gemme comme ci-dessous a résolu mon problème
la source
Sur FreeBSD (9.1) le paquet nécessaire est / usr / ports / database / postgresql-server * qui, une fois installé, installera également le fichier d'en-tête requis qui fera échouer l'installation gem de "pg". Cette réponse m'a aidé à trouver la solution, mais la différence de noms de packages a nécessité un peu de recherche.
Espérons que cela aide quelqu'un à éviter un peu de grattage de tête lors de la recherche du paquet "-dev" sur un système FreeBSD!
la source
Sur Debian 7.0, 64 bits (Wheezy), lancez simplement:
Après avoir correctement installé libpq-dev, exécutez:
la source
Sous CentOS 6.5 (Squeeze), j'ai créé un fichier:
avec contenu:
Notez ici que vous devez définir votre chemin PostgreSQL avec le fichier pg_config. Vous pouvez le trouver avec la commande:
Enregistrez le fichier:
et essayez d'exécuter à nouveau votre commande.
Remarque: Chaque fois que vous modifiez la configuration de Bash - en changeant la configuration de profile.d - vous devez recharger Bash.
la source
pg_*
scripts dans le chemin comme ceci:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Après cela, je n'ai plus eu besoin de scripts ou de variables d'environnement supplémentaires.L'emplacement de
libpq-fe.h
dépend de l'emplacement de votre installation PostgreSQL (qui dépend de la façon dont vous l'avez installée). Utilisezlocate
( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ) pour trouver lelibpq-fe.h
fichier sur votre machine. S'il existe, il se trouvera dans leinclude
répertoire de votre installation PostgreSQL.Le
bin
répertoire, qui contientpg_config
, sera dans le même répertoire que leinclude
répertoire. Comme le suggère l'erreur, utilisez l'option --with-pg-config pour installer la gemme:Notez que vous devrez peut-être exécuter
updatedb
si vous n'avez jamais utilisélocate
ou si vous n'avez pas mis à jour depuis l'installation de PostgreSQL.la source
--
avant--with-pg-config=...
j'obtiens une erreur: ERREUR: lors de l'exécution de gem ... (OptionParser :: InvalidOption) option invalide: --with-pg-config = / usr / bin / pg_config)J'ai finalement résolu ce problème, mais sans utiliser les méthodes décrites précédemment.
En utilisant
brew install postgresql
, je découvre qu'il avait déjà été installé, mais pas lié.Découvrez où PostgreSQL est installé et supprimez-le,
Là
brew install postgresql
encore,brew link postgresql
gem install pg
la source
Je viens de l'avoir sur OSX en cours d'exécution et
[email protected]
.Ma solution était la suivante:
la source
J'ai eu ce problème avec Postgresql 9.6. J'ai pu le réparer en faisant:
la source
J'ai rencontré la même erreur avec postgres installé via asdf. Les solutions pg-config n'ont pas fonctionné pour moi. Au lieu de cela, j'ai dû localiser le dossier include de postgres qui contient le fichier et exécuter la commande avec l'
--with-pg-include
indicateurla source
Pour
AltLinux
le packagepostgresqlx.x-devel
(dans mon caspostgresql9.5-devel
) doit être installé:la source
J'ai résolu cela en installant le paquet «postgresql-common». Ce paquet fournit le
pg_config
binaire qui est probablement ce qui vous manquait.la source