rails & libpq-dev brutte dipendenze


12

Non so se questa domanda appartiene qui, ma ci proverò. Ciao. Sto eseguendo Ubuntu 11.10 dual-boot con Windows Vista sul mio computer. Su Ubuntu ho installato RVM, rails gem e PostgreSQL (il server postgres, il client e altri pacchetti come libpq5, perché l'ho installato tramite Software Center).

Sto cercando di distribuire la mia app su heroku, ma sembra che debba installare pg gem. Ho provato a installarlo, ma ho ottenuto invece questo errore:

ERRORE: impossibile creare l'estensione nativa della gemma.

/home/pcr/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb verifica pg_config ... sì

Utilizzo dei valori di configurazione da / usr / bin / pg_config

Devi installare postgresql-server-dev-XY per creare un'estensione sul lato server o libpq-dev per creare un'applicazione sul lato client. Devi installare postgresql-server-dev-XY per creare un'estensione sul lato server o libpq-dev per creare un'applicazione sul lato client.

verifica libpq-fe.h ... * extconf.rb non riuscito *

Dopo aver cercato Google e StackOverflow per un po ', molte persone hanno affermato che è necessario installare libpq-dev. Ho provato, tramite il software center, ma non riesco a non soddisfare le dipendenze. Ho provato tramite apt-get, ha detto che ho bisogno di libkrb5-dev e krb5-multidev. Ho provato sudo apt-get install libpq-dev libkrb5-dev krb5-multideve ho ottenuto questo:

I seguenti pacchetti hanno dipendenze non soddisfatte: krb5-multidev:

Dipende da: libkrb5-3 (= 1.9.1 + dfsg-1ubuntu1) ma 1.9.1 + dfsg-1ubuntu2.1 deve essere installato

Dipende da: libk5crypto3 (= 1.9.1 + dfsg-1ubuntu1) ma 1.9.1 + dfsg-1ubuntu2.1 deve essere installato

Dipende da: libgssapi-krb5-2 (= 1.9.1 + dfsg-1ubuntu1) ma 1.9.1 + dfsg-1ubuntu2.1 deve essere installato E: Impossibile correggere i problemi, sono stati mantenuti pacchetti rotti.

Ma ho già libkrb5-3, libk5crypto3 e libgssapi-krb5-2 (tutti con la versione 1.9.1 + dfsg-1ubuntu2.1) sul mio sistema! Penso che forse la versione necessaria sia 1.9.1 + dfsg-1ubuntu1. Quindi, forse prima devo rimuovere i pacchetti 1.9.1 + dfsg-1ubuntu2.1. Pensi che sia sicuro per me rimuoverlo? Ho provato a rimuoverne uno, ma il software center mi avvisa che rimuoverà anche postgres, openssl-client, smbclient, cups e molti altri pacchetti.

Cosa devo fare per risolvere questo? E, pg gem è davvero necessario per essere installato sul mio computer locale per creare l'app Rails con Postgres come dbms? Esiste un modo per "consegnare" la responsabilità di includere pg gem in heroku?

Risposte:


8

La vera soluzione è, come correttamente sottolineato da Amit Patel , da installarelibpq-dev


Ecco una soluzione alternativa se non si è riusciti a configurare pg sulla propria macchina di sviluppo. È possibile utilizzare sqlite nella macchina locale e pag in Heroku. Ecco cosa dovresti avere nel tuo Gemfile

group :production do
  gem 'pg'
end

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

E usa questo comando per installare il bundle per ignorare le gemme di produzione:

bundle install --without production

Tieni presente che non è consigliabile non avere lo stesso ambiente nelle macchine di produzione e sviluppo.


Sì, questa è la risposta corretta. +1, lo faccio sempre.
gennaio

@jrg riscontri qualche problema nel fare questo? Chiedo perché heroku dice "non è raccomandato".
PatrixCR,

Heroku non lo consiglia perché in genere si desidera avere lo stesso ambiente di sviluppo del server, tuttavia, fintanto che si utilizza ActiveRecord o DataMapper e non si scrive SQL non elaborato, si dovrebbe andare bene il 99% delle volte. :)
jrg

1
@PatrixCR no, heroku lo farà per te.
gennaio

1
L'uso di sqlite è una soluzione alternativa. Qual è la soluzione allora?
Amit Patel,

32

Ho avuto lo stesso problema oggi. Ho seguito il messaggio È necessario installare postgresql-server-dev-XY per creare un'estensione sul lato server o libpq-dev per creare un'applicazione sul lato client. Così ho installato di nuovo libpq-dev e l'app bundle rails e l'errore è scomparso.

$ sudo apt-get install libpq-dev
$ bundle install

2
Questa è una soluzione migliore se vuoi rispecchiare Postgres sulla tua macchina di sviluppo, ha funzionato per me.
Collin White,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.