首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安装带有本地Ruby绑定的GEOS?

如何安装带有本地Ruby绑定的GEOS?
EN

Stack Overflow用户
提问于 2014-11-03 07:58:24
回答 1查看 1.1K关注 0票数 2

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-03 08:26:15

1.编译和安装Swig

Ubuntu

代码语言:javascript
复制
sudo apt-get install swig

Mac

下载并解压缩swig源代码。在解压缩目录中:

代码语言:javascript
复制
./configure --without-pcre
make && sudo make install

(或使用brew install.)

2.下载和配置GEOS

下载并解压缩GEOS源代码。在解压缩目录中:

代码语言:javascript
复制
./configure --enable-ruby

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

3.汇编和安装GEOS

试着编译和安装:

代码语言:javascript
复制
make && sudo make install

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

代码语言:javascript
复制
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

代码语言:javascript
复制
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

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

Mac

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

Mac上的Ruby需要一个.bundle文件,所以我们创建一个指向.so文件的符号链接。

代码语言:javascript
复制
$ cd /Library/Ruby/Site/2.0.0/universal-darwin13
$ sudo ln -s geos.so geos.bundle

这只需要在安装时运行,才能永远启用Ruby绑定。

5.在Ruby中加载GEOS

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

代码语言:javascript
复制
$ irb
>> require 'geos'
=> true
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26709991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档