Saya mencoba menginstal PostgreSQL untuk Rails di Mac OS X 10.6. Pertama saya mencoba menginstal MacPorts tetapi itu tidak berjalan dengan baik jadi saya melakukan instalasi DMG satu-klik. Itu sepertinya berhasil.
Saya kira saya perlu menginstal paket pengembangan PostgreSQL tapi saya tidak tahu bagaimana melakukannya di OS X.
Inilah yang saya dapatkan ketika saya coba lakukan sudo gem install pg
:
$ sudo gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /Library/PostgreSQL/8.3/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
--with-pqlib
--without-pqlib
--with-libpqlib
--without-libpqlib
--with-ms/libpqlib
--without-ms/libpqlib
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.11.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.11.0/ext/gem_make.out
ruby-on-rails
ruby-on-rails-3
postgresql
rubygems
Jason Swett
sumber
sumber
pg_config
? Itu seharusnya memudahkan kita untuk membantu.Jawaban:
BEKERJA!
sumber
env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config
Saya mencoba jawaban teratas di sini:
Tetapi ketika saya mencoba menjalankan bundel menginstal lagi, ia memiliki kesalahan yang sama. Lalu saya mencoba seluruh paket bundel dengan ARCHFLAGS seperti:
Bekerja untukku! Pastikan untuk mengganti x86_64 dengan i386 tergantung pada arsitektur apa yang Anda miliki.
sumber
Saya baru saja mengalami masalah ini ketika menggunakan EnterpiseDB .dmg. Jika itu pemikiran yang sama yang Anda gunakan, saya membuatnya bekerja dengan menentukan arsitektur yang tepat:
Ada beberapa tutorial di web yang mengatakan untuk menentukan arsitektur yang berbeda (seperti "-arch x86_64" untuk orang-orang yang menggunakan MacPorts) tetapi itu tidak berfungsi untuk saya karena saya menggunakan instalasi file tunggal.
sumber
Jika menggunakan Yosemite:
Kemudian:
Dan (opsional) akhirnya, jika Anda ingin meluncurkan autovacuum ...
sumber
Mungkin Anda bisa mencoba yang ini:
Untuk mengetahui arsitektur perpustakaan Anda, Anda dapat menggunakan
yang memberikan hanya 1 arsitektur dalam kasus saya (diinstal melalui homebrew):
sumber
Solusi: instal ulang PostgreSQL dengan Homebrew.
sumber
Palsu
gem
dengan mengawali variabel lingkungan yang sesuai. Jika Anda menginstal dari MacPorts, Anda harus dapat menjalankan prosedur berikut:Dari sana, tarik keluar
LIBDIR
,INCLUDEDIR
,CPPFLAGS
,LIBS
danLDFLAGS
(salah satu yang saya pikir akan membuat Anda berjalan adalahLIBDIR
, namun). Maka Anda akan menjalankan:Itu harus dilakukan untuk Anda. Beri tahu saya jika tidak.
sumber
locate pg_config
CPPFLAGS
atauLDFLAGS
(saya tidak tahu apa artinya itu, maaf).locate pg_config
tunjukkan padaku beberapa barang. Dan saya mencoba menginstal PostgreSQL via MacPorts dan menggunakan perintah Anda - tidak berhasil.LDFLAGS
tidak disetel ke direktori yang berisilibpq
. Lihat detail di atas.Masalah yang kami hadapi sangat aneh.
tetapi ketika kami melakukan bundle install pada kenyataannya, bundler tidak diinstal untuk versi ruby yang diinstal oleh rbenv, jadi, ketika kami mengetik bundle install, ia menggunakan bundler sistem.
Jadi sebelum menjalankan bundle install, pastikan Anda telah menginstal bundler dengan menjalankan
sumber
Saya tidak berpikir Anda memerlukan file pengembangan postgres, semua yang Anda butuhkan harus disertakan dengan installer Anda. Kemungkinan besar jalur yang mereka pasang tidak ada di jalur lingkungan Anda dan oleh karena itu permata tidak dapat menemukannya saat mencoba mengkompilasi pg.
Anda tidak harus menjalankan
gem install pg
sebagai root, bahkan jika Anda melakukannya kemungkinan PATH Anda (PATH root jika dijalankan dengan sudo) tidak akan berisi info yang diperlukan.Berikut ini biasanya bekerja untuk saya:
sumber
gem install pg
(bersama dengan dua perintah Anda sebelumnya) alih-alihsudo gem install pg
masih memberikan hasil yang sama persis./Library/PostgreSQL/...
ke lokasi yang benar di mana pun salinan instalasi postgres Anda?sudo port install postgresql83 postgresql83-server
, mirip dengan instruksi ini: flux88.com/2010/06/installing-postgresql-for-rails-on-mac-os-x . Tampaknya penginstal mandiri adalah 32-bit, jadi Anda ingin mengatur bendera lengkung Anda menjadi 32-bit bahkan jika mesin Anda 64-bit. Jika Anda tidak bisa menjalankannya, saya sarankan mencopot dan menginstal ulang melalui MacPorts kemudian mencoba instruksi di atas. Semoga itu bisa membantu!Inilah yang akhirnya melakukannya untuk saya (kombinasi beberapa solusi yang diberikan sebelum bersama dengan posting lain):
$ sudo env ARCHFLAGS = "- arch x86_64" permata instal pg - with-pg-include = / Library / PostgreSQL / 9.6 / include /
sumber
The
ARCHFLAGS
jawaban yang lain telah mengusulkan tidak akan bekerja jika Anda entah bagaimana berakhir dengan versi 64-bit dari postgres (yang homebrew akan menginstal) dan versi 32-bit dari ruby. Untuk beberapa alasanrbenv
bersikeras membangun ruby 1.9.2-p290 sebagai 32-bit untuk saya, yang membuatnya tidak mungkin untuk terhubung dengan postgres 64-bit.Periksa arsitektur biner ruby Anda dengan
atau jika menggunakan rbenv
Dan bandingkan dengan postgres Anda:
Jika ada kecocokan, Anda harus menginstal ulang postgres atau ruby. Dengan rbenv saya menyelesaikan ini hanya dengan beralih ke versi yang berbeda:
1.9.3-p194
alih-alih1.9.2-p290
.sumber
Beginilah cara saya membuatnya bekerja di Mavericks. Catatan: Saya sudah menginstal postgresql 9.3 dari homebrew.
Perbarui Xcode ke 5.0 dari App Store
Instal alat pengembang baris perintah
xcode-select --install
Setuju dengan lisensi Xcode
sudo xcodebuild -license
Instal permata
ARCHFLAGS = "- arch x86_64" permata instal hal
sumber
Jadi pada dasarnya saya melakukan ini ;-)
sumber
Saya mungkin agak terlambat ke pesta di sini, tetapi dalam kasus saya saya menggunakan rbenv dan meningkatkan ke Ruby 2.2.3. Saya harus menginstal Bundler agar perangkat saya berfungsi, saya memiliki versi sistem lama.
gem install bundler
sumber
Seperti disebutkan di atas ini ada hubungannya dengan fakta memiliki dua lengkungan ruby pada rbenv
/usr/bin/ruby: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [i386:Mach-O executable i386]
yang harus saya lakukan adalah hanya menginstalpg
permata memaksax86_64
lengkungan untuk digunakan dengan perintah ini:sudo env ARCHFLAGS="-arch x86_64" gem install pg
Ingatlah untuk memiliki
bash_profile
memperbaruiTambahkan jalur postgres Anda, dalam hal ini saya menggunakan aplikasi Postgres (
OSX
) alih-alihbrew
( https://postgresapp.com/ ) secara default ini adalah lokasinya:export PATH=/Applications/Postgres.app/Contents/Versions/10/bin:$PATH
Muat ulang bash dengan
sudo vi ~/.bash_profile
Setelah melakukan ini saya akhirnya berhasil menginstal
pg gem
Semoga ini membantu!
sumber
Di Mac Anda dapat mencoba ini (berfungsi untuk saya): gem install pg - with-pg-include = / Library / PostgreSQL / 9.5 / include Mengambil: pg-1.0.0.gem (100%) Membangun ekstensi asli dengan: ' with-pg-include = / Library / PostgreSQL / 9.5 / include 'Ini bisa memakan waktu ... Berhasil menginstal pg-1.0.0 Parsing dokumentasi untuk pg-1.0.0 Menginstal ri dokumentasi untuk pg-1.0.0 Selesai menginstal dokumentasi untuk pg setelah 3 detik 1 permata terpasang
(bagian ini "/Library/PostgreSQL/9.5/include" Anda harus meletakkan jalur Postgres Anda)
sumber