การติดตั้ง PG gem บน OS X - ความล้มเหลวในการสร้างส่วนขยายดั้งเดิม


183

ดูเหมือนว่าคนอื่น ๆ มีปัญหาในการติดตั้ง pg gem ไม่มีวิธีแก้ปัญหาสำหรับคนอื่น ๆ ที่ได้ผลสำหรับฉัน

ฉันได้ลองติดตั้ง pg gem และ postgres.app แล้ว pg gem จะไม่ติดตั้ง ข้อผิดพลาดแรกที่ฉันได้รับคือ:

เกิดข้อผิดพลาดขณะติดตั้ง pg (0.17.0) และ Bundler ไม่สามารถดำเนินการต่อได้ ตรวจสอบให้แน่ใจว่าgem install pg -v '0.17.0'สำเร็จก่อนรวมกลุ่ม

คำแนะนำในการติดตั้งเกี่ยวกับการติดตั้ง gem ของฉันไปที่การกำหนดค่าสำหรับ pg ล้มเหลวด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้ (ซึ่งคนอื่น ๆ ในฟอรัมนี้พบ):

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

ฉันไม่รู้วิธีค้นหาหรือเข้าถึงไฟล์บันทึกนี้เพื่อค้นหาเบาะแสเพิ่มเติม

ฉันยังได้รับข้อความแสดงข้อผิดพลาด (ไม่พบคำสั่ง) เมื่อฉันลองใช้คำสั่ง sudo apt-get install ฉัน scoured ฟอรั่มนี้ในช่วง 6 ชั่วโมงที่ผ่านมาลองคำแนะนำแต่ละชิ้นเพื่อให้ pg ทำงานกับโปรเจคของฉัน

ฉันไม่สามารถหาคำแนะนำเกี่ยวกับวิธีการเปลี่ยนเส้นทางหรือเฉพาะสิ่งที่จำเป็นต้องมีการเปลี่ยนแปลง ฉันwhich pg_configคืนค่าแหล่งไฟล์ ฉันใช้สิ่งนั้นพร้อมกับคำสั่งในการติดตั้ง pg โดยใช้ config นั้น มันล้มเหลว

มีคนมากมายที่มีปัญหากับเรื่องนี้ คำตอบมากมายแนะนำโฮมบรูว์ ฉันต้องลบมันทิ้งเพราะมันทำให้เกิดปัญหาอื่นขึ้น


1
เฮ้คำถามสองสามข้อที่จะช่วยคุณ: - คุณใช้ Mac ใช่ไหม? ถูกต้องไปกับ homebrew? (ps ตามที่คุณระบุ apt-get เป็นเพียงสำหรับ Ubuntu (และลูกพี่ลูกน้อง Debian)) - คุณมีรุ่น postgres รุ่นใด ลองใช้psql -vในเปลือกของคุณ - คุณใช้ทับทิมรุ่นไหน? ดูเหมือน 1.9.3 แต่มีอะไรruby -vให้คุณ
rmosolgo

ฉันควรเพิ่มว่า psql ของฉันถูกเพิ่มใน: /Applications/Postgres-1.app/Contents/MacOS/bin/psql; ออกจาก; psql (9.3.0) แต่ psql คืนค่าใด: usr / bin / psql
Mel

สวัสดีขอบคุณมากสำหรับการดูที่นี้ psql ของฉันคือ v 9.3.0 และ ruby ​​คือ v 1.9.3
Mel

1
ดูคำตอบของ @ paninapress สำหรับ Postgres.app มันใช้งานได้ดีสำหรับฉันและไม่ต้องการติดตั้งอินสแตนซ์อื่นของ Postgres
Jamon Holmgren

คำตอบ:


442

ข้อผิดพลาดเดียวกันสำหรับฉันและฉันไม่พบจนกระทั่งฉันดาวน์โหลด OS X 10.9 (Mavericks) ถอนหายใจปวดหัวอัพเกรดระบบปฏิบัติการอื่น

นี่คือวิธีที่ฉันแก้ไข (กับ homebrew):

  • ติดตั้งบิลด์เครื่องมือ Xcode อื่น (การพิมพ์brew updateในเทอร์มินัลจะแจ้งให้คุณอัปเดตเครื่องมือสร้าง Xcode)
  • brew update
  • brew install postgresql

หลังจากนั้นgem install pgก็ใช้ได้สำหรับฉัน


7
หลังจากอาการปวดหัวสองวันพยายามแก้ไข Rails ของฉันหลังจากการอัพเกรด Mavericks นี่เป็นการแก้ไขสำหรับฉันขอบคุณมาก
เดโบราห์

4
สิ่งนี้ใช้ได้สำหรับฉันเช่นกัน - ในการติดตั้ง Mavericks ใหม่ ขอบคุณ!
marcamillion

1
ขอบคุณที่ช่วยสติของฉัน!
Jim

1
ยังทำงานอยู่. โปรเจคนี้ใช้ Ruby 2.2.0 เพื่อสนับสนุนแอปเก่า แต่ทั้งหมดเดียวกันขอบคุณ
TristanZimmerman

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

223

หากคุณใช้ Ubuntu ให้ลองติดตั้งไฟล์ lib ต่อไปนี้

sudo apt-get install libpq-dev

แล้ว

gem install pg

ทำงานให้ฉัน


4
ทำงานให้ฉันด้วย กำลังใช้ Ubuntu 13.10
rafaelkin

4
เพียงให้แน่ใจว่าคุณพิมพ์อย่างถูกต้อง มันไม่ได้libpg-dev; มันไม่ใช่ Q! ฉันใช้เวลา 10 นาทีในการหาทางออกที่ยากลำบาก
tir38

1
สำหรับ Amazon Linux มันyum install postgres-devel
andrewtweber

1
ทำงานให้ฉันใน Ubuntu 14 !!
18bytes

6
สำหรับ CentOSyum install postgresql-devel
septerr

49

ฉันใช้ OS X Mavericks (เวอร์ชั่น 10.9)

และเมื่อฉันเรียกใช้ข้างต้นฉันได้รับข้อความต่อไปนี้: ถ้า builds ของ PostgreSQL 9 ล้มเหลวและคุณติดตั้งเวอร์ชัน 8.x แล้ว

ดังนั้นฉันเรียกใช้คำสั่งต่อไปนี้:

ARCHFLAGS="-arch x86_64" gem install pg

และสิ่งนี้ใช้ได้กับฉันฉันหวังว่านี่จะช่วยให้ใครบางคน :)


2
+1 ฉันลองใช้คนอื่น แต่ในที่สุดฉันก็ติดตั้ง pg โดยอัญมณีด้วยวิธีนี้
BMW

1
+1 เช่นเดียวกันนี่เป็นวิธีแก้ปัญหาสำหรับฉันเช่นกันที่ postgresql ของฉันถูกติดตั้งแล้วผ่านทาง Brew ขอบคุณจอนสำหรับโพสต์
Jason Hoekstra

5
nb หากการติดตั้งในฐานะรูท (ไม่ว่าด้วยเหตุผลใดก็ตาม) sudo จะดำเนินการก่อนตัวแปร:sudo ARCHFLAGS="-arch x86_64" gem install pg
Noach Magedman

อันที่จริงผมต้องนี้ทุกครั้งที่ผมทำงานbundle installดังนั้นฉันได้ใส่ไว้ใน~/.bash_profileขณะที่การส่งออก :)
แจ็ค

42

ตกลงฉันยังมีปัญหานี้ (psql คือ v 9.3.0 และ ruby ​​คือ v 2.1.2) และวิธีแก้ปัญหาที่ใช้งานได้สำหรับฉันคือการตั้งค่าการตั้งค่าการกำหนดค่าบันเดิลก่อน:

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

ในที่สุดคำตอบนี้ช่วยฉันในการค้นหา: https://stackoverflow.com/a/9235107/3546680


6
วิธีนี้เป็นวิธีที่แนะนำหากคุณใช้ postgres.app ใช้ Homebrew อาจแก้ไขปัญหาของส่วนขยายดั้งเดิม แต่มีสองโปรแกรม Postgres จะสร้างความขัดแย้ง (เช่นการจัดสรรพอร์ต) ดูเพิ่มเติมคำตอบ Sayanees' ที่stackoverflow.com/questions/19569031/...
Epigene

4
นี่คือคำตอบที่ถูกต้องสำหรับ Postgres.app
Jamon Holmgren

ใช้งานได้ดีกับ Mojave ลองได้สำเร็จไม่กี่นาทีที่ผ่านมา
microspino

23

ฉันลองทุกอย่างเป็นเวลาหลายชั่วโมง แต่ในที่สุดต่อไปนี้ก็แก้ไขได้ (ฉันใช้ OS X 10.9.4):

  1. ติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode (ไซต์ Apple Developer)
  2. ชงถอนการติดตั้ง postgresql
  3. ชงติดตั้ง postgresql
  4. ARCHFLAGS = "- arch x86_64" gem ติดตั้ง pg

ขอบคุณ. ฉันใช้ sudo สำหรับขั้นตอนที่ 4 นั่นเป็นสิ่งที่ไม่ดีหรือไม่? ฉันจะหลีกเลี่ยงได้อย่างไร
Roy

@Roy - ดีใจที่ได้ช่วย :) - น่าจะดีบางทีคุณอาจต้องการหลีกเลี่ยงการใช้ sudo เพราะฉันเชื่อว่ามันจะติดตั้งให้กับผู้ใช้ทุกคน แต่ถ้าคุณเป็นผู้ใช้เพียงคนเดียวในระบบ .
Ali Yazdani

brew uninstall postgresqlและbrew install postgresqlไม่ใช่ขั้นตอนที่จำเป็นใน OS X 10.10 และ 10.11 เพียงgem uninstall pg(และลบทุกรุ่น) จากนั้นให้แน่ใจว่าคุณbundleหรือgem install pgอีกครั้งและส่วนขยายเนทีฟจะถูกสร้างใหม่ด้วยเครื่องมือบรรทัดคำสั่งใหม่สำหรับเวอร์ชัน OS X นี้
Olivier Lacan


6

ในทำนองเดียวกันหลังจากการติดตั้ง Mavericks bundle updateได้โยนข้อผิดพลาดใน pg gem ซึ่งใช้เฉพาะในการผลิตและไม่ได้อยู่ในพื้นที่

ฉันใช้ Brew เพื่อจัดการแพ็คเกจและติดตั้ง postgresql แล้ว แต่ฉันยังได้รับข้อผิดพลาด 'no pg_config'

การแก้ไขเป็นเพียงแค่นั้นbrew uninstall postgresql หลังจากนั้นผมก็ทันทีสามารถที่จะทำงานได้สำเร็จbrew install postgresqlbundle update


6

ฉันเชื่อว่าคำตอบที่ "ถูกต้อง" คือการกำหนดค่า PATH อย่างถูกต้องสำหรับ Postgres.app โดยเพิ่มสิ่งต่อไปนี้~/.profile( .zshrcหรือ~/.zprofileถ้าใช้ ZSH):

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

จากนั้นเปิดแท็บหรือหน้าต่างใหม่ในเทอร์มินัลแล้วติดตั้งpgอัญมณีด้วย:

ARCHFLAGS="-arch x86_64" gem install pg

เอกสารที่นี่:


5

บน OSX ที่ติดตั้ง Postgres ไว้ใน / Applications ฉันเพียงแค่เรียกใช้คำสั่งต่อไปนี้ (เปลี่ยน0.20 & 9.4ตามรุ่นของคุณ)

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

คุณควรจะมี :

สร้างส่วนขยายเนทีฟด้วย: '- with-pg-config = / Applications / Postgres.app / เนื้อหา / รุ่น / 9.4 / bin / pg_config' อาจใช้เวลาสักครู่ ... ติดตั้งสำเร็จ pg-0.20


คุณช่วยอธิบายได้ไหมว่าทำไมเราต้องใช้ยัติภังค์ 2 ช่วงต่อเวลาก่อนที่จะมีการโต้แย้งจริง ๆ ?
Akash Agarwal

3

ฉันใช้เวลาหนึ่งวันกับสิ่งนี้และนี่คือวิธีที่ฉันได้รับการแก้ไข:

ฉันพบว่าค่าโกลบอลของ build.pg ถูกตั้งค่าเป็น: /opt/local/lib/postgresql91/bin/pg_config และนั่นไม่ใช่ตำแหน่งที่ติดตั้ง postgres

ฉันแก้ไขด้วยการแทนที่ค่าของ build.pg เป็น: bundle config build.pg --with-pg-config=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config ซึ่งเป็นตำแหน่งที่การติดตั้ง postgresql ของฉันคือ



0

แก้ไข! ฉันพบว่าไม่มีห้องสมุดสำหรับ PostgreSQL ในระบบ เพียงสองขั้นตอนแก้ไขมัน:

brew install postgresql

จากนั้นเรียกใช้

gem install pg


0

brewสำหรับผู้ที่ไม่ได้สนใจกับการใช้งาน

  1. ดาวน์โหลด PostgreSQLใบสมัคร
  2. ทำตามคำแนะนำเริ่มต้นของ macOS เพื่อติดตั้ง
  3. PostgreSQlจะแนะนำให้เรียกใช้
  4. Run gem install pg -- --with-pg-config=/ path / to / postgress / in / your / applications / folder / `
    • ตัวอย่างเช่นในเครื่องของฉันมันเป็น /Applications/Postgres.app/Contents/Versions/12/bin/pg_config
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.