tidak dapat memasang permata pg

217

Saya mencoba menggunakan gem install pgtetapi sepertinya tidak berhasil.

gem install pg memberikan kesalahan ini

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

C:/Ruby/bin/ruby.exe 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.

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=C:/Ruby/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


Gem files will remain installed in C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out
Rohit
sumber
3
Jika Anda menggunakan mac, ikuti tutorial ini: matthew.mceachen.us/blog/…
Noah W. Smith
1
@NatchiQ tautan rusak?
0112
dalam kasus saya log kesalahan mengatakan libpqtidak ditemukan, jadi saya menginstalsudo apt install postgresql postgresql-contrib libpq-dev pgadmin3 -y
Raj

Jawaban:

14

Dijawab di sini: Tidak dapat menginstal pg gem di Windows

Tidak ada versi asli Windows versi terbaru dari pg (0.10.0) yang dirilis kemarin, tetapi jika Anda menginstal 0.9.0 ia harus menginstal binari tanpa masalah.

Nikita Barsukov
sumber
388

Saya punya masalah ini, ini berhasil untuk saya:

Instal paket postgresql-devel, ini akan menyelesaikan masalah pg_config yang hilang.

sudo apt-get install libpq-dev
Devaroop
sumber
139
Bekerja untuk saya apt-get install libpq-dev. Terima kasih atas petunjuknya.
Ryanmt
5
Konfirmasi, dari beranda pg permata Wiki : "Di Ubuntu, / usr / bin / pg_config disediakan oleh paket libpq-dev."
Mark Berry
17
bagaimana dengan mac?
Fivell
23
@ Fivell Terlambat ke permainan dengan jawaban di sini, tetapi jika Anda telah menginstal Homebrew, Anda brew install postgresqlakan mendapatkan paket yang Anda butuhkan.
Alex LaFroscia
19
@ Fivell coba brew install postgresqldi mac
Mahattam
91

Masalahnya adalah ketergantungan permata jadi sebelum menginstal pg pastikan Anda telah menginstal "libpq-dev"

Sistem Ubuntu:

sudo apt-get install libpq-dev

Sistem RHEL:

yum instal postgresql-devel

Mac:

buat instalasi postgresql

Mahattam
sumber
7
Jawaban untuk Mac benar. Itu hanya karena kami belum menginstal PostgreSQL pada mesin.
Hoang Le
Pada Centos 7 yum install postgresql-develdiselesaikan kesalahan saya terkait pg_config untuk menginstal 'pg' .gem. Ngomong-ngomong, saya memilih untuk menggunakan PostgreSQL 10 yang baru saja dirilis
Arthur
62

gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Flaviu
sumber
3
Ini membantu saya (pada Centos 6.2)
TuK
14
Bekerja untuk saya di OS X, tetapi dengan jalur ke /Applications/Postgres.app/Contents/MacOS/bin/pg_config (Saya memiliki Postgres.app mandiri)
Matt
10
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config di yosemite dengan Postgres App
twmulloy
Bekerja. Tapi di Mac, sebelumnya env ARCHFLAGS="-arch x86_64"adalah pengubah permainan bagi saya.
Janusz Lenar
2
Saya menggunakan gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_configOSX 10.12
Tim Krins
37

@ Winfield mengatakannya :

Permata pg membutuhkan pustaka klien postgresql untuk diikat. Kesalahan ini biasanya berarti ia tidak dapat menemukan perpustakaan Postgres Anda. Entah Anda belum menginstalnya atau Anda mungkin harus meneruskannya --with-pg-dir=ke instal permata Anda.

Lebih dari itu, Anda hanya perlu --with-pg-config=menginstalnya.

Di Mac

Jika, kebetulan, Anda juga menginstal postgres melalui bundel situs web di mac, itu akan berada di suatu tempat seperti /Applications/Postgres.app/Contents/Versions/9.3/bin.

Jadi, Anda menyebarkannya di permata menginstal:

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

Atau Anda mengatur PATH dengan benar . Karena itu mungkin terlalu banyak, untuk sementara mengatur PATH:

export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/
cregox
sumber
2
untuk versi spesifik:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
Dan Sandland
Ada folder symlink yang disebut latestdi dalam folder konten Postgres.app yang berguna jika 9.3 tidak lagi dikirimkan. gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Stephen Silber
24

Saya belum menginstal postgresql, jadi saya hanya menginstalnya menggunakan

sudo apt-get install postgresql postgresql-server-dev-9.1

di Ubuntu 12.04.

Ini menyelesaikannya.


Memperbarui:

Gunakan versi terbaru:

sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3
Lasse Skindstad Ebert
sumber
Memperbaiki masalah bagi saya tetapi pada mac (dengan homebrew) saya harus menjalankan perintah ini:brew install postgresql
gMale
19

Ini berhasil dalam kasus saya:

sudo apt-get install libpq-dev

Saya menggunakan:

  • Ubuntu 14.04.2 LTS
  • Ruby 2.2.2
  • Rel 4.2.1
Zainal
sumber
12

Jika Anda menggunakan Postgres.app di Mac, Anda dapat menyelesaikan masalah ini sekali dan untuk semua seperti ini:

Pertama gem uninstall pg, edit ~/.bash_profileatau ~/.zshrcfile Anda atau yang setara dan tambahkan:

# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin

Lalu bundle installdan gem install pgharus sama-sama bekerja seperti yang diharapkan.

DuArme
sumber
Terima kasih, ini juga bekerja menggunakan brew yang diinstal postgreSQL # PostgreSQL ekspor jalur bin PATH = $ PATH: /usr/local/Cellar/postgresql/9.5.0/bin/
Benoit
9
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin sudo gem install pg

ganti 9.1 untuk versi yang diinstal pada sistem Anda.

jstnno
sumber
1
Ini membantu saya di mac, ada yang tahu apa path default dan bagaimana mengubahnya?
Steve
Bekerja pada OS X Maveric
Marek Kirejczyk
5

Di Mac OS (El Capitano). Anda cukup menggunakan:brew install postgresql

Jones Agyemang
sumber
1
Iya! Ini yang saya butuhkan! Instal di OS X yang bersih, tanpa Postgres.app
Lane Rettig
3

Permata pg membutuhkan pustaka klien postgresql untuk diikat. Kesalahan ini biasanya berarti ia tidak dapat menemukan perpustakaan Postgres Anda. Entah Anda belum menginstalnya atau Anda mungkin harus melewatkan --with-pg-dir = untuk menginstal permata Anda.

Winfield
sumber
3

Untuk Pengguna Mac

PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg

Ini harus melakukan trik

Ronak Jain
sumber
3

Gunakan dengan ARCHbendera.

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

Ini menyelesaikan masalah yang sama dengan yang Anda alami.

Aman Chhabra
sumber
2

Saya mengalami masalah ini pada Linux Mint (Maya) 13, Dan saya memperbaikinya dengan Menginstal postgresql dan postgresql-server:

apt-get install postgresql-9.1 

sudo apt-get install postgresql-server-dev-9.1
SAIDI Belkacem
sumber
2

Terlepas dari OS apa yang Anda jalankan, lihat file log "Makefile"untuk melihat apa yang sedang terjadi, alih-alih menginstal secara membabi buta hal-hal.

Dalam kasus saya, MAC OS, file log ada di sini:

/Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log

Log menunjukkan bahwa file make tidak dapat dibuat karena hal berikut:

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers

Di dalam mkmf.log, Anda akan melihat bahwa itu tidak dapat menemukan perpustakaan yang diperlukan, untuk menyelesaikan pembangunan.

checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah

Setelah berjalan "brew install postgresql", saya dapat melihat semua perpustakaan yang diperlukan ada di sana:

za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes
zee
sumber
2

Saya telah mengalami masalah yang mengganggu ini dengan PG selama bertahun-tahun. Saya membuat intisari ini untuk membantu.

Perintah berikut selalu bekerja untuk saya.

# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config

inti: https://gist.github.com/sharnie/5588340cf023fb177c8d

SharnieIvery
sumber
1

Saya harus melakukan ini di CentOS 5.8. Menjalankan bundle installterus menyebabkan masalah karena saya tidak bisa memaksanya untuk menggunakan versi PG tertentu.

Saya juga tidak yum erase postgresql postgresql-develbisa, karena masalah ketergantungan (itu akan menghapus php, http dll)

Solusinya? Mess $ PATH sementara untuk memberikan preferensi ke pgsql pembaruan, bukan yang default:

export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install

Pada dasarnya, dengan perintah di atas, ia akan melihat /usr/pgsql-9.2/bin/pg_configsebelum yang masuk/usr/bin/pg_config

Kristen
sumber
1

Jika Anda menggunakan jruby alih-alih ruby, Anda akan memiliki masalah serupa saat memasang pg gem. Sebagai gantinya Anda perlu menginstal adaptor:

gem 'activerecord-jdbcpostgresql-adapter'
Nuri
sumber
1

Di Mac brew install postgresLALUbundle install

Yar HTUT
sumber
0

Pergi saja ke sini untuk melihat apakah versi pg Anda mendukung platform Win32, kemudian gunakan perintah ini untuk menginstal:

permata instal pg -v 0.14.1 --platform = x86-mingw32

revskill
sumber