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

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:



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

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


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


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/

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

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

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.


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.


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


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.


3

Untuk Pengguna Mac

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

Ini harus melakukan trik


3

Gunakan dengan ARCHbendera.

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

Ini menyelesaikan masalah yang sama dengan yang Anda alami.


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

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

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


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


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'


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

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.