我对ruby相当新,在浏览railstutorial.org时遇到了一个问题。当我尝试使用'捆绑安装捆绑安装我的ruby应用程序 - 没有生产'时,我得到:
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.11
Using minitest 4.7.5
Using multi_json 1.10.1
Using thread_safe 0.3.4
Using tzinfo 0.3.41
Using activesupport 4.0.8
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.0.8
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.0.8
Using activemodel 4.0.8
Using activerecord-deprecated_finders 1.0.3
Using arel 4.0.2
Using activerecord 4.0.8
Using bundler 1.7.3
Using mini_portile 0.6.0
Using nokogiri 1.6.3.1
Using xpath 2.0.0
Using capybara 2.1.0
Using ffi 1.9.6
Using childprocess 0.5.5
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.0.8
Using coffee-rails 4.0.1
Using diff-lcs 1.2.5
Using hike 1.2.3
Using jbuilder 1.0.2
Using jquery-rails 3.0.4
Using json 1.8.1
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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=/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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}/
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /Users/bryansaxon/.rvm/gems/ruby-2.0.0-
p576@railstutorial_rails_4_0/gems/pg-0.15.1 for inspection.
Results logged to /Users/bryansaxon/.rvm/gems/ruby-2.0.0-p576@railstutorial_rails_4_0/gems/pg-
0.15.1/ext/gem_make.out
An error occurred while installing pg (0.15.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.15.1'` succeeds before bundling.
然后,当我尝试安装pg -v' 0.15.1''时,我得到:
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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=/Users/bryansaxon/.rvm/rubies/ruby-2.0.0-p576/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}/
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /Users/bryansaxon/.rvm/gems/ruby-2.0.0-
p576@railstutorial_rails_4_0/gems/pg-0.15.1 for inspection.
Results logged to /Users/bryansaxon/.rvm/gems/ruby-2.0.0-p576@railstutorial_rails_4_0/gems/pg-
0.15.1/ext/gem_make.out
然后我尝试安装' gem install pg -v' 0.15.1' --with-pg_config'得到了:
ERROR: While executing gem ... (OptionParser::InvalidOption)
invalid option: --with-pg_config
现在我陷入困境,不知道如何解决这个问题。通过其他帖子尝试了许多方法,但是似乎没有任何效果。任何帮助将非常感激!我在运行Yosemite的Mac上。
这是我的Gemfile:
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.8'
gem 'pg', '0.15.1'
group :development, :test do
gem 'rspec-rails', '2.13.1'
end
group :test do
gem 'selenium-webdriver', '2.35.1'
gem 'capybara', '2.1.0'
end
gem 'sass-rails', '4.0.3'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'rails_12factor', '0.0.2'
end
答案 0 :(得分:1)
由于gem 'pg', '0.15.1'
不在group :production
,因此即使您使用--without production
选项运行它,也请尝试安装它。因此,您有两个选择:
gem "pg"
移至生产组,并在开发中使用不同的数据库。例如 - gem "sqlite3"
答案 1 :(得分:0)
尝试使用'>=0.15.1'
代替'0.15.1'
。
答案 2 :(得分:0)
另一种解决方法是:
sudo apt install postgresql-contrib libpq-dev
通过安装此依赖项,您将能够捆绑您的应用程序。 PostgreSQL 也应该安装在机器上。如果您还没有这样做:
apt update
apt full-upgrade
apt install postgresql postgresql-client
如果防火墙禁止访问端口 5432,PostgreSQL 将无法正常运行。
apt install ufw
如果你是远程...允许 22 这样你就不会被注销。
ufw allow 22
ufw allow 5432
ufw enable