OS X'te PG gem yükleme - yerel uzantı oluşturma hatası


183

Diğer birçok pg gem yükleme sorunları vardı görünüyor. Başkaları için ortaya atılan çözümlerin hiçbiri benim için çalışmadı.

Pg gem ve postgres.app yüklemeye çalıştım. Pg gem yüklenmez. Aldığım ilk hata:

Pg (0.17.0) yüklenirken bir hata oluştu ve Bundler devam edemiyor. gem install pg -v '0.17.0'Paketlemeden önce başarılı olduğundan emin olun .

Gem yüklememi pg için yapılandırmaya yönlendirmeyle ilgili kurulum önerileri aşağıdaki hata iletisiyle başarısız olur (bu forumdaki diğer birçok kişi ile karşılaşmıştır):

Failed to build native extensions... Results logged to /Users/melanie/.rvm/gems/ruby-1.9.3-p448/gems/pg-0.17.0/ext/gem_make.out

Daha fazla ipucu aramak için bu günlük dosyasını nasıl bulacağımı veya erişeceğini bilmiyorum.

Ayrıca sudo apt-get install komutunu kullanmayı denediğimde bir hata mesajı (komut bulunamadı) alıyorum. Son 6 saat boyunca bu forumu inceledim ve raylar projemle çalışmasını sağlamak için her tavsiyeyi denedim.

Bir yolun nasıl değiştirileceği veya özellikle hangi değişikliğin gerekli olduğu hakkında tavsiye bulamıyorum. My which pg_configbir dosya kaynağı döndürür. Ben bu yapılandırma kullanarak pg yüklemek için bir komutla kullandım. Başarısız.

Bununla ilgili sorun yaşayan çok fazla insan var. Birçok cevap homebrew önerir. Bunu kaldırmak zorunda kaldım çünkü başka sorunları da fırlattı.


1
Hey, yolda yardımcı olacak birkaç soru: - Mac'indesin, değil mi? Homebrew ile yanlış mı oldu? (ps, belirttiğiniz gibi, apt-get sadece Ubuntu (ve Debian tabanlı kuzenleri için)) - hangi postgres sürümünüz var? psql -vkabuğunda koşmayı dene . - hangi yakut versiyonunu kullanıyorsun? 1.9.3'e benziyor, ama ruby -vsize ne veriyor?
rmosolgo

Ben eklemeliyim, benim psql eklendi: /Applications/Postgres-1.app/Contents/MacOS/bin/psql; çıkış; psql (9.3.0) ancak psql döndürür: usr / bin / psql
Mel

Merhaba, buna baktığın için çok teşekkürler. Benim psql v 9.3.0 ve ruby ​​v 1.9.3
Mel

1
Postgres.app için @ paninapress'in cevabına bakınız. Benim için harika çalıştı ve başka bir Postgres örneği yüklemeyi gerektirmiyor.
Jamon Holmgren

Yanıtlar:


442

Aynı hata benim için ve OS X 10.9'u (Mavericks) indirene kadar deneyimlemedim. Ah, başka bir işletim sistemi yükseltme baş ağrısı.

İşte nasıl sabitledim (homebrew ile):

  • Başka bir Xcode Tools derlemesi yükleyin ( brew updateterminale yazmak Xcode derleme araçlarını güncellemenizi ister)
  • brew update
  • brew install postgresql

Bundan sonra gem install pgbenim için çalıştı.


7
Mavericks yükseltmesini takiben Rails db'imi düzeltmeye çalışan iki günlük baş ağrısından sonra, bu benim için düzeltildi, çok teşekkürler.
Deborah

4
Bu benim için de işe yaradı - taze bir Mavericks kurulumunda. Teşekkürler!
marcamillion

1
Aklımı kurtardığın için teşekkürler!
Jim

1
Hala çalışıyor. Proje, eski bir uygulamayı desteklemek için Ruby 2.2.0'da, ancak hepsi aynı TEŞEKKÜR EDERİZ.
TristanZimmerman

1
1. brew update2. brew install postgresql3. gem install pg4.bundle install
kai_onthereal

223

Ubuntu kullanıyorsanız aşağıdaki lib dosyasını yüklemeyi deneyin

sudo apt-get install libpq-dev

ve sonra

gem install pg

benim için çalıştı.


4
Benim için de çalıştı. Ubuntu 13.10 kullanıyorum.
rafaelkin

4
Doğru yazdığınızdan emin olun. Bu değil libpg-dev; Onun bir Q değil bir P! Bunu zor yoldan saptamak 10 dakikamı aldı.
tir38

1
Amazon Linux için buyum install postgres-devel
andrewtweber

1
Ubuntu 14 üzerinde benim için çalıştı !!
18bytes

6
CentOSyum install postgresql-devel
septerr

49

OS X Mavericks kullanıyorum (sürüm 10.9)

ve yukarıdaki çalıştırdığımda aşağıdaki iletiyi aldım: PostgreSQL 9 sürümleri başarısız ve sürüm 8.x yüklü.

Bu yüzden aşağıdaki komutu çalıştırıyorum:

ARCHFLAGS="-arch x86_64" gem install pg

ve bu benim için çalıştı, umarım bu birine yardımcı olur :)


2
+1, başkalarını denedim, ama sonunda bu çözümle gem tarafından pg yükledim.
BMW

1
+1, aynı şekilde, bu benim için de bir çözümdü, postgresql'im zaten demlemekle kuruldu. Gönderi için teşekkürler Jon.
Jason Hoekstra

5
nb Kök olarak sudo ARCHFLAGS="-arch x86_64" gem install pg
kuruluysa

Aslında, her bundle install~/.bash_profile
koştuğumda

42

Tamam ben de bu sorun vardı (psql v 9.3.0 ve ruby ​​v 2.1.2) ve benim için çalışan çözüm ilk paket yapılandırma ayarlarını ayarlıyordu:

bundle config build.pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

Bu cevap sonunda anlamama yardımcı oldu: https://stackoverflow.com/a/9235107/3546680


6
Postgres.app kullanıyorsanız bu yöntem tercih edilir . Homebrew kullanmak yerel uzantı problemini çözebilir, ancak iki postgres uygulamasına sahip olmak çakışma yaratacaktır (port tahsisi gibi) Ayrıca bkz. Sayanees, stackoverflow.com/questions/19569031/…
Epigene

4
Bu kesinlikle Postgres.app için doğru cevaptır.
Jamon Holmgren

Mojave üzerinde iyi çalışıyor, birkaç dakika önce başarıyla çalıştı.
microspino

23

Her şeyi saatlerce denedim ama aşağıdakiler sonunda düzeltildi (OS X 10.9.4'te çalışıyorum):

  1. Xcode komut satırı araçlarını yükleme (Apple Developer sitesi)
  2. demlemek kaldırma postgresql
  3. demlemek yüklemek postgresql
  4. ARCHFLAGS = "- kemer x86_64" mücevher yükleme pg

Teşekkür ederim. Adım 4 için sudo kullandım, bu kötü bir şey mi? Nasıl önleyebilirim?
Roy

@Roy - yardım etmekten mutluluk duyuyorum :) - iyi olmalı, muhtemelen tüm kullanıcılar için yükleyeceğine inandığım için sudo kullanmaktan kaçınmak istiyorum, ancak sistemde büyük olasılıkla bir anlaşma olamayacak kadar tek kullanıcı iseniz .
Ali Yazdani

brew uninstall postgresqlve brew install postgresqlOS X 10.10 ve 10.11'de gerekli adımlar değildir. Sadece gem uninstall pgo zaman, (ve tüm sürümlerini kaldırmak) emin olmak bundleveya gem install pgtekrar ve yerli uzantıları bu OS X sürümü için yeni komut satırı araçları ile yeniden inşa edilecek.
Olivier Lacan


6

Benzer şekilde, Mavericks kurduktan sonra bundle update, yerel olarak değil, sadece üretimde kullanılan pg gem'e bir hata atıyordu.

Paketlerimi yönetmek için Brew kullanıyorum ve postgresql zaten kurulmuştu, ama yine de 'no pg_config' hatası alıyordum.

Düzeltme o brew uninstall postgresqlzaman brew install postgresql. Bundan sonra hemen başarılı bir şekilde koşabildim bundle update.


6

Ben "doğru" cevap ilk Postgres.app için PATH doğru aşağıdaki yapılandırmak için ~/.profile( .zshrcveya ~/.zprofileZSH kullanıyorsanız) doğru yapılandırmak olacağını düşünüyorum :

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

Ardından terminalde yeni bir sekme veya pencere açın ve gem'i aşağıdakilerle yükleyin pg:

ARCHFLAGS="-arch x86_64" gem install pg

Burada belgelenmiştir:


5

/ Applications'ta Postgres yüklü OSX'te aşağıdaki komutu çalıştırıyorum ( sürümünüze göre 0.20 ve 9.4'ü değiştirin )

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

Sahip olmalıdır :

Şu şekilde yerel uzantılar oluşturma: '--with-pg-config = / Uygulamalar / Postgres.app / İçindekiler / Sürümler / 9.4 / bin / pg_config' Bu biraz zaman alabilir ... Başarıyla yüklendi pg-0.20.


Argüman gerçekten sunulmadan önce tire 2'yi neden fazladan kullanmamız gerektiğini açıklayabilir misiniz?
Akash Agarwal

3

Bu konuda bir gün geçirdim ve işte bunu nasıl düzelttim:

Build.pg genel değerinin şu şekilde ayarlandığını gördüm: /opt/local/lib/postgresql91/bin/pg_config ve postgres'in kurulduğu yer bu değildi.

Ben inşa bundle config build.pg --with-pg-config=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config postgresql kurulum nerede olduğu için build.pg değerini değiştirerek düzeltildi .


1

Deneyin:

gem install pg -- --with-pg-config=`which pg_config`

0

Çözüldü! Sistemde PostgreSQL için kütüphane eksikliği buldum. Sadece iki adım çözdü:

brew install postgresql

O zaman koş

gem install pg


0

Kullanmak istemeyenler için brew .

  1. İndir PostgreSQLUygulamayı .
  2. Yüklemek için macOS varsayılan talimatını izleyin.
  3. Koşmak tavsiye edilir PostgreSQl .
  4. Çalıştırmak gem install pg -- --with-pg-config= / / yol / postgres / in / senin / uygulamalar / klasör / `
    • Örneğin, makinemde /Applications/Postgres.app/Contents/Versions/12/bin/pg_config
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.