Đã xảy ra lỗi khi cài đặt pg (0.17.1) và Bundler không thể tiếp tục


87

Tôi vừa cài đặt Rails 4.0.2và khi tạo một ứng dụng mới, trong giai đoạn gói, tôi nhận được:

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.

Làm cách nào để sửa lỗi này?


1
Bạn có thể muốn thêm một thẻ osx. Giải pháp dường như có thể liên quan cụ thể đến hệ điều hành của bạn.
Vince

Bạn có thể muốn đến thăm. stackoverflow.com/questions/3116015/… . Hy vọng là một trong những giải pháp giúp đỡ
Yana Agun Siswanto

Câu trả lời:


144

Tôi đang sử dụng máy Mac chạy Mavericks. Giải pháp của tôi là cài đặt Postgres .

Và sau đó trong phần cài đặt thiết bị đầu cuối bằng homebrew với cấu hình:

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

Lưu ý: Câu trả lời này đã được chỉnh sửa để sử dụng latestliên kết biểu tượng hiện có trong các phiên bản vận chuyển của ứng dụng Postgres.

Các phiên bản trước được đề xuất:

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

Đúng là mỏ của tôi cũng ở một địa điểm khác. Cảm ơn vì câu trả lời.
Deekor

Bob đúng, phiên bản postgresapp mà điều này làm việc cho tôi, là Phiên bản 9.2.2.0, vì vậy họ phải thay đổi vị trí này trên bản phát hành 9.3.
Robertibiris

1
Và bây giờ, kể từ 1/22/15, chúng tôi đang xem xét bản phát hành 9.4, thật tốt khi thấy họ đang cập nhật nó - "gem install pg - --with-pg-config = / Applications / Postgres. ứng dụng / Nội dung / Phiên bản / 9.4 / bin / pg_config "
corprew

3
Tôi đã vội vàng và bỏ lỡ phần của câu trả lời có nội dung "cài đặt bằng cách sử dụng home-brew". Câu trả lời này đã làm việc cho tôi sau khi tôi đã làmbrew update; brew install postgres
Dennis

6
Trong giải pháp của bạn, xin vui lòng thêm phiên bản, khác với đá quý PG mới nhất sẽ cài đặt:gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
user1322092

182

Một số loại lỗi được giải quyết tại đây Cài đặt PG gem trên OS X - không thể tạo tiện ích mở rộng gốc

Để cài đặt các phụ thuộc trên Ubuntu, hãy thử cách này:

sudo apt-get install libpq-dev

và điều này

gem install pg

5
Tôi đang sử dụng máy Mac, tôi phải làm gì?
Deekor

1
Theo hướng dẫn trên railstutorial.org. Đây là những gì bạn cần làm cho Mint. Cảm ơn.
Christopher Schneider

railstutorial.org - hướng dẫn trả phí; bất kỳ ý tưởng nào khác?
Terra Ashley

21

gốc ứng dụng:

  1. cập nhật bia
  2. pha cài đặt postgres
  3. gem install pg - --with-pg-config = / usr / local / Cellar / postgresql / 9.3.4 / bin / pg_config
  4. gói cài đặt
  5. ln -sfv /usr/local/opt/postgresql/*.plist ~ / Library / LaunchAgents
  6. khởi chạyctl tải ~ / Library / LaunchAgents / homebrew.mxcl.postgresql.plist
  7. createuser -s -r postgres
  8. rake db: create: all
  9. rake db: di cư
  10. đường ray s

LƯU Ý: thay thế số phiên bản trong bước 3 nếu cần.


10

Câu trả lời hoạt động trước đây với phiên bản cũ hơn

Tôi đã cài đặt trên mac OSX Mavericks, có ứng dụng postgres (Phiên bản 9.2.2.0) từ www.postgresapp.com được cài đặt. Vấn đề cơ bản rất đơn giản là vì postgres được cài đặt thông qua ứng dụng, nên tệp cấu hình nằm trên một vị trí không phải là vị trí mặc định khi cài đặt nó mà không có ứng dụng hậu kỳ. vì vậy chúng tôi cần cho gem biết nơi tìm tệp này bằng cách:

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

Hy vọng nó giúp


1
Đây là giải pháp của tôi (OSX)
raulriera

Nếu điều này không hiệu quả với bất kỳ ai, đối với 9.3 tệp cấu hình đã được di chuyển - hãy xem câu trả lời được chấp nhận.
Deekor

5

Nếu gem cài đặt pg không thành công, hãy thử lệnh sau:

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

... từ Tài liệu PostgreSQL.app


2
Kể từ khi ứng dụng chính thức gần đây đã thay đổi tên để "Postgres93.app", lệnh nên là: env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Blackcoat

1
đối với tôi nó hoạt động với: env ARCHFLAGS="-arch x86_64" gem install pg
dnlcrl

4

Có vẻ như bạn chưa cài đặt PostgreSQL. Các pgđá quý đòi hỏi một số tiêu đề từ PostgreSQL để biên dịch mở rộng bản địa.


Làm thế nào về thiết lập Ruby / Bundler của bạn? Bạn đang sử dụng Mac OS X hay Linux? và nếu bạn đang sử dụng Mac OS X, bạn đã cài đặt PostgreSQL qua homebrewhay PostgreSQL.app?
tungd 24/1213

Tôi trên máy mac. Tôi đã cài đặt qua ứng dụng
Deekor

Tôi đã cài đặt 0.17.0. Bất kỳ tác hại nào khi sử dụng nó với đường ray 4?
Deekor

Sau đó thử chạy bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_configvà chạy bundlelại. Điều chỉnh con đường cấu hình nếu bạn cài đặt ứng dụng ~/Applicationchứ không phải là/Application
tungd

3

Tôi đã phải kết hợp mọi thứ và sử dụng

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

3

Nếu bạn đang sử dụng thứ gì đó khác ngoài Postgres trong phát triển và chỉ Postgres trong sản xuất, bạn có thể thêm pg gem vào tệp gem của mình như vậy ...

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

Sau đó sử dụng bundle install --without production


3

Đối với người dùng CentOS:

sudo yum install postgresql-devel

gem install pg

1

Tôi vừa thiết lập một Macbook Pro mới được tạo sẵn với Catalina.

Điều gì đã làm việc cho tôi:

  1. Cài đặt Postgres từ đây: https://postgresapp.com/
  2. Thêm export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"vào của bạn .zshenv, vì Z shell bây giờ là thiết bị đầu cuối mặc định.

0

Sau khi cài đặt Postgres, tôi phải chạy lệnh sau

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

Sau khi cài đặt gói này hoạt động tuyệt vời!

Hy vọng nó giúp


0

Cách tôi quản lý để vượt qua lỗi đó là:

  • cd vào thư mục ứng dụng và sau đó đặt phiên bản ruby ​​cục bộ. Tôi đang sử dụng ruby ​​2.1.2.

rbenv cục bộ 2.1.2

  • thay vì chỉ chạy cài đặt gói, hãy cài đặt đá quý trong nhà cung cấp / gói

gói cài đặt - nhà cung cấp đường dẫn / gói

Điều này đã làm điều đó cho tôi.


0

Tôi cần sử dụng sudo

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

0

Tôi đang gặp sự cố với Amazon và không thể sử dụng apt-get. Đối với công việc của tôi:

    sudo yum install postgresql-devel

sau đó:

    bundle install

và thử lại:

    rails serve

0

Nếu bạn đã cài đặt thông qua Homebrew; gem install pg -- --with-pg-config=/usr/local/bin/pg_config. Hoạt động với Ruby 2.4.6 và pg 0.20.0.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.