2012-02-07 16 views
18

Ruby 1.9.2, Rails 3 ve postgreSQL 8.3 çalıştıran bir uygulama var. Başlangıçta postgreSQL 9.1 ile çalışıyor ve çalışıyordu, ancak 9.1 kaldırdım ve bir Heroku paylaşılan veritabanı kurulumunda 8.3 uyumluluk uyumluluğuna yükledim ve değiştirdim. Tamam koşuyordu, ama veritabanı yükseltmesini çalıştırdığınızda bu hatayı alıyorum, bu uygulama üzerinde çalışırken o, Şimdi artıkRuby on Rails/PostgreSQL - Kitaplık yüklenemedi yüklendi hatası başlatılırken server- libq.5.dylib

değil:

dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib 
    Referenced from: /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle 
    Reason: no suitable image found. Did find: 
    /usr/lib/libpq.5.dylib: no matching architecture in universal wrapper - /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle 

Ve ben bu olsun sunucuyu çalıştırmayı denediğinizde hata mesajı: Ben çok benzer hatalar ve muhtemelen eksik yolu ile ilgisi var biliyorum

/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in `require': dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib (LoadError) 
    Referenced from: /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle 
    Reason: no suitable image found. Did find: 
    /usr/lib/libpq.5.dylib: no matching architecture in universal wrapper - /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle 
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in `<top (required)>' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require' 
    from /Users/michaeljmccoy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler.rb:122:in `require' 
    from /Users/michaeljmccoy/www/mikemccoy/config/application.rb:7:in `<top (required)>' 
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in `require' 
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in `block in <top (required)>' 
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in `tap' 
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

. Ancak .profile dosyama yol eklediğimde ve terminal penceresini yeniden başlattığımda aynı hataları alıyorum.

+0

"PATH", kabuğun yürütülebilir dosyaları aradığı yeri denetler. LD_LIBRARY_PATH'niz, kabuğun kütüphaneleri aradığı yeri kontrol eder. Şunu söylemişti ki, bu bana pg gem'in şimdi sahip olduğunuzdan farklı bir PostgreSQL kütüphanesi versiyonuna karşı derlenmiş gibi görünüyor. Muhtemelen sf yeniden yüklemeniz gerekir. –

+0

Geçerli pg gem'i kaldırdım ve yeniden yüklemeyi deniyorum, ancak eksik postgre kütüphaneleriyle ilgili oldukça yaygın bir hata gibi görünüyor. İşte görüyorum budur: /Library/PostgreSQL/8.3/bin/pg_config libpq-fe.h denetlemesini yapılandırma değerlerini kullanarak pg_config kontrol ' ... Evet ... evet libpq/libpq kontrol -fs.h ... evet pg_config_manual.h için denetleniyor ... Evet PQconnectdb() in -lpq için denetleniyor ... no PQconnectdb() in -llibpq ... için kontrol ediliyor PQconnectdb denetleniyor() -lms/libpq ... no PostgreSQL istemci kitaplığı (libpq) bulunamıyor *** extconf.rb başarısız oldu *** –

+1

Geçmişte bu noktada çözmek zorunda hatırlıyorum, ve başlıkları ve kütüphaneleri arayacağınızı söylemek için gem üreticisine bayrak tedarik etmek zorunda Şu anda elimde bilgi yok. –

cevap

35

pg gemini kaldırıp yeniden yüklemeniz gerekebilir, bu nedenle Postgres'in doğru sürümüne karşı derlenmiş. herkes bu hatayı görmeye ve PostgresApp çalışan için

+0

Sadece bu konuya girmiş, bu mükemmel çalıştı! –

+1

Eğer bu size yardımcı olmazsa, şu soruyu görmek isteyebilirsiniz: http://stackoverflow.com/questions/15512137/ruby-on-rails-postgresql-library-not-loaded-error-when-starting-server –

+0

Bu çözüm Django ile de çalışır, sadece virtualenv'de psycopg2'yi yeniden yükleyin. – Pietro

4

, bu sürümde 9.2.4.3 giderilmiştir bilinen bir sorundur:

Tartışma: https://github.com/PostgresApp/PostgresApp/issues/109

Yükleyici: Elbette https://github.com/PostgresApp/PostgresApp/releases/tag/9.2.4.3

, yapabilirsin En son sürümü al (http://postgresapp.com/). Her iki sürüm de beni Rails 3.2.14 ve Ruby 2.0.0 ile destekledi. Ancak, 9.2.4.3'ü yüklediğimde, veritabanlarımın hala psql'de listelendiğini, ancak 9.3.0'ı (şu anki hali) yüklediğimde, veritabanlarımın artık listelenmediğine dikkat edin.