在Heroku上安装GEOS

时间:2016-12-16 17:27:49

标签: ruby-on-rails heroku geos rgeo

我正在尝试将Rails应用程序( ruby​​ 2.3.0,rails 4.2.6 )部署到使用RGeo gem的Heroku,但我没有运气安装RGeo gem依赖的基础GEOS库(参见https://github.com/rgeo/rgeo#dependencies)。

根据Heroku's own instructions,应该可以使用heroku-geo-buildpack来实现,但它不起作用。

向APP添加BUILDPACK:

$ heroku buildpacks:set https://github.com/cyberdelia/heroku-geo-buildpack.git
$ heroku buildpacks:add heroku/ruby

构建过程看起来很好:

remote: Building source:
remote: 
remote: -----> geos/gdal/proj app detected
remote:        Using geos version: 3.4.2
remote:        Using gdal version: 1.11.1
remote:        Using proj version: 4.8.0_1
remote: -----> Vendoring geo libraries done
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.3.0

TEST DEPENDENCY:

>>> require 'rgeo'
=> false
>>> RGeo::CoordSys::Proj4.supported?
=> true
>>> RGeo::Geos.supported?
=> false

1 个答案:

答案 0 :(得分:2)

在heroku上获取特定的geos buildpack似乎存在问题,主要是因为geos的构建参数。有关完整的详细信息,您可以检查this pull request到buildpack,其中讨论了很多内容。使用fork of the webpack的解决方案在this blog post

中有详细介绍

第1步:在项目的根目录中创建此.vendor_urls文件:

https://s3.amazonaws.com/diowa-buildpacks/geos-3.5.0-heroku.tar.gz
https://s3.amazonaws.com/diowa-buildpacks/proj-4.9.1-heroku.tar.gz

将此文件添加到git并确保以换行符结束。

第2步:设置Heroku配置:

heroku buildpacks:set https://github.com/diowa/heroku-buildpack-rgeo-prep.git
heroku buildpacks:add https://github.com/peterkeen/heroku-buildpack-vendorbinaries.git
heroku buildpacks:add heroku/ruby
heroku config:set LD_LIBRARY_PATH=/app/lib

(见https://github.com/diowa/heroku-buildpack-rgeo-prep#setup

最后请注意,如果您已经安装了rgeo,则需要重新编译gem。您可以使用heroku repo plugin,运行heroku repo:purge_cache -a appname并再次部署来实现这一目标。

(见http://www.diowa.com/blog/heroku/2016/02/26/using-rgeo-with-geos-on-heroku#deploy