web-dev-qa-db-fra.com

Impossible d'installer PG gem sur mon mac avec Mavericks

J'essaye d'installer le gem pg afin de travailler à nouveau avec mes Rails projets. Mais j'obtiens cette erreur:

Construire des extensions natives. Cela pourrait prendre un certain temps ... ERREUR: Erreur lors de l'installation de la pg: ERREUR: Echec de la création de l'extension native de gem.

/Users/jeanosorio/.rvm/rubies/Ruby-2.0.0-p247/bin/Ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If

la construction échoue, veuillez réessayer avec --with-pg-config =/chemin/vers/pg_config en recherchant libpq-fe.h ... no Impossible de trouver l'en-tête 'libpq-fe.h * extconf.rb failed * Impossible de créer le Makefile pour une raison quelconque, probablement le manque de bibliothèques et/ou d’en-têtes nécessaires. Consultez le fichier mkmf.log pour plus de détails. Vous pouvez avoir besoin d'options de configuration.

Options de configuration fournies: --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 =/Users/jeanosorio/.rvm/rubies/Ruby-2.0.0-p247/bin/Ruby --with-pg --without-pg --with-pg-config --without-pg -config --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} /

Les fichiers Gem resteront installés dans /Users/jeanosorio/.rvm/rubies/Ruby-2.0.0-p247/lib/Ruby/gems/2.0.0/gems/pg-0.17.0 pour inspection. Résultats consignés dans /Users/jeanosorio/.rvm/rubies/Ruby-2.0.0-p247/lib/Ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out

J'ai essayé tout ce que j'ai trouvé sur stackoverflow mais j'obtiens toujours cette erreur.

Si j'essaie d'installer postgresql en utilisant Brew, j'obtiens l'avertissement suivant:

Attention: postgresql-9.2.4 est déjà installé, il n'est tout simplement pas lié

Si j'essaie de lier

lien brassage postgresql Liens /usr/local/Cellar/postgresql/9.2.4 ... Avertissement: impossible de lier postgresql. Dissocier ...

Erreur: impossible de lier symboliquement le fichier: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7/usr/local/share/man/man7 n'est pas accessible en écriture. Vous devriez changer ses permissions.

Aidez-moi, s'il vous plaît

REMARQUE: j'ai déjà installé les outils de ligne de commande pour mavericks.


Si je désinstalle avec homebrew et que j'essaye de l'installer à nouveau, j'obtiens cette erreur:

==> Téléchargement http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2

############################################ ###################### 100,0%

==> Corriger le fichier de correctif src/pl/plpython/Makefile corrigeant le fichier contrib/uuid-ossp/uuid-ossp.c ==> ./configure --prefix =/usr/local/Cellar/postgresql/9.2.4 - datadir =/usr/local/Cellar/postgresql/9.2.4/share/postgresql --docdir =/usr/local/Cellar/p ==> make install-world ==> Mises en garde

Notes de construction

Si les versions de PostgreSQL 9 échouent et que vous avez la version 8.x installée, vous devrez peut-être d'abord supprimer la version précédente. Voir:
https://github.com/mxcl/homebrew/issues/issue/251

Créer/mettre à niveau une base de données

S'il s'agit de votre première installation, créez une base de données avec: initdb/usr/local/var/postgres -E utf8

Pour migrer les données existantes d'une version majeure précédente (antérieure à la version 9.2) de PostgreSQL, reportez-vous à la section:
http://www.postgresql.org/docs/9.2/static/upgrading.html

Chargement d'extensions

Par défaut, Homebrew crée toutes les extensions Contrib disponibles. Pour voir une liste de toutes les extensions disponibles, à partir de la ligne de commande psql, exécutez:
SELECT * FROM pg_available_extensions;

Pour charger l'un des noms d'extension, accédez à la base de données souhaitée et exécutez: CREATE EXTENSION [nom de l'extension];

Par exemple, pour charger l'extension tablefunc dans la base de données actuelle, exécutez: CREATE EXTENSION tablefunc;

Pour plus d'informations sur la commande CREATE EXTENSION, voir:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Pour plus d'informations sur les extensions, voir:
http://www.postgresql.org/docs/9.2/static/contrib.html

Autre

Certaines machines peuvent nécessiter l’approvisionnement en mémoire partagée:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Lorsque vous installez la gem postgres, il est recommandé d’inclure ARCHFLAGS: ARCHFLAGS = "- Arch x86_64 "gem install pg

Pour installer des gems sans Sudo, consultez le wiki Homebrew.

Pour lancer launchg postgresql au moment de la connexion: ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Ensuite, chargez postgresql maintenant: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Or , si vous ne voulez pas/n'avez pas besoin de launchctl, vous pouvez simplement exécuter: pg_ctl -D/usr/local/var/postgres -l /usr/local/var/postgres/server.log start Avertissement: impossible de lier postgresql. Unlinking ... Error: Le brew link l'étape n'a pas abouti correctement La formule est construite, mais elle n'est pas liée de manière symbolique dans/usr/local /usr/local/Cellar/postgresql/9.2.4: 2831 fichiers, 38M, construit en 4.9 minutes


SOLUTION:

J'exécute cette commande afin de changer les permissions du dossier:

Sudo chown jeanosorio/usr/local/share/man/man7

Ensuite

lien brassage postgresql Liens /usr/local/Cellar/postgresql/9.3.1 ... 421 liens symboliques créés

Et enfin:

Sudo ARCHFLAGS = "- Arch x86_64" gem install pg

Récupération: pg-0.17.0.gem (100%) Création d'extensions natives. Cela pourrait prendre un certain temps ... Installation réussie pg-0.17.0

95
Jean

Si vous souhaitez éviter d'utiliser MacPorts, vous pouvez télécharger le Postgres App et le placer dans le répertoire de l'application.

Ensuite, spécifiez l'emplacement du fichier nouvellement téléchargé pg_config:

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

Si vous rencontrez un problème d'en-tête manquant, essayez de spécifier le répertoire include de l'application:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
239
Yuri

Utilisez infusion pour obtenir postgresql

brew install postgresql

Vérifiez que vous avez pg_config dans la distribution installée. J'ai trouvé le mien dans

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Vérifier via:

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Une fois cela fait, installez le pg gem avec

env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
69
Ayush Goel

Je n'ai pas pu installer Postgres via MacPorts. Au lieu de cela, j'ai installé Postgress.app . et appelé

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

Remarque: dans les versions plus récentes (au moins en 9.3), le chemin est en réalité: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

35
iceui2

Voici une autre alternative si vous souhaitez utiliser directement le programme d’installation de postgresql. Après avoir mis à jour des francs-tireurs, il faut commencer par quelques obstacles. Voici ce que j'ai fait:

Installez d'abord les outils de ligne de commande xcode:

xcode-select --install

Téléchargez et installez la dernière version de PostgreSQL (9.3.1). Dans mon cas, je viens d'utiliser l'installateur graphique. Voici le lien vers la page de téléchargement:

http://www.enterprisedb.com/products-services-training/pgdownload#osx

Il suffit de choisir tous les paramètres par défaut qu'il vous donne. Dans mon cas, il a installé postgres dans le répertoire suivant. Si vous l’avez installé dans un autre répertoire, rappelez-vous le chemin que vous avez choisi, car vous en aurez besoin très bientôt.

/Library/PostgreSQL/9.3

Si vous essayez maintenant d’installer la dernière version de Pg gem (0.17.0), vous devrez passer quelques options sur la ligne de commande. C'est ce que j'ai utilisé:

ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

Si vous avez installé postgres dans un emplacement différent, vous devrez corriger le chemin d'accès au fichier pg_config.

S'il se plaint d'un fichier manquant 'libpq.5.dylib' lors de l'installation du pg gem, vous devez créer un lien symbolique pointant vers l'emplacement réel de ce fichier. Postgres le recherche dans votre répertoire/usr/local/lib/afin de créer un lien symbolique et de le rediriger vers son emplacement actuel. Dans mon cas je devais courir:

Sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib

Une fois que vous avez fait cela, essayez à nouveau d'installer la gemme et espérons que cela fonctionnera pour vous de la même manière que pour moi.

10
2potatocakes

Pour moi, sur Yosemite, je n'avais pas besoin de spécifier pg_config chemin. Ce qui suit a réussi.

brew install postgresql
Sudo env ARCHFLAGS="-Arch x86_64" gem install pg

On dirait que le drapeau d'architecture est la clé.

8
dinigo

Si vous avez un homebrew, tapez simplement:

$ brew installer postgresql

8
user2373148

Dans mon cas (j'avais besoin de PG 0.16.0 sur Mavericks), j'ai installé postgresql via MacPorts

Sudo port install postgresql90

puis

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Pour la dernière version, vous devez déduire -v '0.16.0'

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Si vous avez installé Homebrew, n'installez pas MacPorts avant vous découvrez leur coexistence

5
Gi0

Ça marche pour moi! (Postgres 93, mac ox 10.9.1) 1. télécharger @ http://postgresapp.com/ et que

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
5
meck373

Placez le --with-pg-config Manquant dans le fichier de configuration de Bundler: /Users/<your_user>/.bundle/config Pour vous simplifier la vie.

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs

Ensuite, exécutez à nouveau bundle install.

5
Bruno Buccolo

Dans mon cas, cela ne fonctionnait pas si vous ne spécifiez pas les drapeaux Arch, OS X 10.10.3 et postersApp 9.4.

Sudo env ARCHFLAGS="-Arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
4
Rachidi Mohamed

Je suis resté bloqué sur mon installation de bundle pendant 3 jours. Tout essayé comme l'ajout de env ARCHFLAGS = "- Arch x86_64" gem installer pg - - avec-pg-config =/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_config

J'ai pu voir pg gem en train d'être installé après cette commande, mais il ne s'agissait toujours pas d'une installation en bundle, ce qui était pénible, car je ne sais pas quoi écrire dans Gemfile, à l'exception de gem 'pg'

Ce qui a finalement fonctionné pour moi a été de constater que mon pg_config était dans / Library/PostgreSQL/9.3/bin/pg_config et que, par défaut, l’installation de l’ensemble de fichiers Gemfile est présentée dans / usr/local/bin/pg_config

Je viens d'exécuter la commande suivante et la magie s'est produite. bundle config build.pg --with-pg-config =/Bibliothèque/PostgreSQL/9.3/bin/pg_config

4
Neeraj Gupta

Dans mon cas, j’ai désinstallé la version installée via homebrew et suis passé à Postgres.app (v9.3.4.2 au moment de la rédaction).

Cela semblait fonctionner uniquement lors de l'ajout des indicateurs d'architecture d'environnement et de la spécification du chemin d'accès à pg_config. Votre kilométrage peut varier, alors cette réponse pourrait vous aider avec des variations sur l'emplacement de pg_config.

Voici la dernière commande complète qui a fonctionné pour moi:

env ARCHFLAGS="-Arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
2
Marius Butuc

Sudo ARCHFLAGS = "- Arch x86_64" gem install pg - --with-pg-config =/usr/local/bin/pg_config

2
Taysky

Voici ce que cela a fonctionné pour moi:

gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
2
tokhi

Le moyen le plus simple pour moi de résoudre ce problème consistait à utiliser Postgres.app et à configurer mes env vars so gem install pg fonctionne simplement (au lieu d’exiger le --with-pg-config drapeau).

Utilisation de Homebrew Cask ,

brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile

# now it just works
gem install pg
2
smoll

Ce qui a fonctionné pour moi sur 10.9.3 avec Xcode 5.1.1 était le suivant:

brew update
brew install postgresql 
gem install pg -v '0.17.1'

J'avais besoin de pg 0.17.1

1
Tom Andersen

Sous OS X, Mavericks avec la dernière application Postgres effectue les opérations suivantes avec les privilèges Sudo

env ARCHFLAGS="-Arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
1
Vailancio Rodrigues

Pour toute âme perdue, il y a toujours ce problème sans résolution et un brew est installé Ruby et postgres. Voici les étapes suivantes pour vous assurer de:

  • Assurez-vous que votre version de Ruby n’a pas été installée avec le --universal drapeau.
    • C'était la chose la plus difficile à comprendre, j'avais --universal qui était la racine finale du problème.
  • Assurez-vous d’avoir correctement initialisé postgresql avec les commandes initdb et createdb (cherchez ailleurs la marche à suivre pour ce faire).
  • Assurez-vous que Xcode (facultatif) et command line tools est installé; sur le terminal:
    • xcode-select --install
    • Sudo xcodebuild -license (si Xcode est installé) ou ouvrez l'application et acceptez le contrat de licence.
    • Redémarrer l'ordinateur
  • which Ruby, which gem et which postgres devrait montrer /usr/local/bin/Ruby, /usr/local/bin/gem et /usr/local/bin/postgres avec respect.
  • Sur le terminal:

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • o
    • env ARCHFLAGS="-Arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • En vérifiant que toutes ces étapes sont satisfaites, j'ai pu résoudre les erreurs suivantes:

    • Ruby.h_en-tête d'erreur
    • developer tools installed first Erreur
1
link_boy

La même erreur se produisait lors de l’exécution de l’installation groupée de pg gem (avec Mac OS X Mavericks). Après des heures de recherche, j'ai trouvé la solution. J'ai installé postgres en utilisant homebrew

brew install postgres

Après l’installation, j’ai créé une nouvelle Rails avec Postgres. J’ai exécuté

bundle install

en vain (même erreur que la question). j'ai utilisé

which psql

pour savoir où mon postgres a été installé, il est revenu

/usr/local/bin/psql

avant de relancer l’installation en bundle, j’ai dû changer le chemin global en build.pg en lançant le programme suivant:

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

puis j'ai couru paquet installer à nouveau et le tour est joué! J'ai utilisé le postgres où brassé installé.

1
Rav Johal

Pour moi, le message d'erreur ressemblait à ceci:

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...

checking for pg_config... no

No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

Comme le message d'erreur le montre, il essaie d'exécuter la commande/script "pg_config". Il suffit donc de l’ajouter au chemin où que se trouve votre installation Postgres. Dans mon cas, j'ai fait:

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

ensuite

bundle

C'est ça.

0
paneer_tikka

J'étais avec le même problème, c'était la solution que j'ai trouvée.

Si vous exécutez brew doctor, il vous dira que vous avez probablement installé quelque chose sans modification qui a modifié les autorisations de certains dossiers. Vous devez donc modifier ces autorisations pour ce dossier.

À l'intérieur /usr/local/share/man, tu peux faire ce qui suit:

Sudo chown [yourusername] man7

Puis:

brew link postgres

J'espère que ça aide!

0
Gustavo Semião-Lobo
Sudo su 

ensuite

ARCHFLAGS="-Arch x86_64" gem install pg -v '0.18'

travaillé le 10.10.2

0
Keaton Burleson

De même, après l'installation de la "mise à jour groupée" de Mavericks, une erreur s'est produite sur la gem pg, qui est uniquement utilisée en production et non localement.

J'utilise Brew pour gérer mes paquets et postgresql était déjà installé, mais j'avais quand même l'erreur "no pg_config".

Le correctif consistait simplement à "installer Brew postgresql", puis à "installer brass postgresql". Après quoi, j'ai immédiatement pu exécuter avec succès la "mise à jour groupée".

0
Shannon Perkins

Tout d'abord trouver l'emplacement de pg_config

Sudo find / -name "pg_config" -print

La réponse est /Library/PostgreSQL/9.1/bin/pg_config dans ma configuration (MAC Maverick)

Ensuite, essayez d'installer quelque chose comme ci-dessous

gem install pg - --with-pg-config =/Bibliothèque/PostgreSQL/9.3/bin/pg_config

si cela ne fonctionne pas, essayez de vérifier de quelle manière vous avez installé postgresql

brassage/port mac/configuration

alors vous devez essayer l'option pertinente à la même chose.

Je vous remercie.

RAM

0
Rameshwar Vyevhare

Si, après avoir tout essayé, l'installation ne s'installe toujours pas, essayez d'ouvrir Xcode et d'accepter le contrat de licence.

0
hattenn