首页 > 解决方案 > RGeo::Geos.supported? 即使有 -dev 包和符号链接也显示为假

问题描述

试图让 rgeo gem 识别 ubuntu 16.04 系统上的 geos。

我安装了以下软件包:-

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.)

标签: rgeo

解决方案


spring stop并重新启动 rails 控制台为我修复了它。


推荐阅读