2016-03-23 64 views
0

我在aws上使用ec2並試圖部署我的rails應用程序。我成功git克隆我的應用程序到我的ec2用戶,然後嘗試捆綁安裝,但沒有工作,因爲寶石頁。我不知道爲什麼我不能安裝捆綁軟件。我嘗試了幾種堆棧溢出的解決方案,但沒有任何工作。需要你的幫助。我不能做捆綁安裝,因爲寶石pg(0.18.4)

Fetching gem metadata from https://rubygems.org/........... 
Fetching version metadata from https://rubygems.org/... 
Fetching dependency metadata from https://rubygems.org/.. 
Rubygems 2.0.14.1 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation. 
Using rake 11.1.1 
Using i18n 0.7.0 
Using json 1.8.3 
Using minitest 5.8.4 
Using thread_safe 0.3.5 
Using builder 3.2.2 
Using erubis 2.7.0 
Using mini_portile2 2.0.0 
Using rack 1.6.4 
Using mime-types 2.99.1 
Using arel 6.0.3 
Using execjs 2.6.0 
Using debug_inspector 0.0.2 
Using sass 3.4.21 
Using byebug 8.2.2 
Using net-ssh 3.1.0 
Using coffee-script-source 1.10.0 
Using thor 0.19.1 
Using concurrent-ruby 1.0.1 
Using multi_json 1.11.2 
Installing pg 0.18.4 with native extensions 

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/bin/ruby2.0 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 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib64 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/bin/ruby2.0 
    --with-pg 
    --without-pg 
    --enable-windows-cross 
    --disable-windows-cross 
    --with-pg-config 
    --without-pg-config 
    --with-pg_config 
    --without-pg_config 
    --with-pg-dir 
    --without-pg-dir 
    --with-pg-include 
    --without-pg-include=${pg-dir}/include 
    --with-pg-lib 
    --without-pg-lib=${pg-dir}/ 


Gem files will remain installed in /home/ec2-user/.gem/ruby/2.0/gems/pg-0.18.4 for inspection. 
Results logged to /home/ec2-user/.gem/ruby/2.0/gems/pg-0.18.4/ext/gem_make.out 
Using bundler 1.11.2 
Using tilt 2.0.2 
Using spring 1.6.4 
Installing sqlite3 1.3.11 with native extensions 

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/bin/ruby2.0 extconf.rb 
checking for sqlite3.h... no 
sqlite3.h is missing. Try 'port install sqlite3 +universal', 
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev' 
and check your shared library search path (the 
location where your sqlite3 shared library is located). 
*** 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}/lib64 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/bin/ruby2.0 
    --with-sqlite3-dir 
    --without-sqlite3-dir 
    --with-sqlite3-include 
    --without-sqlite3-include=${sqlite3-dir}/include 
    --with-sqlite3-lib 
    --without-sqlite3-lib=${sqlite3-dir}/ 


Gem files will remain installed in /home/ec2-user/.gem/ruby/2.0/gems/sqlite3-1.3.11 for inspection. 
Results logged to /home/ec2-user/.gem/ruby/2.0/gems/sqlite3-1.3.11/ext/sqlite3/gem_make.out 
Using rdoc 4.2.2 
Using tzinfo 1.2.2 
Using nokogiri 1.6.7.2 
Using rack-test 0.6.3 
Using mail 2.6.3 
Using autoprefixer-rails 6.3.3.1 
Using uglifier 2.7.2 
Using binding_of_caller 0.7.2 
Using net-scp 1.2.1 
Using coffee-script 2.4.1 
Using sprockets 3.5.2 
An error occurred while installing pg (0.18.4), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.18.4'` succeeds before bundling. 

和我的寶石文件低於

source 'https://rubygems.org' 

ruby '2.0.0' 
gem 'rails_12factor', group: :production 
gem 'bootstrap-sass' 
gem 'rails', '4.2.5.1' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0', group: :doc 
gem 'capistrano', '~> 3.4.0' 

group :development, :test do 
    gem 'sqlite3' 
end 

group :development, :test do 
    gem 'pg' 
end 


group :development, :test do 
    gem 'byebug' 
end 

group :development do 

    gem 'web-console', '~> 2.0' 

    gem 'spring' 
end 

回答

1

的錯誤是在堆棧跟蹤可見:

Can't find the 'libpq-fe.h header 

你沒有libpq的頭,爲建設PG適配器所需。確保你安裝了PostgreSQL和dev依賴項(libpq-dev包)。

此外,您需要清理您的Gemfile。你有3個等價的group :development, :test do聲明。

另外,你可以在同一個envs中導入Sqlite3和PG gems。做出關於你的數據庫的決定,並且只使用其中的一個。

最後但並非最不重要的是,您沒有爲生產聲明數據庫,因此您的生產部署將失敗。

+0

所以我應該怎麼辦明確? – hujihuji

0

在Linux上,只需確保安裝這兩個

sudo apt-get install postgresql 
sudo apt-get install pgadmin3 
bundle install