Mustahil untuk Menginstal permata PG di mac saya dengan Mavericks

103

Saya mencoba memasang permata pg untuk bekerja lagi dengan proyek rel saya. Tapi saya mendapatkan kesalahan ini:

Membangun ekstensi asli. Ini bisa memakan waktu cukup lama ... ERROR: Kesalahan menginstal pg: ERROR: Gagal membangun ekstensi asli gem.

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If

bangunan gagal, silakan coba lagi dengan --with-pg-config = / path / to / pg_config memeriksa libpq-fe.h ... tidak Tidak dapat menemukan 'header libpq-fe.h * extconf.rb gagal * Tidak dapat membuat Makefile karena beberapa alasan, mungkin kurangnya perpustakaan dan / atau header yang diperlukan. Periksa file mkmf.log untuk lebih jelasnya. Anda mungkin memerlukan opsi konfigurasi.

Opsi konfigurasi yang disediakan: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - tanpa-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / Users / jeanosorio / .rvm / rubies / ruby-2.0.0-p247 / bin / ruby ​​--with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir} / include - -dengan-pg-lib --without-pg-lib = $ {pg-dir} /

File permata akan tetap terpasang di /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 untuk diperiksa. Hasil dicatat ke /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out

Saya mencoba semua yang saya temukan di stackoverflow tetapi saya masih mendapatkan kesalahan ini.

Jika saya mencoba menginstal postgresql menggunakan brew, saya mendapatkan waring berikut:

Peringatan: postgresql-9.2.4 sudah terpasang, hanya saja tidak ditautkan

Jika saya mencoba untuk menghubungkan

brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4 ... Peringatan: Tidak dapat menautkan postgresql. Membatalkan tautan ...

Kesalahan: Tidak dapat menghubungkan file: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 / usr / local / share / man / man7 tidak dapat ditulis. Anda harus mengubah izinnya.

Tolonglah

CATATAN: Saya sudah menginstal alat baris perintah untuk mavericks.


Jika saya menghapus instalan menggunakan homebrew dan mencoba menginstal lagi, saya mendapatkan kesalahan ini:

==> Mengunduh http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2

############################################### ################ 100.0%

==> Menambal file tambalan src / pl / plpython / Makefile file tambalan contrib / uuid-ossp / uuid-ossp.c ==> ./configure --prefix = / usr / local / Cellar / postgresql / 9.2.4 - datadir = / usr / local / Cellar / postgresql / 9.2.4 / share / postgresql --docdir = / usr / local / Cellar / p ==> buat install-world ==> Peringatan

Bangun Catatan

Jika build PostgreSQL 9 gagal dan Anda menginstal versi 8.x, Anda mungkin perlu menghapus versi sebelumnya terlebih dahulu. Lihat:
https://github.com/mxcl/homebrew/issues/issue/2510

Buat / Tingkatkan Database

Jika ini adalah instalasi pertama Anda, buat database dengan: initdb / usr / local / var / postgres -E utf8

Untuk memindahkan data yang ada dari versi utama sebelumnya (pra-9.2) dari PostgreSQL, lihat:
http://www.postgresql.org/docs/9.2/static/upgrading.html

Memuat Ekstensi

Secara default, Homebrew membangun semua ekstensi Contrib yang tersedia. Untuk melihat daftar semua ekstensi yang tersedia, dari baris perintah psql, jalankan:
SELECT * FROM pg_available_extensions;

Untuk memuat salah satu nama ekstensi, navigasikan ke database yang diinginkan dan jalankan: BUAT EKSTENSI [nama ekstensi];

Misalnya, untuk memuat ekstensi tablefunc dalam database saat ini, jalankan: CREATE EXTENSION tablefunc;

Untuk informasi lebih lanjut tentang perintah CREATE EXTENSION, lihat:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html Untuk informasi lebih lanjut tentang ekstensi, lihat:
http://www.postgresql.org/ docs / 9.2 / static / contrib.html

Lain

Beberapa mesin mungkin memerlukan penyediaan memori bersama:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC Saat memasang permata postgres, disarankan menyertakan ARCHFLAGS: ARCHFLAGS = "- arch x86_64" gem install pg

Untuk menginstal permata tanpa sudo, lihat wiki Homebrew.

Untuk memulai launchd postgresql saat login: ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents Kemudian untuk memuat postgresql sekarang: launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist Atau , jika Anda tidak ingin / membutuhkan launchctl, Anda dapat menjalankan: pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start Peringatan: Tidak dapat menautkan postgresql. Membatalkan tautan ... Kesalahan: brew linkLangkah tidak berhasil diselesaikan Rumus dibuat, tetapi tidak terhubung ke / usr / local Anda dapat mencoba lagi menggunakan `brew link postgresql '==> Ringkasan 🍺 /usr/local/Cellar/postgresql/9.2 .4: 2831 file, 38M, dibangun dalam 4,9 menit


LARUTAN:

Saya menjalankan perintah ini untuk mengubah izin folder:

sudo chown jeanosorio / usr / local / share / man / man7

Kemudian

brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1 ... 421 symlink dibuat

Dan akhirnya:

sudo ARCHFLAGS = "- arch x86_64" gem install pg

Mengambil: pg-0.17.0.gem (100%) Membangun ekstensi asli. Ini bisa memakan waktu cukup lama ... Berhasil menginstal pg-0.17.0

Jean
sumber

Jawaban:

252

Jika Anda ingin menghindari penggunaan MacPorts, Anda dapat mengunduh Aplikasi Postgres dan meletakkannya di direktori Aplikasi.

Kemudian, tentukan lokasi yang baru diunduh pg_config:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config

Jika Anda mengalami masalah header yang hilang, coba tentukan includedirektori aplikasi:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
Yuri
sumber
11
Sekadar catatan bahwa Anda masih dapat menggunakan bundler dengan mengatur variabel config env:export CONFIGURE_ARGS="with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config"
film42
8
Jika Anda menggunakan Postgres 9.3 (terbaru hingga hari ini), Anda dapat melakukan ini: gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
cavneb
Menggunakan Postgres93.app berfungsi tetapi harus menambahkan jalur bin ke variabel env PATH untuk menginstal bundel.
mkhatib
5
Harus membuat ini berfungsi menggunakan gem install pg -- --with-pg-config=/Applications//Postgres.app/Contents/Versions/9.3/bin/pg_config
StevenNunez
1
Terima kasih! saya mendapatkan Peringatan: Tidak dapat menautkan postgresql. Membatalkan tautan ... Kesalahan: Tidak dapat menghubungkan file: ... tidak dapat ditulis. Anda harus mengubah izinnya. Dan semuanya adalah kesalahan pembuatan, setelah saya membuat instal / tautan postgresql Instalasi pergi ke: Menghubungkan /usr/local/Cellar/postgresql/9.3.4 ... yang dalam kasus saya FOLDER SANGAT KONFLIK, mengunduh pg dan permata menginstal menggunakan itu memecahkan masalah THANKS !!!!!!
d1jhoni1b
74

Gunakan minuman untuk mendapatkan postgresql

brew install postgresql

Periksa apakah Anda memiliki pg_config di minuman yang diinstal. Saya menemukan milik saya di

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Cek melalui:

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Setelah selesai, instal pgpermata dengan

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
Ayush Goel
sumber
2
berhasil untuk saya setelah mencoba banyak hal berbeda. saya hanya harus memastikan untuk menggunakan nomor versi yang benar (9.3.5_1 dalam kasus saya)!
HK
1
Gunakan ls /usr/local/Cellar/postgresql/9.*/bin/pg_configuntuk menemukan jalur nyata dan gabunganenv ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=$(ls /usr/local/Cellar/postgresql/9.*/bin/pg_config)
Jesper Grann Laursen
Penjelasan yang lebih rinci tentang apa yang terjadi di sini deveiate.org/code/pg/README-OS_X_rdoc.html
Julia Usanova
35

Saya tidak dapat menginstal postgres melalui MacPorts. Sebagai gantinya, saya menginstal Postgress.app . dan menelepon

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

Catatan: dalam versi yang lebih baru (setidaknya dalam 9.3) jalurnya sebenarnya: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

iceui2
sumber
2
Ini berfungsi, tetapi perhatikan bahwa terkadang Postgres.app diinstal sebagai Postgres <NN> .app di mana NN adalah nomor versi.
nimrodm
11

Jika Anda memiliki homebrew, cukup ketik:

$ brew instal postgresql

pengguna2373148
sumber
1
Ini berhasil untuk saya - Saya sudah menginstal PostgreSQL, tetapi saya rasa saya harus menginstalnya lagi, untuk menyegarkan header (?) Lalu saya bisa melakukannyagem install pg
Crimbo
10

Berikut alternatif lain jika Anda ingin menggunakan penginstal postgresql secara langsung. Ada beberapa rintangan yang harus Anda lewati untuk memulai setelah memperbarui ke maverick. Inilah yang saya lakukan:

Instal alat baris perintah xcode terlebih dahulu:

xcode-select --install

Unduh dan instal versi terbaru PostgreSQL (9.3.1), dalam kasus saya, saya hanya menggunakan penginstal grafis. Berikut tautan ke halaman unduhan:

http://www.enterprisedb.com/products-services-training/pgdownload#osx

Cukup pilih semua default yang diberikannya kepada Anda. Dalam kasus saya itu menginstal postgres ke direktori berikut, jika Anda menginstalnya ke direktori yang berbeda, ingat saja jalur yang Anda pilih, karena Anda akan membutuhkannya segera.

/Library/PostgreSQL/9.3

Jika sekarang Anda mencoba dan menginstal pg gem terbaru (0.17.0), Anda harus memberikan beberapa opsi pada baris perintah. Ini yang saya gunakan:

ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

Jika Anda menginstal postgres ke lokasi yang berbeda maka Anda harus memperbaiki jalur ke file pg_config.

Jika ia mengeluhkan file 'libpq.5.dylib' yang hilang saat mencoba menginstal pg gem, Anda harus membuat symlink yang menunjuk ke lokasi sebenarnya dari file ini. Postgres mencarinya di direktori / usr / local / lib / Anda jadi buat symlink di sana dan arahkan ke lokasi sebenarnya. Dalam kasus saya, saya harus menjalankan:

sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib

Setelah Anda selesai melakukannya, coba pasang kembali permata itu dan semoga itu akan bekerja untuk Anda dengan cara yang sama seperti yang saya lakukan.

2 kue kentang
sumber
9

Bagi saya, di Yosemite, saya tidak perlu menentukan pg_configjalur. Berikut ini menyelesaikannya.

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg

Sepertinya bendera arsitektur adalah kuncinya.

dinigo
sumber
5

Dalam kasus saya (saya membutuhkan PG 0.16.0 di Mavericks), saya menginstal postgresql melalui MacPorts

sudo port install postgresql90

lalu

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Untuk versi terbaru, Anda perlu mengurangi -v '0.16.0'

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config

Jika Anda memiliki Homebrew terinstal, jangan instal MacPorts sebelum Anda membaca tentang koeksistensi mereka

Gi0
sumber
5

Tempatkan yang hilang --with-pg-configdi file konfigurasi Bundler: /Users/<your_user>/.bundle/configuntuk membuat hidup Anda lebih mudah.

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs

Lalu lari bundle installlagi.

Bruno Buccolo
sumber
5

Itu berhasil untuk saya! (Postgres 93, mac ox 10.9.1) 1. unduh @ http://postgresapp.com/ dan dari

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
meck373
sumber
4

Saya terjebak pada pemasangan bundel saya selama 3 hari. Mencoba Segala Sesuatu seperti menambahkan env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config

Saya dapat melihat pg gem terinstal setelah perintah ini tetapi masih tidak menginstal dari bundle install, yang menyebalkan karena saya tidak tahu apa yang harus ditulis di Gemfile kecuali gem 'pg'

Hal yang akhirnya bekerja untuk saya adalah untuk menemukan bahwa pg_config saya di /Library/PostgreSQL/9.3/bin/pg_config dan secara default Gemfile bundel instalasi terlihat di / usr / local / bin / pg_config

Saya baru saja menjalankan perintah berikut dan keajaiban terjadi. bundel config build.pg --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config

Neeraj Gupta
sumber
4

Dalam kasus saya itu tidak berfungsi jika Anda tidak menentukan bendera arch, OS X 10.10.3 dan postersApp 9.4

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Rachidi Mohamed
sumber
3

Cara termudah bagi saya untuk menyelesaikan ini adalah dengan menggunakan Postgres.app dan mengatur vars env saya jadi gem install pghanya berfungsi (alih-alih memerlukan --with-pg-configbendera).

Menggunakan Homebrew Cask ,

brew cask install postgres
echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile
echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile

# now it just works
gem install pg
smoll
sumber
2

Inilah yang berhasil untuk saya:

gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
tokhi
sumber
2

Dalam kasus saya, saya mencopot pemasangan versi yang diinstal melalui homebrew dan beralih ke Postgres.app (v9.3.4.2 pada saat penulisan).

Ini hanya tampak berfungsi saat mempersiapkan bendera arsitektur lingkungan dan menentukan jalur ke pg_config. Jarak tempuh Anda mungkin berbeda, jadi jawaban ini dapat membantu dengan variasi pg_configlokasi.

Inilah perintah terakhir dan lengkap yang berhasil untuk saya:

env ARCHFLAGS="-arch x86_64" gem install pg -- \
--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 
Marius Butuc
sumber
2

sudo ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-config = / usr / local / bin / pg_config

Taysky
sumber
ini juga bekerja untuk saya dengan pemasangan bundel seperti ini:ARCHFLAGS="-arch x86_64" bundle install
d4n3
1

Saya mendapatkan kesalahan yang sama saat menjalankan pemasangan bundel terkait permata pg (menggunakan Mac OS X Mavericks). Setelah berjam-jam meneliti, saya menemukan solusinya. Saya menginstal postgres menggunakan homebrew

brew install postgres

Setelah menginstal itu, saya membuat aplikasi rel baru menggunakan postgres. Aku lari

bundle install

tidak berhasil (mendapat kesalahan yang sama dengan pertanyaannya). Saya dulu

which psql

untuk mencari tahu di mana postgres saya dipasang, itu kembali

/usr/local/bin/psql

sebelum menjalankan bundle install lagi, saya harus mengubah jalur global ke build.pg dengan menjalankan perintah berikut

bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

lalu saya menjalankan bundle install lagi dan voila! Saya menggunakan postgres tempat brew menginstalnya.

Rav Johal
sumber
1

Di OS X Mavericks dengan Aplikasi Postgres terbaru, lakukan hal berikut dengan hak sudo

env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Vailancio Rodrigues
sumber
1

Apa yang berhasil untuk saya di 10.9.3 dengan Xcode 5.1.1 adalah sebagai berikut:

brew update
brew install postgresql 
gem install pg -v '0.17.1'

Saya membutuhkan pg 0.17.1

Tom Andersen
sumber
1

Untuk setiap jiwa yang hilang di luar masih memiliki masalah ini tanpa resolusi dan memiliki ruby dan postgres yangbrew terpasang . Berikut langkah-langkah berikut untuk memastikan:

  • Pastikan versi Anda rubytidak diinstal dengan --universalbendera.
    • Ini adalah hal tersulit untuk --universaldipecahkan , yang saya miliki merupakan akar terakhir dari masalah.
  • Pastikan Anda telah menginisialisasi postgresqldengan benar dengan perintah initdbdan createdb(lihat di tempat lain untuk langkah-langkah melakukan ini).
  • Pastikan Xcode(Opsional) dan command line toolsdiinstal; di terminal:
    • xcode-select --install
    • sudo xcodebuild -license (jika Xcode diinstal) atau buka aplikasi dan terima perjanjian lisensi.
    • Nyalakan Ulang Komputer
  • which ruby, which gemdan which postgresharus menunjukkan /usr/local/bin/ruby, /usr/local/bin/gemdan dengan /usr/local/bin/postgreshormat.
  • Di jalankan terminal:

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • atau
    • env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • Memastikan semua langkah ini puas, saya dapat menyelesaikan kesalahan berikut:

    • ruby.h kesalahan header
    • developer tools installed first kesalahan
link_boy
sumber
1

Pertama-tama temukan lokasi pg_config

sudo find / -name "pg_config" -print

Jawabannya adalah /Library/PostgreSQL/9.1/bin/pg_config di konfigurasi saya (MAC Maverick)

Kemudian coba pasang sesuatu seperti di bawah ini

permata instal pg - --with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config

jika ini tidak berhasil maka coba periksa dengan cara apa Anda menginstal postgresql

brew / mac port / setup

maka Anda harus mencoba opsi yang relevan untuk hal yang sama.

Terima kasih.

Ram

Rameshwar Vyevhare
sumber
0

Saya memiliki masalah yang sama, ini adalah solusi yang saya temukan.

Jika Anda menjalankan brew doctor, ini akan memberi tahu Anda bahwa mungkin Anda telah menginstal sesuatu tanpa brew yang telah mengubah izin pada beberapa folder, dan karenanya, Anda perlu mengubah izin kembali kepada Anda di folder itu.

Di dalam /usr/local/share/man, yang dapat Anda lakukan adalah sebagai berikut:

sudo chown [yourusername] man7

Lalu:

brew link postgres

Semoga membantu!

Gustavo Semião-Lobo
sumber
0

Demikian pula, setelah menginstal 'pembaruan bundel' Mavericks membuat kesalahan pada permata pg, yang hanya digunakan pada produksi dan tidak secara lokal.

Saya menggunakan Brew untuk mengelola paket saya dan postgresql sudah diinstal, tetapi saya masih mendapatkan kesalahan 'no pg_config'.

Perbaikannya adalah hanya 'buat uninstall postgresql', lalu 'brew install postgresql'. Setelah itu saya langsung berhasil menjalankan 'pembaruan bundel'

Shannon Perkins
sumber
0
sudo su 

kemudian

ARCHFLAGS="-arch x86_64" gem install pg -v '0.18'

bekerja pada 10.10.2

Keaton Burleson
sumber
0

Jika setelah mencoba semuanya di sini masih tidak bisa dipasang, coba buka Xcode dan terima perjanjian lisensi.

hattenn
sumber
0

Bagi saya, pesan kesalahannya terlihat seperti ini:

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...

checking for pg_config... no

No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

Seperti yang ditunjukkan oleh pesan kesalahan, itu mencoba untuk menjalankan perintah / script "pg_config". Jadi tambahkan saja ke jalur dari mana pun instalasi Postgres Anda berada. Dalam kasus saya, saya melakukan:

export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH

kemudian

bundle

Itu dia.

paneer_tikka
sumber
-1

Postgres 9.4:

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config
MDD
sumber
Sedikit penjelasan akan menyenangkan, agar tidak hilang dalam banjir 19 jawaban lainnya.
Brad Koch