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回购中打开问题,希望他们可以帮助你