3

我们在 heroku cedar 堆栈上安装 GEOS 库时遇到了麻烦。

我们遵循了本指南:https ://devcenter.spacaldb.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

4

2 回答 2

0

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

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

希望这个 buildpack 可以减少在 Heroku 上使用 RGeo 的痛苦。

于 2013-06-08T13:32:38.037 回答
0

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,因为它会安装你可能不需要的库。

于 2020-11-19T19:04:35.843 回答