2012-02-10 23 views
59

WhenI chạy (như root)gem install pg --with-pg-config công trình, bó không

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

tôi nhận được kết quả như sau:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config 
Building native extensions. This could take a while... 
Successfully installed pg-0.12.0 
1 gem installed 
Installing ri documentation for pg-0.12.0... 
Installing RDoc documentation for pg-0.12.0... 
#-> 

Khi tôi chạy bó cài đặt:

Installing pg (0.12.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-1.9.2-p290/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. 

Provided configuration options: 
--with-opt-dir 
--with-opt-include 
--without-opt-include=${opt-dir}/include 
--with-opt-lib 
--without-opt-lib=${opt-dir}/lib 
--with-make-prog 
--without-make-prog 
--srcdir=. 
--curdir 
--ruby=/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby 
--with-pg 
--without-pg 
--with-pg-dir 
--without-pg-dir 
--with-pg-include 
--without-pg-include=${pg-dir}/include 
--with-pg-lib 
--without-pg-lib=${pg-dir}/lib 
--with-pg-config 
--without-pg-config 
--with-pg_config 
--without-pg_config 


Gem files will remain installed in /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg- 0.12.0 for inspection. 
Results logged to /var/www/simpletrac/vendor/cache/ruby/1.9.1/gems/pg-0.12.0/ext/gem_make.out 
An error occured while installing pg (0.12.0), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.12.0'` succeeds before bundling. 

Tôi đã cài đặt libpq-fe.h tại /usr/pgsql-9.1/include/libpq-fe.h. Vì vậy, tôi đã thử

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config --with-pg-lib=/usr/pgsql-9.1/include/libpq-fe.h but still no go. 

Mọi trợ giúp sẽ được đánh giá cao.

Ngoài ra, tôi đã cài đặt postgresql91-devel và ruby-devel. Chạy CentOS 6.

Trả lời

148

Bạn đã thử chạy ứng dụng này trước khi chạy bundle install?

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

Xem http://bundler.io/v1.3/bundle_config.html

+8

Bạn là một nhà ảo thuật. Cảm ơn bạn rất nhiều! – YuKagi

+0

Nếu bạn đang sử dụng MacOS + MacPorts, hãy xem bài đăng của Lester để tìm giải pháp. – Matthias

+0

Tôi có lỗi tương tự nhưng tôi đang sử dụng cơ sở dữ liệu mysql. Điều gì sẽ được lệnh pls ?? –

16

Trong trường hợp ai đó sử dụng macports để cài đặt Postgres và đang gặp vấn đề về việc tìm kiếm pg_config của họ, hãy thử này:

bundle config build.pg --with-pg-config=/opt/local/lib/postgresql91/bin/pg_config 

Tôi hy vọng điều này sẽ giúp ai đó tiết kiệm thời gian. Chúc mừng!

+0

Bạn là người bảo vệ cuộc sống !!!! –

+0

Điều này đã sửa nó cho tôi, chúc mừng! – Matthias

4

Bạn có thể gặp lỗi này nếu bạn đã cài đặt pg_config nhưng không nằm trong bất kỳ đường dẫn nào. Bạn có thể thêm nó vào env PATH của bạn trong ~/.bashrc của bạn.

Ví dụ:

export PATH=${PATH}:/usr/pgsql-9.2/bin 
+0

Đây có phải là kết quả của việc cài đặt từ nguồn thay vì trình quản lý gói không? Làm việc cho tôi anyways - Chỉ cần tò mò về lý do tại sao tôi gặp phải vấn đề. – FantasticSponge

3

tôi phải làm điều này để sửa chữa của tôi trên OS X:

export PATH=/opt/local/lib/postgresql84/bin/:$PATH 

Và tôi phải làm điều đó bất chấp thực tế là tôi đã có này trong con đường của tôi:

[[email protected] ~] which psql84 
/opt/local/bin/psql84 

[[email protected] ~] ls -altrh /opt/local/bin/psql84 
lrwxr-xr-x 1 root admin 36B Dec 7 02:15 /opt/local/bin/psql84 -> /opt/local/lib/postgresql84/bin/psql 

Tôi hy vọng rằng sẽ giúp người dùng Mac khác gặp sự cố này.

+0

Điều này làm việc cho tôi, cảm ơn. – holms

+0

Cảm ơn tôi đã thử nghiệm giải pháp này trên Mac Yosemite. – newguy

1

Hãy thử điều này:

yum install libpqxx-devel 

Nó hoạt động với Postgr9.2.

3

Đá quý Postgres không thể tìm thấy tệp cấu hình Postgres. Bạn cần phải nói nó ở đâu. Giải pháp thú vị nhất cho điều này theo ý kiến ​​của tôi là bỏ qua Brew và MacPorts và chỉ sử dụng ứng dụng Postgres.Tải về và cài đặt từ đây:

http://postgresapp.com/

Bây giờ thêm thư mục bin vào đường dẫn của bạn:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

Bạn cũng có thể để thêm video này vào ~/.bash_profile

Bây giờ cài đặt đá quý:

gem install pg 

nó sẽ diễn ra suôn sẻ.

4

Tôi đang trên Mac và tôi sử dụng Homebrew, để khắc phục vấn đề này tôi chỉ cần cài đặt postgresql với brew:

brew install postgresql 

Và sau đó cài đặt các viên ngọc.

2

Tôi đang sử dụng Arch Linux và gặp sự cố tương tự. Sử dụng sudo pacman -S libpqxx và reran sau đó cài đặt đá quý pg và sau đó chạy bundle install một lần nữa, và lần này nó cuối cùng đã làm việc!

+0

Tôi đang sử dụng Arch Linux và điều này đã giải quyết được vấn đề của tôi! –

+0

2016, postgresql 9.5 và pg 0.18.4 dường như không hoạt động với giải pháp được đề cập (tôi cũng đang sử dụng kiến ​​trúc linux). –

1

này link đề nghị sử dụng:

gem install pg --pre 

tôi không thể có được pg gem để cài đặt ngày liền, nhưng phương pháp này cuối cùng làm việc cho tôi. Hy vọng điều này sẽ hữu ích.

9

Nếu bạn không chắc chắn nơi pg_config của bạn, và giả sử bạn đang trên Linux hoặc Mac, bạn có thể chạy lệnh sau:

which pg_config 

này sẽ trở lại ==>/usr/pgsql-9.1/bin/pg_config

hiện nay sử dụng con đường này như

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config 

Done tại bundle install

3

Sao chép & Dán:

bundle config build.pg --with-pg-config=`which pg_config` && bundle 

chi tiết:

Visit để biết thêm thông tin:

Điều đầu tiên bạn nên làm là đảm bảo rằng các công cụ 'pg_config' mà đi kèm với Postgres là trong con đường của bạn. Nếu nó không phải là, hoặc một trong đó là đầu tiên trong con đường của bạn không phải là một trong đó đã được cài đặt với Postgres bạn muốn xây dựng chống lại, bạn có thể chỉ định đường dẫn đến nó với tùy chọn –with-pg-config.

Nguồn:https://github.com/ged/ruby-pg/blob/1f274f68c16f1af1c642db1b9d3d28aef169dc84/ext/extconf.rb#L27

0

Hãy chắc chắn rằng bạn đã cài đặt postgress. nếu không cài đặt nó trước. Sử dụng thiết bị đầu cuối chẳng hạn.

brew install postgresql 

Sau đó chạy

bundle install 
Các vấn đề liên quan