Почему пакетная установка не позволяет полностью установить pg gem? - PullRequest
4 голосов
/ 29 августа 2011

Я установил pg gem, как показано, но ...

Building native extensions.  This could take a while...
    Successfully installed pg-0.11.0
    ERROR:  Could not find a valid gem '—' (>= 0) in any repository
    ERROR:  Could not find a valid gem '–with-pg-config=/usr/local/pg/bin/pg_config' (>= 0) in any repository
    1 gem installed
    Installing ri documentation for pg-0.11.0...
    Installing RDoc documentation for pg-0.11.0...

Что-то странное происходит, когда я комплектую установку, и она не установит полностью pg gem:

Fetching source index for http://rubygems.org/
Using rake (0.9.2) 
Using abstract (1.0.0) 
Using activesupport (3.0.10) 
Using builder (2.1.2) 
Using i18n (0.5.0) 
Using activemodel (3.0.10) 
Using erubis (2.6.6) 
Using rack (1.2.3) 
Using rack-mount (0.6.14) 
Using rack-test (0.5.7) 
Using tzinfo (0.3.29) 
Using actionpack (3.0.10) 
Using mime-types (1.16) 
Using polyglot (0.3.2) 
Using treetop (1.4.10) 
Using mail (2.2.19) 
Using actionmailer (3.0.10) 
Using arel (2.0.10) 
Using activerecord (3.0.10) 
Using activeresource (3.0.10) 
Using annotate (2.4.0) 
Using bundler (1.0.18) 
Using diff-lcs (1.1.2) 
Using factory_girl (1.3.3) 
Using rdoc (3.9.3) 
Using thor (0.14.6) 
Using railties (3.0.10) 
Using rails (3.0.10) 
Using factory_girl_rails (1.0) 
Using faker (0.3.1) 
Using gravatar_image_tag (1.0.0.pre2) 
Using nokogiri (1.5.0) 
Installing pg (0.11.0) with native extensions /Users/******/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

Затем я получаю строки, которые говорят мне, что мне может не хватать необходимых библиотек или заголовков:

   *** 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
    --without-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=/Users/TonyNg/.rvm/rubies/ruby-1.9.2-p180/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
extconf.rb:24:in ``': No such file or directory - /users/****/

Вот мой драгоценный файл:

  source 'http://rubygems.org'

gem 'rails', '3.0.10'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'pg'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'



group :development do
  gem 'rspec-rails', '2.6.1'
  gem 'annotate', '2.4.0'
  gem 'faker', '0.3.1'
end

group :test do
  gem 'rspec-rails', '2.6.1'
  gem 'webrat', '0.7.1'
  gem 'spork', '0.9.0.rc8'
  gem 'factory_girl_rails', '1.0'
end

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end

Как мне решить эту проблему? Заранее спасибо.

EDIT Ответ: хитрость заключалась в том, чтобы установить гем pg по правильному пути к pg_config, тогда как раньше он не был полностью установлен. Я запустил 'gem install pg - --with-pg-config = / opt / local / lib / postgresql84 / bin / pg_config' для пути, который я указал в своем последнем комментарии. Мне просто нужно было найти свой файл pg_config и запустить установку gem под этим.

Ответы [ 5 ]

17 голосов
/ 14 марта 2012

Вам необходимо установить libpq-dev до

4 голосов
/ 30 августа 2011

Хитрость заключалась в том, чтобы установить гем pg по правильному пути к pg_config, тогда как раньше он не был полностью установлен. Я запустил gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config после обнаружения файла pec_config exec. Мне просто нужно было найти свой файл pg_config и запустить gem install по этому пути.

3 голосов
/ 10 июня 2018

в Ubuntu 18.04, нужно запустить sudo apt install libpq-dev

2 голосов
/ 12 февраля 2012

Для Windows и начиная с версии 0.13.0 гема pg вы должны иметь возможность установить его, используя что-то вроде следующего:

subst X: "C:\Program Files\PostgreSQL\9.0"
gem install pg -- --with-pg=X:
subst X: /D

Тогда вы можете успешно запустить bundle install и увидеть следующую строку в выводе:

Using pg (0.13.0)

вместо ошибок.

[Это тот же ответ, что и этот ответ на соответствующий вопрос Невозможно установить pg gem в Windows .]

1 голос
/ 08 ноября 2018

В Ubuntu 18.04 выполните следующую команду

sudo apt update
sudo apt install libpq-dev
...