首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Heroku上使用rdiscount?

如何在Heroku上使用rdiscount?
EN

Stack Overflow用户
提问于 2013-02-05 14:32:13
回答 1查看 1.4K关注 0票数 11

我正在尝试向Heroku推送一个小测试应用程序。下面是App和Gem文件:

应用程序:

代码语言:javascript
复制
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:

代码语言:javascript
复制
source :rubygems
gem 'sinatra'
gem 'thin'
gem 'haml'
gem 'rdiscount'

在推送到Heroku之前,我运行bundle install。但是当尝试安装rdiscount gem时,推送到Heroku失败:

代码语言:javascript
复制
-----> 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

我确实理解rdiscount可能依赖于其他一些Gems或库,而这种依赖似乎没有得到解决。然而,我不明白如何解决这个问题。你能给我一些关于如何让它工作的建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 15:16:51

Heroku上的Ruby 1.9.2似乎有一个问题,它认为int的字节数有多大。

尝试将ruby "1.9.3"添加到Gemfile中,如下所示:

代码语言:javascript
复制
source :rubygems
ruby "1.9.3"

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

我自己的测试在1.9.2上重现了您的错误,并在1.9.3上成功了

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14701516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档