Pertanyaan Galat yang membutuhkan pg di bawah rvm dengan postgres.app


saya menggunakan Postgres.app di OS X (10.8.3). Saya telah memodifikasi PATH supaya itu bin folder untuk aplikasi sebelum yang lain.

Rammy:~ phrogz$ which pg_config
/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Saya telah menginstal rvm dan dapat menginstal permata pg tanpa kesalahan, tetapi ketika saya pergi untuk meminta saya mendapatkan kesalahan:

Rammy:~ phrogz$ gem -v
1.8.25

Rammy:~ phrogz$ gem install pg
Fetching: pg-0.15.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.15.1
1 gem installed

Rammy:~ phrogz$ ruby -v -e "require 'pg'"
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
/Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @executable_path/../lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /Applications/Postgres.app/Contents/MacOS/lib/libpq.dylib
  Reason: image not found - /Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg_ext.bundle
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg.rb:4:in `<top (required)>'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from -e:1:in `<main>'

Apa yang harus saya lakukan untuk mendapatkan pg permata terpasang dengan benar?


5
2018-05-09 02:41


asal


Jawaban:


Ini berhasil untuk saya:

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

Cukup periksa kembali apakah jalur /Applications/Postgres93.app .. ada untuk Anda.


1
2018-02-01 11:57



Edit: Meskipun jawaban ini saat ini memiliki lebih banyak suara daripada jawaban yang diterima, jawaban yang diterima jauh lebih sederhana dan lebih bersih.


Hapus binari Postgres.app dari jalur saat menginstal pg gem, dan alih-alih menggunakan postgres install built in ke OS X untuk mengkonfigurasi gem. Itu pg perpustakaan akan tetap terhubung dengan benar ke server Postgres.app nanti.

Rammy:~ phrogz$ gem uninstall pg
Successfully uninstalled pg-0.15.1

# Modify PATH to remove /Applications/Postgres.app/Contents/MacOS/bin

Rammy:~ phrogz$ gem install pg
Fetching: pg-0.15.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.15.1
1 gem installed

Rammy:~ phrogz$ ruby -v -e "require 'pg'"
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]

4
2018-05-09 02:41



Saya menemukan solusi yang bekerja untuk saya dan membutuhkan sedikit peretasan / konfigurasi. Anda hanya perlu melakukan ini satu kali dan ini akan berfungsi untuk setiap pemasangan bundel. Tambahkan yang berikut ini ke .bash_profile, .bash_rc, atau yang setara:

export DYLD_FALLBACK_LIBRARY_PATH=/Applications/Postgres.app/Contents/MacOS/lib:$DYLD_LIBRARY_PATH

(Dengan asumsi Anda menginstal Postgres.app di lokasi default). Kemudian restart sesi terminal Anda dan coba lagi.

Mengekspor ke DYLD_LIBRARY_PATH secara langsung dapat menyebabkan masalah serius dengan aplikasi lain yang bergantung padanya, tetapi menggunakan jalur fallback menghindari masalah ini.

Lihat juga:

EDIT: Sepertinya pengaturan DYLD_FALLBACK_LIBRARY_PATH menyebabkan kesalahan saat Anda mencoba menjalankan psql. Untuk memperbaiki ini, Anda dapat menambahkan dua baris berikut ke .bash_profile Anda:

alias psql="(. ~/.bash_profile; unset DYLD_FALLBACK_LIBRARY_PATH; psql)";

Ini mengasumsikan bahwa Anda menggunakan bash dan bahwa .bash_profile Anda terletak di direktori home Anda. Jika itu tidak terjadi (atau jika Anda menggunakan .bashrc atau pengaturan lingkungan lain, bukan .bash_profile) ubah ~/.bash_profile bagian dari perintah ke jalur ke skrip pengaturan lingkungan Anda.

Perintah alias pada dasarnya memulai subkulit yang tidak mempengaruhi lingkungan bash Anda saat ini. Jadi ketika itu unsets the DYLD_FALLBACK_LIBRARY_PATH variabel, itu hanya sementara. Setelah Anda keluar dari psql, variabel lingkungan akan diatur lagi sehingga rel berfungsi dengan benar.


3
2018-05-24 17:30



Masalahnya adalah dalam menghubungkan permata ke Postgres.app. Jika Anda menghubungkannya dengan versi postgres yang dikirimkan dengan osx

Berikut skrip kecilnya:

  • jika menggunakan rvm dengan permata proyek: berubah menjadi proyek Anda
  • jalankan perintah berikut:

    gem uninstall pg
    
    PATH=${PATH/'Postgres.app'/'WRONGFOLDER.app'}
    gem install pg
    PATH=${PATH/'WRONGFOLDER.app'/'Postgres.app'}
    
  • Sekarang semuanya akan baik-baik saja


1
2018-05-13 17:30