2015-07-05 94 views
0

我新的Rails和Heroku的 我嘗試下面的代碼我的應用程序推送到Heroku的錯誤,而應用程序部署軌的Heroku

rails new snippets 
    cd snippets 
    git init 
    git add . 
    git commit -m "initial commit" 
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh 
    heroku create 
    git push heroku master 

,但我得到以下錯誤

An error occurred while installing sqlite3 (1.3.10), and Bundler cannot 

    remote:  continue. 
    remote:  Make sure that `gem install sqlite3 -v '1.3.10'` succeeds before bundling. 
    remote: ! 
    remote: !  Failed to install gems via Bundler. 
    remote: !  
    remote: !  Detected sqlite3 gem which is not supported on Heroku. 
    remote: !  https://devcenter.heroku.com/articles/sqlite3 
    remote: ! 
    remote: 
    remote: !  Push rejected, failed to compile Ruby app 
    remote: 
    remote: Verifying deploy.... 
    remote: 
    remote: ! Push rejected to powerful-waters-8202. 
    remote: 
    To https://git.heroku.com/powerful-waters-8202.git 
    ! [remote rejected] master -> master (pre-receive hook declined) 
    error: failed to push some refs to 'https://git.heroku.com/powerful-waters-8202.git' 

我修改了我的Gemfile爲::

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

group :production do 
    gem 'pg' 
end 

當我運行捆綁安裝 我得到的FOLL由於錯誤

Installing pg 0.18.2 with native extensions 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /home/user/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150705-24664-1i1n8se.rb extconf.rb 
checking for pg_config... yes 
Using config values from /usr/bin/pg_config 
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. 
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}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/home/user/.rvm/rubies/ruby-2.2.1/bin/$(RUBY_BASE_NAME) 
    --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}/lib 

extconf failed, exit code 1 

Gem files will remain installed in /home/user/.rvm/gems/ruby-2.2.1/gems/pg-0.18.2 for inspection. 
Results logged to /home/user/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/pg-0.18.2/gem_make.out 
An error occurred while installing pg (0.18.2), and Bundler cannot continue. 
Make sure that `gem install pg -v '0.18.2'` succeeds before bundling. 

我嘗試使用命令

gem install pg -v '0.18.2' 

,現在我得到以下錯誤

ERROR: Error installing pg: 
    ERROR: Failed to build gem native extension. 

這裏是我的database.yml文件

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
    adapter: sqlite3 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: db/development.sqlite3 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    <<: *default 
    database: db/test.sqlite3 

production: 
    <<: *default 
    database: db/production.sqlite3 

和我gemfile

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.1' 
# Use sqlite3 as the database for Active Record 
#gem 'sqlite3' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.1.0' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0', group: :doc 

# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use Unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 
################################################################################### 
group :development, :test do # <<<< :development, not devlopment 
    gem 'sqlite3' 
end 

group :production do 
    gem 'pg' 
end 


################################################################## 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 

    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 
end 

任何人都可以幫我解決這個問題嗎?

+0

你在Linux(Ubuntu)上嗎? – Pavan

+0

我使用Ubuntu的\t LTS 14.04.2 @Pavan – pokiri

回答

0

你有一些很好的意見在這裏了,但我會添加什麼我沒有看到提及。

我給你的建議是在開發中使用與你在生產中相同的數據庫,PostgreSQL。有很多原因,這是一個好主意,你剛剛遇到了一個,部署頭痛。

但是讓我們假設你堅持使用不同的數據庫類型。這條線在你的Gemfile看起來奇怪,我 - 「不開發芻議」

# 
# 
################################################################################### 
group :development, :test do # <<<< :development, not devlopment 
    gem 'sqlite3' 
end 

我想你應該嘗試

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

讓我知道如何去。

+0

Thnaks很多,但我得到以下錯誤 遠程:任務:TOP =>資產:預編譯 遠程:(通過運行跟蹤跟蹤完整跟蹤) 遙控器:! 遙控器:!預編譯資產失敗。 遙控器:! 遙控器: 遙控器:!推送被拒絕,未能編譯Ruby應用程序 遠程: – pokiri

+0

您是否在更改Gemfile後捆綁安裝?還必須改變別的東西。 – Elvn

+0

非常感謝@Asensio – pokiri

0

如果你打算繼續運行SQLite的開發,運行

bundle install --without production 

這將防止從捆紮機嘗試安裝pg,但是Heroku的將安裝pg當你部署,因爲它們運行--without development,test

如果你想切換到Postgres的地方,有很多的幫助周圍的StackOverflow,我不會重複在這裏:

+0

感謝@kristjan 我看了帖子,並做實施 命令和apt-get安裝的libpq-dev的 創業板安裝PG 但我仍然得到錯誤的 的安裝sqlite3(1.3.10)時發生錯誤,Bundler無法遠程執行:繼續。遠程:請確保gem安裝sqlite3 -v'1.3.10'成功 – pokiri

0

正如您所提到的Ubuntu 14.04。2個LTS,請嘗試以下命令

sudo apt-get install libpq-dev 

然後

gem install pg -v '0.18.2' 

更新:

你也應該改變適配器postgr ESQL生產database.yml

production: 
adapter: postgresql 
pool: 5 
timeout: 5000 
+0

感謝@pavan 但我得到以下錯誤 安裝sqlite3(1.3.10)和Bundler不能 remote:continue時發生錯誤。 remote:請確保'gem install sqlite3 -v'1.3.10''成功之前 – pokiri

+0

在生產中?請用'database.yml'文件更新你的代碼。 – Pavan

+0

謝謝@pavan請看看更新的問題 – pokiri

相關問題