我在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 上,我可以成功使用rgeo
with ruby 2.0.0-p395
,但是 geos 库是由homebrew安装的,因此在路径rgeo
中是预期的。
ruby 2.0 是否有影响编译 gem 的更改?
我在所有机器上使用 RVM