1

我在nitrous.io上运行并尝试使用 ruby​​ 2.0.0-p353安装rgeo gem。

我没有sudo访问权限,所以我尝试从源代码编译和安装geos

下载并解压缩源文件后,我cd进入源文件夹并运行

mkdir /home/action/local && ./configure --prefix=/home/action/local
make && make install

这运行了一段时间。然后我跑

gem install rgeo -- --with-geos-dir=/home/action/local

事情看起来不错,但如果我跳进终端,我会得到

RGeo::Geos.supported?
> false

回顾mkmf.log文件,我看到以下几行:

/usr/bin/ld: cannot find -lgeos                                                                                                                                                    
/usr/bin/ld: cannot find -lgeos_c                                                                                                                                                  
/usr/bin/ld: cannot find -lgeos                                                                                                                                                    
/usr/bin/ld: cannot find -lgeos_c

这篇博文:http: //blog.thefrontiergroup.com.au/page/2/提到创建符号链接来解决这个问题:

cd /usr/lib
sudo ln -s libgeos-3.3.3.so libgeos.so
sudo ln -s libgeos-3.3.3.so libgeos.so.1

libgeos没有为我安装到 usr/lib,它在里面/home/action/local/lib,当我检查我看到libgeos.so的那个目录已经符号链接到libgeos-x.x.x.so.

如果我将 ruby​​ 版本切换到 1.9.3-p392 并运行 gem 安装行,一切都会按计划进行。

在我的 MacBook Pro 上,我可以成功使用rgeowith ruby 2.0.0-p395,但是 geos 库是由homebrew安装的,因此在路径rgeo中是预期的。

ruby 2.0 是否有影响编译 gem 的更改?

我在所有机器上使用 RVM

4

0 回答 0