Rails 3 - pg gem yüklenemiyor


98

Paketi çalıştırmayı denediğimde (paket yükleme), her zaman

Installing pg (0.13.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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=/Users/ryan/.rvm/rubies/ruby-1.9.2-p290/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 /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection.
Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out
An error occured while installing pg (0.13.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.13.2'` succeeds before bundling.

Mac OS X 10.6 kullanıyorum, kurulu PostgreSQL'in sürümü 9.1. Sorunun libpq-dev'de olduğunu buldum, bunu nasıl kurabilirim / düzeltebilirim?


2
mac'inize postgres'i nasıl yüklersiniz?
shingara

1
bu şekilde
user984621

on_click yükleyici? Flink? veya MacPort?
shingara

Bunu bu şekilde yüklemeye çalıştım: sudo port install libpq-devama başka bir sorun - Error: Port libpq-dev not found To report a bug, see <http://guide.macports.org/#project.tickets>. Bu korkunç, hala bazı problemler ...
user984621

1
Bu soruya bakın: [burada] [1] [1]: stackoverflow.com/questions/10321189/…
banditKing

Yanıtlar:


78

Hata günlüğünüzde belirtildiği gibi, pg_config yolunu iletmeniz gerekir. Gem'i kullanarak yüklemeyi deneyin:

gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'

Pg_config'inizin nerede olduğundan emin değilseniz ve Linux veya Mac'te olduğunuzu varsayarak, aşağıdaki komutu çalıştırabilirsiniz:

which pg_config

Pg-config'iniz, postgres'i nasıl kurduğunuza bağlı olarak farklı yerlerde olabilir.


Not olarak, Postgres sitesindeki ikili paket geliştirme başlıklarını veya pg_configprogramı içermez .
tadman

3
Buradan ikili paket: enterprisedb.com/products-services-training/pgdownload#osx kesinlikle yapar hem içerirler pg_config(en, örneğin /Library/PostgreSQL/9.1/bin/pg_config9.1.x için) ve geliştirme başlıkları. Ben pgmücevherleri geliştirme aşamasında test etmek için kullandığım şey bu .
Michael Granger

8
Daha which pg_confighızlı olmaz mıydı find / -name pg_config?
Justin D.

Komut satırı argümanlarınızda küçük bir değişiklik yaptık. Sürümü mevcut sürümünüzle değiştirmek sorunsuz çalışmalıdır. İşte komut satırım: sudo env ARCHFLAGS = "- arch x86_64" gem install pg - --with-pg-include = / Library / PostgreSQL / 9.1 / include / --with-pg-lib = / Library / PostgreSQL / 9.1 / lib /
Rod Paddock

13
OSX'te başlıkları almak için brew'ı da kullanabilirsiniz brew install libpqxxve her şey yoluna girecektir.
Vetsin

99

Linux üzerinde çalışıyorsanız, benim için neyin işe yaradığıyla ilgilenebilirsiniz:

sudo apt-get install postgresql
sudo apt-get install libpq-dev

Sonra

gem install pg

sonra

bundle install

src: http://wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac


1
teşekkürler, benim durumumda olduğu gibi - bundle gem install pg çalıştırmaya gerek yok
valk

21
OS X için uygun değildir.
dfrankow

1
Kasım 2013 itibariyle Ubuntu 13.04 çalıştırarak benim için çalıştı!
Starkers

Yanlış işletim sistemi olduğu açıkça belliyken neden bu kadar çok olumlu oy var?
sevenseacat

1
@sevenseacat, kullanılması gereken işletim sistemini açıkça belirtir. Ve açıkça Linux işletim sistemi olan birçok kişi bu sorunu araştırırken bu cevabı buluyor.
EE33

57

Postgress.app kullanıyorsanız , komut satırı araçlarına erişmek isteyeceksiniz . Aşağıdaki satırı terminalinize veya PATH profilinize girin :

 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

gem install pgşimdi çalışmalı. (Bu benim için çalıştı.)

Not Yeni sürümler yolu şuna benzer:

/Applications/Postgres.app/Contents/Versions/<version>/bin

3
Çok teşekkürler! Yarım saat çalışmayan şeylerle uğraştım ve sonunda bunu burada gömülü buldum. : D
Peter Brown

1
Demleme gerektirmeyen harika çözüm.
lucian303

7
Postgre.app yamasının 93 sürümünde değiştiğini unutmayın. şimdi: /Applications/Postgres93.app/Contents/MacOS/bin
Alain

2
Bu benim için çalıştı, ancak bölmem çok farklı bir yerdeydi -> /Library/PostgreSQL/9.3/bin
Jeremiah

5
/Applications/Postgres.app/Contents/Versions/9.3/binPostgres.app kullanıyorsanız bu şimdi - 9.3.5 itibariyle
Ashley


12

Libpq ara:

brew search libpq

Çıktı gerekir libpqxx

Ardından yüklemeyi deneyin:

brew install libpqxx

8

Yalnızca libpq-devşunları yüklemeniz gerekir :

sudo apt-get install libpq-dev

O zaman mücevher iyi bir şekilde kurulmalıdır.


8
OS X için uygun değildir.
dfrankow

Benim durumumda sadece bu yardımcı oldu. Thanx!
kovpack

7

Yükleme sonrası talimatları izleyin: http://postgresapp.com/documentation/configuration-ruby.html

Pg gem'i kurmak için $ PATH'ınızı doğru bir şekilde ayarladığınızdan emin olun ( http://postgresapp.com/documentation/cli-tools.html'de belirtildiği gibi ) ve ardından çalıştırın

sudo ARCHFLAGS="-arch x86_64" gem install pg

Her iki sayfayı da okumanızı şiddetle tavsiye ederim. Sadece onları gözden geçirdim ve hayatımın 1 saatini kaybettim. Okuyun, sorun çözüldü.


OSX 10.9.5, varsayılan ruby ​​sürüm 2.0, rbenv yerel sürüm 1.9.3 üzerinde çalışır.
jlucasps

OSX 10.11 TEŞEKKÜRLER üzerinde çalışıyor
Yarin

OSX 10.11.4 üzerinde çalışır. Teşekkürler!!
Martyn Chamberlin

3

Karşılaştığım problem, bir sebepten dolayı /usr/bin/gcc-4.2 ile derlemeye çalışıyor olmasıydı. Başarısız olan derleme satırında bir istisna oluşturmak için mkmf.rb'deki try_cpp'yi (yığın izlemesinde gördüğüm) değiştirerek buldum.

Gcc'yi gcc-4.2'ye yumuşak bağladım ve işe yaradı:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

Neden gcc-4.2 kullanmaya çalışıyordu? Fikrim yok.

Gerçek derleme satırı:

/usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/Cellar/postgresql/9.1.4/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe  conftest.c -o conftest.i (RuntimeError)

3

Aynı sorunu yaşıyorum ama Postgres'im yüklendi

/Library/PostgreSQL/9.3

Ekleyerek ~ / .bash_profile güncellendi:

export PATH=/Library/PostgreSQL/9.3/bin:$PATH

Yeni bir terminal açın, çalıştırın bundle updateve benim için de çalıştı. Teşekkürler Ari.


ama benim için çalışmam için sürümü kontrol etmem ve ardından PATH = / Applications / Postgres.app / Contents / Versions / 9.4 / bin: $ PATH
Prateep Kul

1

Bir yapılandırma yapılandırma seçeneği ayarlayabilir bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configve gem install pgherhangi bir seçenek olmadan kullanabilirsiniz (pg_config yolu sizin için farklı olabilir, bu Postgresapp 9.3.5.0 içindir)


1

OpenSUSE13.1 KDE makinemde de aynı sorunu yaşadım. Bu konuda önce ben sadece paketleri yüklü vardı karşılaştı postgresqlve postgresql-serverkullanma zypperkomutu. Sonra tekrar 2 paket daha kurdu:

[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

Sonra tekrar koştum bundle installve başarı !!!



0

İlk önce, herhangi bir Homebrew sürümünü kaldırın. --Force seçeneği, tüm sürümleri kaldırmasını sağlar.

brew rm postgresql --force

Yolları sürümünüze göre değiştirin.

sudo /sbin/SystemStarter stop postgresql-8.4
sudo rm -rf /Applications/PostgreSQL\ 8.4
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-8.4
sudo rm -rf /Library/PostgreSQL/8.4
sudo dscl . delete /users/postgres

/ Etc / profile düzenleyin ve "postgres" ile ilgili tüm satırları silin.

nano /etc/profile

PostgresSQL'i yükleyin

brew update
brew install postgresql

PG GEM'i yükleyin

gem install pg

Bu kadar. Saygılarımızla.


0

Önce lib dosyasına giderek terminalinizde bir postrgresql dosyanız olup olmadığını kontrol edebilirsiniz. cd ~ / opt / local / lib / olacak ve sonra ls yazıp enter butonuna tıklayınız. Bu size lib dizininde bulunan tüm dosyaların bir listesini gösterecektir.

1. postreseql'iniz yoksa, macports aracılığıyla indirebilirsiniz. sudo bağlantı noktası yükleme postgresql93 @ 9.3.2_1

Şimdi, yüklemeye çalıştığınız klasöre geri cd yapın

  1. pg'nizin sahip olduğunuz veya yeni indirdiğiniz postgesql dosyanızla çalışmasını sağlamak gem install pg - --with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

şimdi paket yüklemeyi çalıştır



0

El Capitan'da benim için işe yarayan şey, Ruby'yi sistem varsayılanından 2.3.1'e yükseltmek, pggem'in ihtiyaç duyduğu doğru kütüphaneleri bulmuş gibiydi .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.