raylar ve libpq-dev kötü bağımlılıklar


12

Bu sorunun buraya ait olup olmadığını bilmiyorum, ama bir deneme yapacağım. Selam. Makinemde Windows Vista ile Ubuntu 11.10 çift önyükleme yapıyorum. Ubuntu'da RVM, ray gem ve & PostgreSQL'i kurdum (Yazılım Merkezi aracılığıyla yüklediğim için postgres sunucusu, istemci ve libpq5 gibi diğer paketler).

Uygulamamı heroku üzerinde konuşlandırmaya çalışıyorum, ancak pg gem'i yüklemem gerekiyor gibi görünüyor . Yüklemeye çalıştım, ancak bunun yerine bu hatayı aldım:

HATA: Gem yerel uzantısı oluşturulamadı.

/home/pcr/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb pg_config olup olmadığını denetleme ... evet

/ Usr / bin / pg_config dosyasındaki yapılandırma değerlerini kullanma

Sunucu tarafı uzantısı oluşturmak için postgresql-server-dev-XY veya istemci tarafı uygulama oluşturmak için libpq-dev kurmanız gerekir. Sunucu tarafı uzantısı oluşturmak için postgresql-server-dev-XY veya istemci tarafı uygulama oluşturmak için libpq-dev kurmanız gerekir.

libpq-fe.h ... denetleniyor extconf.rb başarısız oldu *

Bir süre google ve stackoverflow'u aradıktan sonra, birçok kişi libpq-dev'in yüklenmesi gerektiğini söyledi. Yazılım merkezi aracılığıyla denedim, ancak bağımlılıkları gideremedim. Apt-get ile denedim, libkrb5-dev ve krb5-multidev'e ihtiyacım olduğunu söyledi. Denedim sudo apt-get install libpq-dev libkrb5-dev krb5-multidevve anladım:

Aşağıdaki paketlerin karşılanmamış bağımlılıkları vardır: krb5-multidev:

Bağımlı: libkrb5-3 (= 1.9.1 + dfsg-1ubuntu1) ancak 1.9.1 + dfsg-1ubuntu2.1 yüklenecek

Bağımlı: libk5crypto3 (= 1.9.1 + dfsg-1ubuntu1) ancak 1.9.1 + dfsg-1ubuntu2.1 yüklenecek

Bağımlı: libgssapi-krb5-2 (= 1.9.1 + dfsg-1ubuntu1) ancak 1.9.1 + dfsg-1ubuntu2.1 yüklenecek E: Sorunlar düzeltilemedi, bozuk paketler düzenlediniz.

Ama zaten sistemimde libkrb5-3, libk5crypto3 ve libgssapi-krb5-2 (hepsi 1.9.1 + dfsg-1ubuntu2.1 sürümüyle) var! Belki gerekli sürüm 1.9.1 + dfsg-1ubuntu1 olduğunu düşünüyorum. Yani, belki de önce 1.9.1 + dfsg-1ubuntu2.1 paketlerini kaldırmam gerekiyor. Sence onu kaldırmam güvenli mi? Bunlardan birini kaldırmaya çalıştım, ancak yazılım merkezi postgres, openssl-client, smbclient, cups ve diğer birçok paketi de kaldıracağı konusunda beni uyarıyor.

Bunu çözmek için ne yapmalıyım? Ve pg gem dbms olarak postgres ile raylar uygulaması oluşturmak için yerel makineme kurulması gerçekten gerekli mi? PG gem yerine heroku'ya sorumluluğu "teslim etmenin" bir yolu var mı?

Yanıtlar:


8

Gerçek çözüm, Amit Patel tarafından doğru şekilde belirtildiği gibi ,libpq-dev


Geliştirme makinenizde pg ayarlayamıyorsanız geçici bir çözüm. Yerel makinenizde sqlite, Heroku'da pg kullanabilirsiniz. İşte Gemfile'da olması gereken şey

group :production do
  gem 'pg'
end

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

Ve üretim mücevherlerini yok saymak için paketi yüklemek için bu komutu kullanın:

bundle install --without production

Üretim ve geliştirme makinelerinde aynı ortama sahip olmanın tavsiye edilmediğini lütfen unutmayın.


Evet, bu doğru cevap. +1, bunu her zaman yapıyorum.
jrg

@jrg Bunu yaparak bir sorun mu yaşıyorsunuz? Soruyorum çünkü heroku "önerilmez" diyor.
PatrixCR

Heroku bunu önermiyor çünkü genellikle sunucu ile aynı geliştirme ortamına sahip olmak istiyorsunuz - ancak, ActiveRecord veya DataMapper kullandığınız ve ham SQL yazmadığınız sürece, zamanın% 99'u iyi olmalısınız. :)
jrg

1
@PatrixCR hayır, heroku bunu senin için yapacak.
jrg

1
Sqlite kullanmak geçici bir çözümdür. O zaman çözüm nedir?
Amit Patel

32

Bugün de aynı sorunu yaşadım. Ben mesajı izledi Bir istemci tarafı uygulama oluşturmak için bir sunucu tarafı uzantısı veya libpq-dev oluşturmak için postgresql-sunucu-dev-XY yüklemeniz gerekir. Böylece libpq-dev ve bundle rayları uygulaması tekrar yüklendi ve hata kayboldu.

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

2
Benim için çalışmış geliştirme makinenizdeki postgres aynalamak istiyorsanız, bu daha iyi bir çözümdür.
Collin White
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.