Установка GEOS на Heroku

Я пытаюсь развернуть приложение Rails (ruby 2.3.0, rails 4.2.6) на Heroku, в котором используется гем RGeo, но мне не везет в установке базовой библиотеки GEOS, на которую опирается гем RGeo (см. https://github.com/rgeo/rgeo).

Согласно собственным инструкциям Heroku, это должно быть возможно с помощью heroku-geo-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

ЗАВИСИМОСТЬ ТЕСТА:

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

2 ответа

Решение

Кажется, есть проблемы с получением этого конкретного пакета geos buildpack на heroku, в основном из-за аргументов сборки для geos. Для получения полной информации вы можете проверить этот запрос на сборку, где обсуждается многое из этого. Решение с использованием форка веб-пакета подробно описано в этом посте.

ШАГ 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)

Наконец, обратите внимание, что если вы уже установили rgeo, вам нужно перекомпилировать гем. Вы можете сделать это с помощью плагина репозитория heroku, запустив heroku repo:purge_cache -a appname и развертывание снова.

(СМ. http://www.diowa.com/blog/heroku/2016/02/26/using-rgeo-with-geos-on-heroku)

Хотя ранее принятый ответ в то время работал, эти пакеты сборки с тех пор устарели .

Текущее решение, похоже, заключается в использовании более нового Heroku-geo-buildpack.

Другие варианты можно найти здесь: rgeoEnable-GEOS-and-Proj4-on-Heroku.md на главной · rgeorgeo — GitHub

Другие вопросы по тегам