Saya menggunakan Ruby on Rails 3.1 versi pre. Saya suka menggunakan PostgreSQL, tetapi masalahnya adalah menginstal pg
permata. Ini memberi saya kesalahan berikut:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/u/.rvm/rubies/ruby-1.9.2-p0/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.
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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out
Bagaimana saya mengatasi masalah ini?
ruby-on-rails
ruby-on-rails-3
postgresql
rails-postgresql
pg
demonchand
sumber
sumber
Jawaban:
Sepertinya di Ubuntu header itu adalah bagian dari
libpq-dev
paket (setidaknya dalam versi Ubuntu berikut: 11.04 (Natty Narwhal), 10,04 (Lucid Lynx), 11,10 (Oneiric Ocelot), 12,04 (Precise Pangolin), 14,04 ( Precise Pangolin), 14,04 (Trusty Tahr) dan 18,04 (Bionic Beaver)):Jadi coba instal
libpq-dev
atau yang setara untuk OS Anda:sudo apt-get install libpq-dev
yum install postgresql-devel
brew install postgresql
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
zypper in postgresql-devel
pacman -S postgresql-libs
sumber
durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ gem install libpq-dev ERROR: Could not find a valid gem 'libpq-dev' (>= 0) in any repository durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$
apt-get install postgres-server-dev-{pg.version}
jawaban Anda tidak lagi berfungsi dengan postgresql 9.4 di Ubuntu 14.04 Lihat: stackoverflow.com/a/28837453/75194Di macOS (sebelumnya Mac OS X dan OS X ), gunakan Homebrew untuk menginstal tajuk yang tepat:
dan kemudian berlari
harus bekerja.
Atau, daripada menginstal keseluruhan
postgresql
, Anda dapatbrew install libpq
dan mengekspor yang benarPATH
danPKG_CONFIG_PATH
seperti yang dijelaskan di bagian 'Peringatan'sumber
brew install postgressql
saya menjalankanARCHFLAGS="-arch x86_64" gem install pg
dan bekerja dengan baik.brew install libpqxx
di mac OSX sudah cukuplibpqxx
diinstalpostgresql
sebagai dependensi, jadi pada dasarnya sama denganbrew install postgresql
postgresql
, Anda dapatbrew install libpq
dan mengekspor yang benarPATH
danPKG_CONFIG_PATH
seperti yang dijelaskan di bagian 'Peringatan'.Saya juga mencoba melakukan
gem install libpq-dev
, tetapi saya menerima kesalahan ini:Namun saya menemukan bahwa menginstal dengan
sudo apt-get
(yang saya coba hindari menggunakan dengan Ruby on Rails) berfungsi, yaitumaka saya bisa melakukannya
tanpa masalah.
sumber
libpq-dev
paket.Saya bisa menyelesaikan ini dengan cara lain. Saya tidak menemukan perpustakaan di sistem saya. Jadi saya menginstalnya menggunakan aplikasi dari situs web utama PostgreSQL. Dalam kasus saya (OS X) saya menemukan file di bawah
/Library/PostgreSQL/9.1/include/
setelah instalasi selesai. Anda juga dapat memiliki file di tempat lain tergantung pada sistem Anda jika Anda sudah menginstal PostgreSQL.Berkat tautan ini tentang cara menambahkan jalur tambahan untuk pemasangan gem , saya bisa mengarahkan gem ke lib dengan perintah ini:
Setelah itu, berfungsi, karena sekarang tahu di mana menemukan perpustakaan yang hilang. Cukup ganti jalur dengan lokasi yang tepat untuk libpq-fe.h Anda
sumber
export CONFIGURE_ARGS="with-pg-include=/usr/local/Cellar/postgresql/9.3.1/include/"
pg_*
script ke dalam $ PATH seperti:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Saya memasang postgres 9.3 seperti:yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm && yum install postgresql93 postgresql93-contrib postgresql93-server postgresql93-devel
gem install pg -- with-pg-include=/Library/PostgreSQL/9.1/include/
export CONFIGURE_ARGS="with-pg-config=/path/to/postgres/bin/pg_config"
. Yangpg_config
dapat dieksekusi akan dipanggil untuk mendapatkan semua opsi kompilator dan tautan yang diperlukan - Anda dapat menjalankannya sendiri untuk melihatnya.saya sukses di CentOS 7.0.1406 menjalankan perintah berikut:
Atau , Anda dapat mengonfigurasi bundler untuk selalu menginstal
pg
dengan opsi ini (membantu menjalankan bundler di lingkungan penyebaran),bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
sumber
Untuk CentOS 6.4,
bekerja dengan baik!
sumber
sudo port install postgresql-devel
,.Sebagai catatan:
Aplikasi Ruby on Rails 4 di OS X dengan PostgresApp (dalam hal ini versi 0.17.1 diperlukan - semacam proyek lama):
sumber
/Applications/Postgres.app/Contents/Versions/10/bin/pg_config
Di Mac OS X jalankan seperti ini:
***/path/to/pg_config***
adalah path ke pg_configsumber
sudo find / -name "pg_config"
, kemudiangem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config
menggunakan jalur yang baru saja saya temukan.Dalam kasus saya itu paket
postgresql-server-dev-8.4
(saya di Ubuntu 11,04 (Natty Narwhal), 64 bit).sumber
Jawaban yang tepat untuk pengguna Mac dengan Postgres.app adalah untuk membangun terhadap yang
libpq
disediakan dengan paket itu. Misalnya, dengan rilis 9.4 (saat ini saat penulisan ini), yang Anda butuhkan adalah:Ini akan menjaga
pg
permata Anda tetap sinkron dengan versi PostgreSQL yang telah Anda pasang. Menginstal sesuatu dari Homebrew adalah pemborosan dalam kasus ini.sumber
Saya memiliki masalah yang sama di Amazon Linux. Saya bisa menemukan tajuknya
libpq-fe.h
, tetapi entah bagaimana itu tidak berhasil.Itu berasal dari berbagai versi paket yang diinstal melalui berbagai pengguna pada mesin. PostgreSQL 9.2 dan PostgreSQL 9.3 diinstal. Jadi, pastikan versi PostgreSQL Anda sebelum memasukkan pustaka.
Bagi saya, baris perintah ajaib adalah:
Sumber: Panduan hampir idiot untuk menginstal PostgreSQL 9.3, PostGIS 2.1 dan pgRouting dengan Yum
sumber
Jawaban yang lebih umum untuk distribusi berbasis Debian (termasuk Ubuntu) adalah sebagai berikut. Pertama, instal
apt-file
paket yang berjalan sebagai root:Ini memungkinkan Anda untuk mencari paket yang berisi file. Kemudian, perbarui databasenya menggunakan
(ini dapat dijalankan sebagai pengguna biasa). Kemudian, cari tajuk yang hilang menggunakan:
Di mesin saya, ini memberi:
Ini dia !
sumber
Untuk MacOS tanpa menginstal server PostgreSQL:
sumber
Di Mac, saya menyelesaikannya menggunakan kode ini:
sumber
Saya menjalankan Postgres.app di Mac dan saya harus melakukannya
pertama. Kemudian
bekerja untukku.
sumber
Saya memiliki masalah yang sama pada Mac OS, tetapi saya menginstal permata PostgreSQL dengan mudah dengan menggunakan yang berikut di terminal:
(Saya menginstal PostgreSQL pertama kali dengan
brew install postgresql
.)sumber
Saya menemukan jawaban ini, dan itu adalah satu-satunya yang bekerja untuk saya (Mac OS) - setelah meneliti selama sekitar dua hari:
Lihat pertanyaan Stack Overflow Tidak dapat menemukan perpustakaan klien PostgreSQL (libpq) .
sumber
Saya baru-baru ini ditingkatkan ke Mac OS X v10.10 (Yosemite) dan mengalami kesulitan membangun
pg
permata.Kesalahan yang dilaporkan adalah tipikal:
Solusi saya adalah untuk
gem uninstall pg
dan kemudianbundle update pg
mengganti permata dengan yang terbaru. Saya memang menjalankanbrew update; brew upgrade
setelah Yosemite menginstal untuk mendapatkan versi terbaru dari paket yang saya instal sebelumnya.sumber
Di Ubuntu, instal "libpq-dev" untuk menyingkirkan masalah ini.
sumber
sudo apt-get install postgresql
sebelumlibpq-dev
Pada CentOS, saya menginstal
libpq-dev package
menggunakan perintah di bawah iniEksekusi
gem install pg
mengembalikan kesalahan yang sama dengan "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
".Menginstal permata seperti di bawah ini memecahkan masalah saya
sumber
Pada FreeBSD (9.1) paket yang diperlukan adalah / usr / ports / database / postgresql-server * yang ketika diinstal juga akan menginstal file header yang diperlukan yang membuat permata menginstal "pg" gagal. Jawaban ini di sini membantu saya menemukan solusinya tetapi perbedaan dalam nama paket membutuhkan sedikit pencarian.
Semoga ini membantu seseorang menghindari sedikit goresan kepala saat mencari paket "-dev" pada sistem FreeBSD!
sumber
Pada Debian 7.0, 64-bit (Wheezy), jalankan saja:
Setelah Anda berhasil menginstal libpq-dev, jalankan:
sumber
Di bawah CentOS 6.5 (Memeras) saya membuat file:
dengan konten:
Catatan di sini, Anda harus mengatur jalur PostgreSQL Anda dengan file pg_config. Anda dapat menemukan ini dengan perintah:
Simpan file:
dan coba jalankan perintah Anda lagi.
Catatan: Setiap kali Anda mengubah konfigurasi Bash - mengubah konfigurasi profile.d - Anda harus memuat ulang Bash.
sumber
pg_*
script ke jalan seperti:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Setelah itu saya tidak memerlukan skrip atau variabel lingkungan tambahan.Lokasi
libpq-fe.h
tergantung di mana PostgreSQL Anda instal (yang tergantung pada bagaimana Anda menginstalnya). Gunakanlocate
( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ) untuk menemukanlibpq-fe.h
file di mesin Anda. Jika ada, itu akan berada diinclude
direktori instalasi PostgreSQL Anda.The
bin
direktori, yang berisipg_config
, akan berada di direktori yang sama denganinclude
direktori. Seperti yang disarankan kesalahan, gunakan opsi --with-pg-config untuk menginstal permata:Perhatikan bahwa Anda mungkin perlu menjalankan
updatedb
jika Anda belum pernah menggunakanlocate
atau jika Anda belum memperbarui sejak menginstal PostgreSQL.sumber
--
sebelumnya--with-pg-config=...
saya mendapatkan kesalahan: GALAT: Saat menjalankan permata ... (OptionParser :: InvalidOption) pilihan tidak valid: --with-pg-config = / usr / bin / pg_config)Saya akhirnya memecahkan masalah ini, tetapi tidak menggunakan metode yang dijelaskan sebelumnya.
Menggunakan
brew install postgresql
, saya mengetahui bahwa itu sudah diinstal, tetapi tidak terhubung.Cari tahu di mana PostgreSQL diinstal, dan hapus,
Kemudian
brew install postgresql
lagi,brew link postgresql
gem install pg
sumber
Saya baru saja ini pada OSX menjalankan minuman dan
[email protected]
.Perbaikan saya adalah ini:
sumber
Saya mengalami masalah ini dengan Postgresql 9.6. Saya dapat memperbaikinya dengan melakukan:
sumber
Saya mengalami kesalahan yang sama dengan postgres yang diinstal melalui asdf. Solusi pg-config tidak bekerja untuk saya. Sebaliknya saya harus mencari folder postgres include yang berisi file dan menjalankan perintah dengan
--with-pg-include
flagsumber
Untuk
AltLinux
paketpostgresqlx.x-devel
(dalam kasus sayapostgresql9.5-devel
) harus diinstal:sumber
Saya memecahkan ini dengan menginstal paket 'postgresql-common'. Paket ini menyediakan
pg_config
biner yang kemungkinan besar adalah apa yang Anda lewatkan.sumber