在heroku雪松上安装GEOS



在heroku cedar stack上安装GEOS库时遇到问题。

我们按照这个指南:https://devcenter.spacialdb.com/Heroku.html,但它没有工作。

我们注意到所提供的geos二进制文件中存储的路径(/app/tmp/geos)是错误的,所以我们使用vulcan构建了自己的二进制文件。

我们相应地改变了参数(BUNDLE_BUILD__RGEO),但我们无法使其工作。

我们甚至在自定义的rgeo gem中硬编码地理路径,但没有成功

我们也尝试了其他的构建脚本(https://github.com/roximity/heroku-buildpack-ruby-geos),但他们太老了,很难保持他们的最新与heroku的一个

我们使用ruby 2.0.0-p195和Rails 3.2.13

RGeo gem的当前维护者之一。我们正在改进文档,我已经编辑了提到在heroku上安装geos的部分。

为了避免链接失效,这里有一个解决方案:

echo 'libgeos-dev=3.7.1-1~pgdg18.04+1' > Aptfile # Use the version you want here
git add Aptfile
git commit -m 'Add Aptfile with libgeos'
heroku buildpacks:add --index=1 heroku-community/apt
# If you already have installed the gem earlier, you will need to purge your repo cache:
#   heroku plugins:install heroku-repo
#   heroku repo:purge_cache
git push heroku main
heroku console <<< 'puts "RGeo is configured with Geos !" if RGeo::Geos.capi_supported?;exit'

如果您还希望得到标准地理库(如Proj4)的支持,您应该考虑使用heroku-geo-buildpack。这将会稍微慢一些,并且您将有一个更大的slug,因为它将安装您可能不需要的库。

我刚刚创建了heroku-buildpack-rgeo-prep来解决这个问题。

此构建包覆盖.bundle/config以将BUNDLE_BUILD__RGEO设置为当前构建路径。不幸的是,你不能设置BUNDLE_BUILD_RGEO=/app,因为你的项目实际上是在/tmp/build_1890cktlpat5d这样的地方构建的。

希望这个构建包能让在Heroku上使用RGeo少一些痛苦。

相关内容

  • 没有找到相关文章

最新更新