Pg (0.17.1) yüklenirken bir hata oluştu ve Bundler devam edemiyor


87

Yeni yükledim Rails 4.0.2ve yeni bir uygulama oluştururken paket aşamasında şunu elde ediyorum:

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.

Bunu nasıl düzeltirim?


1
Bir osx etiketi eklemek isteyebilirsiniz. Çözüm, özellikle işletim sisteminizle ilgili olabileceği görülüyor.
Vince

Ziyaret etmek isteyebilirsin. stackoverflow.com/questions/3116015/… . Umarım bu çözümlerden biri yardım eder
Yana Agun Siswanto

Yanıtlar:


144

Mavericks çalıştıran bir Mac kullanıyorum. Benim çözümüm Postgres kurmaktı .

Ve sonra konfigürasyon ile homebrew kullanarak terminal kurulumunda:

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

Not: Bu yanıt latest, şu anda Postgres uygulamasının gönderi sürümlerinde bulunan sembolik bağlantıyı kullanmak için düzenlendi .

Önceki sürümler önerildi:

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

Evet benimki de farklı bir yerdeydi. Cevap için teşekkürler.
Deekor

Postgresapp'ın benim için çalıştığı versiyonu olan Doğru Bob, Versiyon 9.2.2.0 idi, bu yüzden 9.3 sürümünde bu konumu değiştirmiş olmalılar.
Robertibiris

1
Ve şimdi, 22.01.2015 itibarıyla 9.4 sürümüne bakıyoruz, onu güncel tuttuklarını görmek güzel - "gem install pg - --with-pg-config = / Applications / Postgres. app / Contents / Versions / 9.4 / bin / pg_config "
corprew

3
Acelem vardı ve bu cevabın "home-brew kullanarak kur" yazan kısmını kaçırdım. Bu cevap benden sonra işe yaradıbrew update; brew install postgres
Dennis

6
Çözümünüze lütfen sürümü ekleyin, diğer en son PG gem yüklenecek:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092

183

Burada bir tür hata yeniden aktarıldı OS X'e PG gem yüklenirken - yerel uzantı oluşturulamadı

Ubuntu'ya bağımlılıkları yüklemek için şunu deneyin:

sudo apt-get install libpq-dev

ve bu

gem install pg

6
Mac kullanıyorum, ne yapmalıyım?
Deekor

1
Railstutorial.org'daki öğreticinin ardından. Mint için yapmanız gereken bu. Teşekkürler.
Christopher Schneider

railstutorial.org - ücretli eğitim; başka fikir var mı?
Terra Ashley

@Deekor Homebrew kullanıyorsanız, çalıştırabilirsiniz brew install postgresql, o zaman pgmücevher düzgün şekilde kurulmalıdır. Bu belgelere bakın .
theblang

21

uygulama kökü:

  1. demleme güncellemesi
  2. demlemek postgres yüklemek
  3. gem kurulum pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. paket yükleme
  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: oluştur: tümü
  9. komisyon db: geçiş
  10. raylar

NOT: gerekirse 3. adımda sürüm numarasını değiştirin.


10

Daha önce eski sürümle çalışan yanıt

İ postgres uygulamasını (Sürüm 9.2.2.0) 'e sahip, Mac OS X Mavericks altında yüklü www.postgresapp.com yüklü. Altta yatan sorun, postgres'in uygulama aracılığıyla kurulduğundan beri, yapılandırma dosyasının postgressapp olmadan kurulurken varsayılan olmayan bir konumda yer almasıydı. bu yüzden gem'e bu dosyayı nerede bulacağımızı söylememiz gerekiyor:

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

Umarım yardımcı olur


1
Bu benim
çözümümdü

Bu hiç kimse için çalışmıyorsa, 9.3 için yapılandırma dosyası taşındı - kabul edilen yanıta bakın.
Deekor

5

Gem install pg başarısız olursa, aşağıdaki komutu deneyin:

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

... PostgreSQL.app Belgelerinden


2
Resmi uygulama yakın zamanda adları "Postgres93.app" olarak değiştirdiğinden, komut şu şekilde olmalıdır: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat

1
benim için çalıştı: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl

4

Görünüşe göre PostgreSQL'iniz kurulu değil. pgMücevher kendi eklentisini derlemek için PostgreSQL bazı başlıkları gerektirir.


Ruby / Bundler kurulumunuz nasıl olur? Mac OS X veya Linux mu kullanıyorsunuz? ve Mac OS X kullanıyorsanız, PostgreSQL'i homebrewveya PostgreSQL.app aracılığıyla mı yüklediniz ?
2013

Mac kullanıyorum. Uygulama aracılığıyla yükledim
Deekor

0.17.0 yükledim. Bunu raylar 4 ile kullanmanın bir zararı var mı?
Deekor

Ardından koşmayı deneyin bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configve bundletekrar koşun . Uygulamayı ~/Application/Application
2013'te 2

3

Her şeyi birleştirmek ve kullanmak zorunda kaldım

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

3

Yalnızca geliştirme aşamasında Postgres ve yalnızca üretimde Postgres dışında bir şey kullanıyorsanız, pg gem'i gemfile'nize şöyle ekleyebilirsiniz ...

group :production do
  gem 'pg',             '0.17.1'
end

Sonra kullan bundle install --without production


3

CentOS kullanıcıları için:

sudo yum install postgresql-devel

ve

gem install pg

1

Catalina ile önceden oluşturulmuş yeni bir Macbook Pro kurdum.

Benim için ne işe yaradı:

  1. Postgres'i buradan yükleyin: https://postgresapp.com/
  2. Z kabuğu artık varsayılan terminal olduğu export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"için .zshenv, ekleyin .

0

Postgres'i kurduktan sonra aşağıdaki komutu çalıştırmam gerekiyordu

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Bu paket yüklemesinden sonra harika çalışıyor!

Umarım yardımcı olur


0

Bu hatayı aşma şeklim şuydu:

  • cd'yi uygulama klasörüne yerleştirin ve ardından ruby ​​sürümünü yerel olarak ayarlayın. Ruby 2.1.2 kullanıyorum.

rbenv yerel 2.1.2

  • yalnızca paket yüklemeyi çalıştırmak yerine, mücevherleri satıcıya / pakete yükleyin

paket yükleme - yol satıcısı / paketi

Bu benim için yaptı.


0

Sudo kullanmam gerekiyordu

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

0

Amazon ile bir sorun yaşıyordum ve apt-get'i kullanamadım. Çalıştığım için:

    sudo yum install postgresql-devel

sonra:

    bundle install

ve yeniden dene:

    rails serve

0

Homebrew üzerinden kurduysanız; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Ruby 2.4.6 ve pg 0.20.0 ile çalışır.


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.