เกิดข้อผิดพลาดขณะติดตั้ง pg (0.17.1) และ Bundler ไม่สามารถดำเนินการต่อได้


87

ฉันเพิ่งติดตั้งRails 4.0.2และเมื่อสร้างแอพใหม่ในขั้นตอนบันเดิลฉันจะได้รับ:

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.

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


1
คุณอาจต้องการเพิ่มแท็ก osx การแก้ปัญหาดูเหมือนว่าอาจเกี่ยวข้องกับระบบปฏิบัติการของคุณโดยเฉพาะ
Vince

คุณอาจต้องการเยี่ยมชม stackoverflow.com/questions/3116015/… . หวังว่าหนึ่งในวิธีแก้ปัญหาเหล่านี้จะช่วยได้
Yana Agun Siswanto

คำตอบ:


144

ฉันใช้ Mac ที่ใช้ Mavericks วิธีการแก้ปัญหาของฉันคือการติดตั้งPostgres

จากนั้นในเทอร์มินัลติดตั้งโดยใช้ homebrew พร้อมการกำหนดค่า:

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

หมายเหตุ: คำตอบนี้ได้รับการแก้ไขให้ใช้latestsymlink ที่รวมอยู่ในแอป Postgres เวอร์ชันจัดส่งแล้ว

รุ่นก่อนหน้าแนะนำ:

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

ใช่ของฉันอยู่ในสถานที่อื่นเช่นกัน ขอบคุณสำหรับคำตอบ.
Deekor

ถูกต้อง Bob รุ่นของ postgresapp ที่ใช้งานได้สำหรับฉันคือเวอร์ชัน 9.2.2.0 ดังนั้นพวกเขาจึงต้องเปลี่ยนตำแหน่งนี้ในรุ่น 9.3
Robertibiris

1
และตอนนี้ในวันที่ 22/15 เรากำลังดูรุ่น 9.4 อยู่เป็นเรื่องดีที่เห็นว่าพวกเขากำลังปรับปรุงอยู่ - "gem install pg - --with-pg-config = / Applications / Postgres app / Contents / Versions / 9.4 / bin / pg_config "
corprew

3
ฉันรีบร้อนและพลาดส่วนของคำตอบนี้ที่ระบุว่า "ติดตั้งโดยใช้เบียร์ที่บ้าน" คำตอบนี้ใช้ได้ผลสำหรับฉันหลังจากที่ฉันทำbrew update; brew install postgres
Dennis

6
ในโซลูชันของคุณโปรดเพิ่มเวอร์ชันอัญมณี PG อื่น ๆ ล่าสุดจะติดตั้ง:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092

183

ข้อผิดพลาดบางประเภทส่งต่อที่นี่การติดตั้งอัญมณี PG บน OS X - ความล้มเหลวในการสร้างส่วนขยายเนทีฟ

ในการติดตั้งการอ้างอิงบน Ubuntu ลองทำสิ่งนี้:

sudo apt-get install libpq-dev

และนี่

gem install pg

6
ฉันใช้ Mac ฉันควรทำอย่างไร
Deekor

1
ทำตามบทแนะนำใน railstutorial.org นี่คือสิ่งที่คุณต้องทำเพื่อมิ้นท์ ขอบคุณ.
Christopher Schneider

railstutorial.org - การสอนแบบชำระเงิน ความคิดอื่น ๆ ?
Terra Ashley

@Deekor หากคุณกำลังใช้ Homebrew คุณสามารถเรียกใช้brew install postgresqlแล้วpgอัญมณีควรต้องติดตั้ง ดูเอกสารเหล่านี้
theblang

21

รากของแอป:

  1. ปรับปรุงการชง
  2. ชงติดตั้ง postgres
  3. การติดตั้ง gem pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. การติดตั้งมัด
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. Launchctl โหลด ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. คราดฐานข้อมูล: สร้าง: ทั้งหมด
  9. คราดฐานข้อมูล: โยกย้าย
  10. ราง s

หมายเหตุ: แทนที่หมายเลขเวอร์ชันในขั้นตอนที่ 3 หากจำเป็น


10

คำตอบก่อนหน้านี้ใช้งานได้กับเวอร์ชันเก่ากว่า

ฉันติดตั้งภายใต้ mac OSX Mavericks โดยมีแอป postgres (เวอร์ชัน 9.2.2.0) จากwww.postgresapp.comติดตั้ง ปัญหาพื้นฐานคือ simpy ตั้งแต่ติดตั้ง postgres ผ่านแอพไฟล์การกำหนดค่าจะอยู่ในตำแหน่งที่ไม่ใช่ค่าเริ่มต้นเมื่อติดตั้งโดยไม่มี postgressapp ดังนั้นเราต้องบอก gem ว่าจะหาไฟล์นี้ได้ที่ไหนโดย:

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

หวังว่าจะช่วยได้


1
นี่คือทางออกของฉัน (OSX)
raulriera

หากสิ่งนี้ไม่ได้ผลกับใครเลยสำหรับ 9.3 ไฟล์กำหนดค่าได้ย้าย - ดูคำตอบที่ยอมรับ
Deekor

5

หาก gem install pg ล้มเหลวให้ลองใช้คำสั่งต่อไปนี้:

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

... จากเอกสาร PostgreSQL.app


2
เนื่องจากแอปอย่างเป็นทางการเพิ่งเปลี่ยนชื่อเป็น "Postgres93.app" คำสั่งควรเป็น: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat

1
สำหรับฉันมันใช้ได้กับ: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl

4

ดูเหมือนว่าคุณไม่ได้ติดตั้ง PostgreSQL pgอัญมณีต้องใช้ส่วนหัวจาก PostgreSQL ขยายพื้นเมืองรวบรวม


การตั้งค่า Ruby / Bundler ของคุณเป็นอย่างไร? คุณใช้ Mac OS X หรือ Linux? และถ้าคุณใช้ Mac OS X คุณติดตั้ง PostgreSQL ผ่านhomebrewหรือ PostgreSQL.app?
tungd

ฉันใช้ Mac ฉันติดตั้งผ่านแอพ
Deekor

ฉันติดตั้ง 0.17.0 แล้ว อันตรายในการใช้กับราง 4 หรือไม่?
Deekor

จากนั้นลองรันbundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configแล้วรันbundleอีกครั้ง ปรับเส้นทางการกำหนดค่าหากคุณติดตั้งแอป~/Applicationเป็นมากกว่า/Application
tungd


3

หากคุณใช้สิ่งอื่นที่ไม่ใช่ Postgres ในการพัฒนาและ Postgres ในการผลิตเท่านั้นคุณสามารถเพิ่มอัญมณี pg ลงใน gemfile ของคุณได้เช่นนั้น ...

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

จากนั้นใช้ bundle install --without production



1

ฉันเพิ่งตั้งค่า Macbook Pro เครื่องใหม่ซึ่งสร้างมาพร้อมกับ Catalina

อะไรที่เหมาะกับฉัน:

  1. ติดตั้ง Postgres จากที่นี่: https://postgresapp.com/
  2. เพิ่มexport PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"ลงในของคุณ.zshenvเนื่องจาก Z shell เป็นเทอร์มินัลเริ่มต้นแล้ว

0

หลังจากติดตั้ง Postgres ฉันต้องรันคำสั่งต่อไปนี้

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

หลังจากการติดตั้งชุดนี้ใช้งานได้ดี!

หวังว่าจะช่วยได้


0

วิธีที่ฉันจัดการเพื่อให้พ้นข้อผิดพลาดนั้นคือ:

  • cd ไปยังโฟลเดอร์แอพแล้วตั้งค่าเวอร์ชันทับทิมในเครื่อง ฉันใช้ทับทิม 2.1.2

rbenv ท้องถิ่น 2.1.2.2

  • แทนที่จะเรียกใช้การติดตั้งบันเดิลให้ติดตั้งอัญมณีในผู้ขาย / กลุ่ม

การติดตั้งมัด - ผู้ขายทาง / กลุ่ม

สิ่งนี้ทำเพื่อฉัน



0

ฉันมีปัญหากับ Amazon และไม่สามารถใช้ apt-get ได้ สำหรับงานของฉัน:

    sudo yum install postgresql-devel

แล้ว:

    bundle install

แล้วลองอีกครั้ง:

    rails serve

0

หากคุณติดตั้งผ่าน Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. ทำงานร่วมกับ Ruby 2.4.6 และ pg 0.20.0


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.