2013-02-05 9 views
11

Küçük bir test uygulamasını Heroku'ya zorlamaya çalışıyorum.Heroku'da rdiscount'u nasıl kullanabilirim?

Uygulama:

require 'sinatra' 
require 'haml' 
require 'rdiscount' 

set :markdown, :layout_engine => :haml, :layout => :layout 


get '/' do 
    haml :index 
end 

get '/blog' do 
    markdown :test 
end 

Gemfile:

source :rubygems 
gem 'sinatra' 
gem 'thin' 
gem 'haml' 
gem 'rdiscount' 

Heroku için bastırıyor önce ben bundle install çalıştırmak Burada App ve mücevher dosyasıdır.

-----> Ruby/Rack app detected 
-----> Installing dependencies using Bundler version 1.3.0.pre.5 
    Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
    Fetching gem metadata from http://rubygems.org/.......... 
    Fetching gem metadata from http://rubygems.org/.. 
    Using daemons (1.1.9) 
    Using eventmachine (1.0.0) 
    Using haml (3.1.7) 
    Using rack (1.4.3) 
    Using rack-protection (1.3.2) 
    installing rdiscount (2.0.7) 
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 
    /usr/local/bin/ruby extconf.rb 
    checking for random()... yes 
    checking for srandom()... yes 
    checking for rand()... yes 
    checking for srand()... yes 
    checking size of unsigned long... long 
    checking size of unsigned int... int 
    no int with size 4 
    *** 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=/usr/local/bin/ruby 
    --with-rdiscount-dir 
    --without-rdiscount-dir 
    --with-rdiscount-include 
    --without-rdiscount-include=${rdiscount-dir}/include 
    --with-rdiscount-lib 
    --without-rdiscount-lib=${rdiscount-dir}/lib 
    Gem files will remain installed in /tmp/build_3aijv3ga0dy1y/vendor/bundle/ruby/1.9.1/gems/rdiscount-2.0.7 for inspection. 
    Results logged to /tmp/build_3aijv3ga0dy1y/vendor/bundle/ruby/1.9.1/gems/rdiscount-2.0.7/ext/gem_make.out 
    An error occurred while installing rdiscount (2.0.7), and Bundler cannot continue. 
    Make sure that `gem install rdiscount -v '2.0.7'` succeeds before bundling. 
! 
!  Failed to install gems via Bundler. 
! 
!  Heroku push rejected, failed to compile Ruby/rack app 

O rdiscount diğer bazı Taşlar veya kütüphaneler bağlı olabilir anlıyorum ve bu bağımlılık çözülecek gibi görünmüyor: rdiscount mücevher yüklemeye çalışırken Ama Heroku için bastırıyor başarısız olur. Ancak, bu sorunu nasıl çözeceğimi anlamıyorum. Bunun işe nasıl başlayacağına dair tavsiyede bulunabilir misiniz?

cevap

27

Heroku üzerinde Ruby 1.9.2 ile ilgili bir sorun var ve int olduğunu düşündüğü baytlar. Bu gibi Gemfile için ruby "1.9.3" eklemek için

Dene:

source :rubygems 
ruby "1.9.3" 

gem 'sinatra' 
gem 'thin' 
gem 'haml' 
gem 'rdiscount' 

Kendi test 1.9.2 üzerinde oluşturulamamasını ve ayrıca 1.9.3

+0

bu hatayı başarılı: https: // github. com/rtomayko/rdiscount/issues/48 – GregB

+0

Harika cevap! Sorunu çözdüm! Çok teşekkür ederim!!! –

+0

Bunun için teşekkürler, benim için de sorunu çözdü. – Jason