Heroku / Rails:如何在Heroku上安装GNU Scientific Library(GSL)?

我需要在运行Rails(4.0.2)应用程序的Heroku上安装GSL库,以使用一些依赖于此的gem。

目标:安装GSL库以在Heroku上使用GSL和相似性gem。

Approches试过:

  • 在Heroku应用程序中安装Ruby / GSL :部署后Heroku崩溃。 GSL gem无法找到lib。 追踪: http : //pastebin.com/CPcMUdCa
  • Tomwolfe的Heroku的Ruby buildpack适合使用couchbase :同样的问题。
  • 为Heroku应用程序构建依赖关系二进制文件 :不推荐使用Vulcan。 关于Heroku的Devcenter和Github的更多信息

我还尝试了以下工作流程(编译二进制文件):

  • 从ftp://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz下载的GSL 1.15
  • 未压缩和cd gsl-1.15
  • ./configure
  • make clean
  • make
  • sudo make install

这适用于我的本地环境,但不适用于Heroku。 Heroku不允许使用sudo但它确实允许使用heroku run 。 这里的问题是文件系统是短暂的,而dyno本身只会在你的控制台会话中存活。

更新:

我也试过构建我自己的Heroku Buildpack但我无法使它工作。 我尝试过使用multipacks 。 我不是Heroku Buildpack的专家所以也许这是我的问题, 我正在学习更多关于它的一个简单的存储库,其中包含一个示例和对此问题的扩展解释。

几个月前我用1.15和1.16做了一个heroku buildpack

做就是了:

heroku buildpacks:set git://github.com/gregory/heroku-gsl-buildpack.git#gsl-1.16

要么

heroku buildpacks:set git://github.com/gregory/heroku-gsl-buildpack.git#gsl-1.15

我不得不在heroku上使用gsl1.16,这是我解决它的方法:

首先将gsl1.16 buildpack添加到buildpacks列表中

 heroku buildpacks:add --index:3 git://github.com/gregory/heroku-gsl-buildpack.git#gsl-1.16 

这增加了我的buildpack列表,在我的情况下已经有了nodejs和ruby。 因此--index=3

然后必须在heroku上设置LD_LIBRARY_PATH

 heroku config:set LD_LIBRARY_PATH=/app/vendor/gsl/lib 

这指向1.16。 看到有些人使用/app/vendor/gsl1/lib但不是我的情况。

就是这样。

您需要使用自定义buildpack 。 Buildpacks允许您定义项目之外的任何其他依赖项,并使用dynos使用的slug打包它们。 您链接到的构建包( https://github.com/tomwolfe/heroku-buildpack-gsl-ruby )将是您完成所有工作的最佳选择。 如果你有问题,我会在他们的github回购中打开问题,希望他们可以帮助你

    Interesting Posts