Terjadi kesalahan saat menginstal pg (0.17.1), dan Bundler tidak dapat melanjutkan

87

Saya baru saja menginstal Rails 4.0.2dan saat membuat aplikasi baru, dalam tahap bundel saya mendapatkan:

Installing pg (0.17.1) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/Dee/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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.

Bagaimana cara mengatasinya?

Deekor
sumber
1
Anda mungkin ingin menambahkan tag osx. Solusinya tampaknya terkait secara khusus dengan OS Anda.
Vince
Anda mungkin ingin berkunjung. stackoverflow.com/questions/3116015/… . Semoga salah satu solusi tersebut membantu
Yana Agun Siswanto

Jawaban:

144

Saya menggunakan Mac yang menjalankan Mavericks. Solusi saya adalah menginstal Postgres .

Dan kemudian di instal terminal menggunakan homebrew dengan konfigurasi:

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

Catatan: Jawaban ini telah diedit untuk menggunakan latestsymlink yang saat ini disertakan dalam versi pengiriman aplikasi Postgres.

Versi sebelumnya disarankan:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
Bob O'Brien
sumber
Yup punyaku berada di lokasi yang berbeda juga. Terima kasih atas jawabannya.
Deekor
Benar Bob, versi postgresapp tempat ini bekerja untuk saya, adalah Versi 9.2.2.0, jadi mereka pasti telah mengubah lokasi ini pada rilis 9.3.
Robertibiris
1
Dan sekarang, mulai 22/1/15 kami melihat rilis 9.4, senang melihat mereka terus memperbaruinya - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
corprew
3
Saya terburu-buru dan melewatkan bagian dari jawaban yang mengatakan "instal menggunakan home-brew". Jawaban ini berhasil bagi saya setelah saya melakukannyabrew update; brew install postgres
Dennis
6
Dalam solusi Anda, tambahkan versinya, permata PG terbaru lainnya akan dipasang:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092
183

Beberapa jenis kesalahan dilaporkan di sini Menginstal permata PG di OS X - kegagalan untuk membangun ekstensi asli

Untuk menginstal dependensi di Ubuntu, coba ini:

sudo apt-get install libpq-dev

dan ini

gem install pg
Talgat Medetbekov
sumber
6
Saya menggunakan mac, apa yang harus saya lakukan?
Deekor
1
Mengikuti tutorial di railstutorial.org. Inilah yang perlu Anda lakukan untuk Mint. Terima kasih.
Christopher Schneider
railstutorial.org - tutorial berbayar; ada ide lain?
Terra Ashley
@Deekor Jika Anda menggunakan Homebrew, Anda dapat menjalankannya brew install postgresql, pgpermata harus dipasang dengan benar. Lihat dokumen ini .
theblang
21

root aplikasi:

  1. pembaruan minuman
  2. buat instal postgres
  3. permata instal pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. bundel instal
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. launchctl load ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: buat: semua
  9. rake db: bermigrasi
  10. rel s

CATATAN: ganti nomor versi pada langkah 3 jika perlu.

knice
sumber
10

Jawaban sebelumnya berfungsi dengan versi yang lebih lama

Saya menginstal di bawah mac OSX Mavericks, memiliki aplikasi postgres (Versi 9.2.2.0) dari www.postgresapp.com diinstal. Masalah yang mendasarinya adalah simpy bahwa sejak postgres diinstal melalui aplikasi, file konfigurasi berada di lokasi yang bukan default saat menginstalnya tanpa postgressapp. jadi kita perlu memberi tahu gem di mana menemukan file ini dengan:

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

Semoga membantu

Robertibiris
sumber
1
Ini adalah solusi saya (OSX)
raulriera
Jika ini tidak berhasil untuk siapa pun, untuk 9.3 file konfigurasi telah dipindahkan - lihat jawaban yang diterima.
Deekor
5

Jika gem install pg gagal, coba perintah berikut:

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

... dari Dokumentasi PostgreSQL.app

Vince
sumber
2
Karena aplikasi resmi baru-baru ini mengubah nama menjadi "Postgres93.app", perintahnya adalah: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat
1
bagi saya ini bekerja dengan: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl
4

Sepertinya Anda belum menginstal PostgreSQL. The pgpermata membutuhkan beberapa header dari PostgreSQL untuk mengkompilasi ekstensi asli.

tungd
sumber
Bagaimana dengan pengaturan Ruby / Bundler Anda? Anda menggunakan Mac OS X atau Linux? dan jika Anda menggunakan Mac OS X, Anda menginstal PostgreSQL melalui homebrewatau PostgreSQL.app?
tungd
Saya menggunakan mac. Saya menginstal melalui aplikasi
Deekor
Saya telah menginstal 0.17.0. Ada salahnya menggunakan itu dengan rel 4?
Deekor
Lalu coba lari bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configdan lari bundlelagi. Sesuaikan jalur konfigurasi jika Anda memasang aplikasi ~/Applicationbukan/Application
tungd
3

Saya harus menggabungkan semuanya dan menggunakan

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

Jika Anda menggunakan sesuatu selain Postgres dalam pengembangan dan Postgres hanya dalam produksi, Anda dapat menambahkan permata pg ke file permata Anda seperti ...

group :production do
  gem 'pg',             '0.17.1'
end

Kemudian gunakan bundle install --without production

j8d
sumber
3

Untuk pengguna CentOS:

sudo yum install postgresql-devel

dan

gem install pg
webster
sumber
1

Saya baru saja menyiapkan Macbook Pro baru yang telah dibuat sebelumnya dengan Catalina.

Apa yang berhasil untuk saya:

  1. Instal Postgres dari sini: https://postgresapp.com/
  2. Tambahkan export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"ke Anda .zshenv, karena shell Z sekarang menjadi terminal default.
Henrik Holm
sumber
0

Setelah menginstal Postgres saya harus menjalankan perintah berikut

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

Setelah pemasangan bundel ini berfungsi dengan baik!

Semoga membantu

pochocosta.dll
sumber
0

Cara saya berhasil melewati kesalahan itu adalah:

  • cd ke folder aplikasi dan kemudian atur versi ruby ​​secara lokal. Saya menggunakan ruby ​​2.1.2.

rbenv lokal 2.1.2

  • alih-alih hanya menjalankan pemasangan bundel, pasang permata di vendor / bundel

bundle install --path vendor / bundle

Ini berhasil untuk saya.

Bogdan Nechita
sumber
0

Saya perlu menggunakan sudo

sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
gypsyDev
sumber
0

Saya mengalami masalah dengan Amazon dan tidak dapat menggunakan apt-get. Untuk pekerjaan saya:

    sudo yum install postgresql-devel

kemudian:

    bundle install

dan coba lagi:

    rails serve
Maurici Abad
sumber
0

Jika Anda menginstal melalui Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Bekerja dengan Ruby 2.4.6 dan pg 0.20.0.

zykadelic.dll
sumber
-2

Ini bekerja untuk saya

rvm list gemsets
rvm use ruby-2.4.1
bundle

error [! [diselesaikan dengan rvm gunakan ruby] 2

DevMasterAryan
sumber
Anda tidak memasang pgpermata di sini
zykadelic