1

语境:

  • 我有一个大量使用 GSL 库及其 Ruby 绑定的应用程序。
  • 我想将该应用程序部署到 Heroku。一般来说,我对编程非常陌生,部署少得多,而且 Heroku 使用起来非常简单,尤其是对于 Rails 应用程序。
  • 我的笔记本电脑上安装了 GSL。我正在使用“gsl”宝石。

问题:

  • gem 要求已安装 GSL 库。
  • Heroku 环境中尚未安装 GSL。
  • 所以,不出所料,我从 Heroku 收到了这个错误git push heroku master

    -----> Heroku receiving push
    -----> Removing .DS_Store files
    -----> Ruby/Rails app detected
    -----> Installing dependencies using Bundler version 1.2.0.rc
           Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
    
    ...
    Installing gsl (1.14.7) with native extensions
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    /usr/local/bin/ruby extconf.rb
    checking gsl version... *** 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
    extconf.rb:237:in `rescue in <main>': Check GSL>=0.9.4 is installed, and the command "gsl-config" is in search path. (RuntimeError)
    from extconf.rb:138:in `<main>'
    

(可能的)解决方案:

  • 似乎使用 Heroku 的 buildpacks 是可能的路线。 (打包二进制 buildpack 依赖项)似乎很有希望。
  • 我只是不明白教程中发生了什么,或者如何使用 vulcan。

我所希望的:

  • 关于如何使 GSL 库可用于我在 Heroku 上的应用程序的易于理解的解释。

非常感谢!!

4

1 回答 1

1

嘿,汤姆(两个名叫汤姆的人需要在 heroku 上使用 ruby​​-gsl 的可能性有多大?)我还没有测试它(我真的不知道我在做什么,我真的没有应用程序尚未准备好对其进行测试)但也许这会起作用:

heroku-buildpack-gsl-ruby

如果没有,好吧,我们会坚持下去;)

它是当前最新的 gsl 1.15。

虽然在未来类似: package_nodejs 代替 gsl 可能会很好(请参阅自述文件的黑客部分)。我可能会很快添加(复制/粘贴,颤抖,所以不是干的)。

于 2012-09-19T01:10:04.560 回答