2012-02-07 12 views
18

मेरे पास ऐप है जो रुबी 1.9.2, रेल 3 और पोस्टग्रेएसक्यूएल 8.3 चला रहा है। यह मूल रूप से postgreSQL 9.1 के साथ सेटअप और काम कर रहा था, लेकिन मैंने 9.1 को अनइंस्टॉल किया और स्थापित किया और एक हेरोकू साझा डेटाबेस सेटअप पर 8.3 बीमा संगतता में बदल दिया। यह ठीक चल रहा था, लेकिन जब इस अनुप्रयोग पर काम कर रहा है, जब मैं एक डेटाबेस उन्नयन चलाने मैं इस त्रुटि मिलती है ना अबरेल/पोस्टग्रेएसक्यूएल पर रूबी - सर्वर शुरू करते समय लाइब्रेरी लोड नहीं हुई- libq.5.dylib

, है अब:

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 

और जब मैं सर्वर मैं इस मिल चलाने का प्रयास त्रुटि संदेश:

/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>' 

मुझे पता है कि वे बहुत ही समान त्रुटियां हैं और शायद उन्हें लापता पथ से करना है। हालांकि, जब मैं अपनी .profile फ़ाइल में पथ जोड़ता हूं और टर्मिनल विंडो को पुनरारंभ करता हूं, तो मुझे वही त्रुटियां मिलती हैं।

+0

आपका 'पथ' नियंत्रण जहां खोल निष्पादन योग्य दिखता है। आपका 'LD_LIBRARY_PATH' नियंत्रण जहां शेल पुस्तकालयों के लिए दिखता है। उस ने कहा, यह मुझे लगता है जैसे आपके पीजी मणि को आपके पास अब के मुकाबले एक अलग PostgreSQL लाइब्रेरी संस्करण के खिलाफ संकलित किया गया था। आपको शायद पीजी को पुनः स्थापित करने की जरूरत है। –

+0

मैंने वर्तमान पीजी मणि हटा दिया और पुनः स्थापित करने की कोशिश कर रहा हूं, हालांकि मुझे लगता है कि लापता पोस्टग्रेज़ पुस्तकालयों के बारे में एक बहुत ही आम त्रुटि प्रतीत होती है। libpq/libpq के लिए जाँच 'pg_config के लिए जाँच ... हाँ /Library/PostgreSQL/8.3/bin/pg_config libpq-fe.h की जांच करने से config मानों का उपयोग करना ... हाँ: यहाँ मैं क्या देख रहा हूँ है -fs.h ... हाँ pg_config_manual.h की जांच ... हाँ PQconnectdb() in -lpq में जांच रहा है ... PQconnectdb() in -llibpq में जांच ... कोई PQconnectdb() के लिए जांच in-lms/libpq ... नहीं पोस्टग्रेएसक्यूएल क्लाइंट लाइब्रेरी (libpq) *** extconf.rb विफल नहीं हो सका *** –

+1

मुझे याद है कि अतीत में किसी बिंदु पर इसे हल करना है, और यह राशि मणि निर्माता को झंडे की आपूर्ति करने के लिए यह कहने के लिए कि हेडर और पुस्तकालयों को कहां देखना है, bu मेरे पास अभी जानकारी नहीं है। –

उत्तर

35

आपको pg मणि को हटाने और पुनः स्थापित करने की आवश्यकता हो सकती है, इसलिए इसे पोस्टग्रेज़ के सही संस्करण के विरुद्ध संकलित किया गया है।

+0

बस इस मुद्दे में भाग गया, यह पूरी तरह से काम किया! –

+1

यदि यह आपकी मदद नहीं करता है, तो आप यह प्रश्न देखना चाहेंगे: http://stackoverflow.com/questions/15512137/ruby-on-rails-postgresql-library-not-loaded-error-when-starting- सर्वर –

+0

यह समाधान Django के साथ भी काम करता है, वर्चुअलएन्व में बस psycopg2 को पुनर्स्थापित करें। – Pietro

4

किसी को भी यह त्रुटि देख और PostgresApp चल के लिए, यह एक ज्ञात समस्या यह है कि संस्करण 9.2.4.3 में तय किया गया था:

चर्चा: https://github.com/PostgresApp/PostgresApp/issues/109

इंस्टालर: https://github.com/PostgresApp/PostgresApp/releases/tag/9.2.4.3

बेशक

, आप कर सकते थे बस नवीनतम संस्करण (http://postgresapp.com/) पकड़ो। दोनों संस्करणों ने मुझे बैक अप लिया और रेल 3.2.14 और रूबी 2.0.0 के साथ चल रहा था। हालांकि, ध्यान दें कि जब मैंने 9.2.4.3 इंस्टॉल किया था तो मेरे डेटाबेस अभी भी psql में सूचीबद्ध थे, लेकिन जब मैंने 9.3.0 (इस समय वर्तमान संस्करण) स्थापित किया, तो मेरे डेटाबेस अब सूचीबद्ध नहीं थे।

संबंधित मुद्दे