如何使用本机Ruby绑定安装GEOS?

时间:2014-11-03 07:58:24

标签: ruby geometry geospatial postgis geos

GEOS是Java拓扑套件的C ++端口。它支持几何和地理空间处理,是PostgreSQL的PostGIS下的库。我想直接在Ruby中使用它,而不是在PostGIS中,我知道有本机的Ruby绑定,但是在线文档很少,而且安装很麻烦。如何在启用Ruby绑定的情况下安装GEOS?

1 个答案:

答案 0 :(得分:4)

1.编译并安装Swig

<强> Ubuntu的

sudo apt-get install swig

Mac OS X

下载并解压缩swig source code。在解压缩的目录中:

./configure --without-pcre
make && sudo make install

(或使用brew install。)

2.下载并配置GEOS

下载并解压缩GEOS source code。在解压缩的目录中:

./configure --enable-ruby

查找显示Swig: trueRuby bindings: true的状态行。

3.编译并安装GEOS

尝试编译并安装:

make && sudo make install

(如果make以错误library not found for -llibruby.2.0.0.dylib结尾,这是由于GEOS中的错误(目前版本为3.4.2)。运行以下命令修复configure文件:

sed -i -e 's/RUBY_SO_NAME=.*/RUBY_SO_NAME=ruby/' configure

然后返回第2步。)

4.设置链接

在Ruby中使用require 'geos'之前,您需要确保库已正确链接。安装目录显示在sudo make install的输出中。

<强> Ubuntu的

默认安装目录为usr/local/lib

在执行Ruby流程之前,将安装目录添加到LD_LIBRARY_PATH

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

每当运行Ruby可执行文件时,都需要设置此环境变量,因此您可能希望将其添加到bash配置文件中。

Mac OS X

.so文件的默认安装目录类似于/Library/Ruby/Site/2.0.0/universal-darwin13

Ruby on Mac OS X需要一个.bundle文件,因此我们创建了一个指向.so文件的符号链接。

$ cd /Library/Ruby/Site/2.0.0/universal-darwin13
$ sudo ln -s geos.so geos.bundle

这只需要在安装时运行以永久启用Ruby GEOS绑定。

5.在Ruby中加载GEOS

如果您已正确链接到库,则应该能够使用require 'geos'并且看不到错误。

$ irb
>> require 'geos'
=> true