web-dev-qa-db-fra.com

rails & libpq-dev des dépendances désagréables

Je ne sais pas si cette question est ici, mais je vais essayer. Salut. J'utilise ubuntu 11.10 dual-boot avec Windows Vista sur ma machine. Sur Ubuntu, j'ai installé RVM, Rails gem, & PostgreSQL (le serveur Postgres, le client et d’autres paquets comme libpq5, car je l’ai installé via le Centre logiciel).

J'essaie de déployer mon application sur heroku, mais il me semble que j'ai besoin d'installer pg gem. J'ai essayé de l'installer, mais j'ai eu cette erreur à la place:

ERREUR: Impossible de créer une extension native de gem.

/home/pcr/.rvm/rubies/Ruby-1.9.3-p0/bin/Ruby extconf.rb recherche pg_config ... oui

Utilisation des valeurs de configuration de/usr/bin/pg_config

Vous devez installer postgresql-server-dev-X.Y pour créer une extension côté serveur ou libpq-dev pour créer une application côté client. Vous devez installer postgresql-server-dev-X.Y pour créer une extension côté serveur ou libpq-dev pour créer une application côté client.

vérification de libpq-fe.h ... * extconf.rb échoué *

Après avoir cherché google & stackoverflow pendant un moment, beaucoup de gens ont dit que libpq-dev devait être installé. J'ai essayé, via un centre de logiciel, mais je ne parviens pas à résoudre mes dépendances. J'ai essayé via apt-get, il a dit que j'avais besoin de libkrb5-dev et krb5-multidev. J'ai essayé Sudo apt-get install libpq-dev libkrb5-dev krb5-multidev et j'ai obtenu ceci:

Les paquetages suivants ont des dépendances non satisfaites: krb5-multidev:

Dépend de: libkrb5-3 (= 1.9.1 + dfsg-1ubuntu1) mais 1.9.1 + dfsg-1ubuntu2.1 doit être installé

Dépend de: libk5crypto3 (= 1.9.1 + dfsg-1ubuntu1) mais 1.9.1 + dfsg-1ubuntu2.1 doit être installé

Dépend de: libgssapi-krb5-2 (= 1.9.1 + dfsg-1ubuntu1) mais 1.9.1 + dfsg-1ubuntu2.1 doit être installé E: Impossible de corriger les problèmes, vous avez stocké des packages endommagés.

Mais j'ai déjà libkrb5-3, libk5crypto3 et libgssapi-krb5-2 (tous avec la version 1.9.1 + dfsg-1ubuntu2.1) sur mon système! Je pense que la version requise est peut-être 1.9.1 + dfsg-1ubuntu1. Donc, je dois peut-être d'abord supprimer les paquets 1.9.1 + dfsg-1ubuntu2.1. Pensez-vous que je puisse l'enlever en toute sécurité? J'ai essayé de supprimer l'un d'eux, mais le centre de logiciels me prévient qu'il supprimera également postgres, openssl-client, smbclient, cups et de nombreux autres packages.

Que dois-je faire pour résoudre ce problème? Et, pg gem doit-il vraiment être installé sur ma machine locale pour créer Rails app avec postgres en tant que dbms? Existe-t-il un moyen de "transférer" la responsabilité d'inclure pg gem à heroku à la place?

12
PatrixCR

La vraie solution est, comme correctement signalé par Amit Patel , d'installer libpq-dev


Voici une solution de contournement si vous ne parvenez pas à configurer votre ordinateur de développement. Vous pouvez utiliser sqlite sur votre machine locale et pg dans Heroku. Voici ce que vous devriez avoir dans votre Gemfile

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

Et utilisez cette commande pour installer bundle afin d’ignorer les gems de production:

bundle install --without production

N'oubliez pas que le fait de ne pas avoir le même environnement dans les machines de production et de développement n'est pas recommandé.

8
Arash Badie Modiri

J'ai le même problème aujourd'hui. J'ai suivi le message Vous devez installer postgresql-server-dev-XY pour créer une extension côté serveur ou libpq-dev pour créer une application côté client. Donc, libpq-dev et bundle Rails app à nouveau et l'erreur a disparu.

$ Sudo apt-get install libpq-dev
$ bundle install
32
Amit Patel