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?


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

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

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.


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


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


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.


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

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


3

Untuk pengguna CentOS:

sudo yum install postgresql-devel

dan

gem install pg

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.

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


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.


0

Saya perlu menggunakan sudo

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

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

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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.