RGeo ::Geos.supported? отображается как false даже с пакетами -dev и символической ссылкой на месте

#rgeo

#rgeo

Вопрос:

Пытаюсь заставить драгоценный камень rgeo распознавать geos в системе ubuntu 16.04.

У меня установлены следующие пакеты:-

libgeos-dev, libgeos -dev и libgeos-3.7.1

 geos-config --version
3.7.1
  

У меня есть символическая ссылка в /usr/lib, которая указывает на местоположение конкретной версии в

 lrwxrwxrwx  1 root root   42 Oct 21 18:05 libgeos.so -> /usr/lib/x86_64-linux-gnu/libgeos-3.7.1.so
  

Выполнили следующие команды

 gem uninstall rgeo
gem install rgeo -- --with-geos-dir=/usr/lib
  

Однако, когда я запускаю следующее, происходит сбой

 RAILS_ENV=staging bundle exec irb
require 'rgeo'
RGeo::Geos.supported?
 => false
  

Что я делаю не так? Я просмотрел различные сообщения об этом, что привело меня к установке пакета -dev и созданию символической ссылки, но все равно это не работает.

Также добавили /usr/lib в /etc/ld.so.conf.d/ и запустили ldconfig, но безуспешно.

Обновить

 RAILS_ENV=staging bundle exec irb
2.5.0 :001 > require 'rgeo'
=> true
2.5.0 :002 > RGeo::Geos.supported?
=> true
2.5.0 :003 >
  

показывает, что он работает, но

 Loading staging environment (Rails 5.2.0)
2.5.0 :001 > require 'rgeo'
=> false
2.5.0 :002 > RGeo::Geos.supported?
=> false
  

сбой

и приложение по-прежнему показывает

 RGeo::Error::RGeoError (GEOS is not available, but is required for correct interpretation of polygons in shapefiles.)
  

Комментарии:

1. смогли ли вы решить эту проблему?

Ответ №1:

spring stop и перезапуск rails console исправил это для меня.

Ответ №2:

Чтобы исправить это на CircleCI, мне нужно было запустить эти команды на компьютере ubuntu, а затем переустановить rgeo gem

 sudo apt update
sudo apt install libgeos  -dev libgeos-3.8.0 libgeos-c1v5 libgeos-dev libgeos-doc
gem unintsall rgeo
gem install rgeo