我需要在Heroku运行的Rails(4.0.2)应用程序上安装GSL库,以便使用一些依赖于它的宝石。
目标: 在Heroku上安装GSL库,以便与GSL和Similarity宝石一起使用。
尝试的方法:
- 在Heroku应用程序中安装Ruby / GSL:部署后Heroku崩溃。 GSL gem无法找到lib。 Trace: http://pastebin.com/CPcMUdCa
- Tomwolfe的Heroku Ruby构建包适用于使用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专家,所以可能是问题,我正在学习更多关于它的知识,以便创建一个简单的存储库,其中包含一个示例和有关此问题的扩展说明。
BUILDPACK_URL
,Heroku 将使用它:https://devcenter.heroku.com/articles/buildpacks#using-a-custom-buildpack - Dan McClainheroku config:set BUILDPACK_URL=https://github.com/skozz/heroku-buildpack-gsl-ruby.git --app <<myapp>>
(我分叉了它以更改GSL版本为1.14)。现在问题是部署后:/app/vendor/bundle/ruby/2.0.0/gems/gsl-1.15.3/lib/gsl.rb:2:in
require': libgsl.so.0: cannot open shared object file: No such file or directory - /app/vendor/bundle/ruby/2.0.0/gems/gsl-1.15.3/lib/rb_gsl.so (LoadError)`找不到库。 - skozz