libmapscript-ruby1.8的Apt-get安装包不符合预期

时间:2014-06-12 16:40:17

标签: ruby-on-rails apt-get

TL; DR:如何在我的系统上获得libmapscript-ruby1.8的正确软件包?

上下文: 我们发现了一个开源Rails 2.3应用程序,可以解决内部工具问题。 https://github.com/timwaters/mapwarper 附加说明 https://github.com/l34marr/mapwarper/blob/master/README#L125

我对Rails有一些经验,但我只是在学习Ubuntu生态系统和apt-get。

问题: 感知到的问题是其中一个外部库(mapscript)无法正常运行。

更多细节: 问题的根源是apt-get install libmapscript-ruby1.8似乎没有加载ruby1.8版本的mapscript。相反,它通过libmapscript-ruby1.8的依赖加载到/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux/mapscript.so

因此,当Rails应用程序链接到已安装的mapscript.so时,它会中断,因为在用于1.8.7和1.9.1的mapscript.so构建之间的语法可能不同。

示例错误(注意将1.9.1版本的mapscript.so复制到1.8.7文件夹中)

 TypeError (wrong argument type swig_runtime_data (expected Struct)):
   /home/ubuntu/.rvm/rubies/ruby-1.8.7-p374/lib/ruby/site_ruby/1.8/x86_64-linux/mapscript.so

到目前为止,与应用程序创建者的联系基本没有结果,因为他们没有遇到过这个具体问题。

有一个rubygem但似乎也是1.9.1 https://github.com/sourcepole/ruby_mapscript

是否有一些我错过的apt-get魔法?我刚刚读到了一个叫做后退的东西,但不知道这是否是一个解决方案。

2 个答案:

答案 0 :(得分:1)

我知道这是一个古老的威胁,但万一有其他人遇到这个问题,我解决了这样的问题: (我使用了这个github页面:https://github.com/normanb/mapserver/tree/master/mapserver/mapscript) 安装旧的libgif 1.)apt install unzip libgdal-dev swig libproj-dev proj-data proj-bin

2。)wget" http://launchpadlibrarian.net/90361644/libgif4_4.1.6-9ubuntu1_amd64.deb"

3。)sudo dpkg -i libgif4_4.1.6-9ubuntu1_amd64.deb

4。)wget" http://security.ubuntu.com/ubuntu/pool/main/g/giflib/libgif-dev_4.1.6-9ubuntu1_amd64.deb"

5.。)sudo dpkg -i libgif-dev_4.1.6-9ubuntu1_amd64.deb

安装旧GD 6.)wget" www.boutell.com/gd/http/gd-2.0.33.tar.gz"

7。)解压缩

8。)转到文件夹

9。)。/ configure

10。)make

11。)make install

安装网络服务器

12。)从https://github.com/normanb/mapserver/

下载zip

13。)解压mapserver-master.zip

14。)转到文件夹mapserver-master / mapserver /

15。)。/ configure --with-wmsclient --with-proj --with-gdal --with-postgis(选择mapcript所需的选项)

16。)make

对于ruby mapscript :(对于其他人来说,https://github.com/normanb/mapserver/tree/master/mapserver/mapscript

16。)ruby extconf.rb

17。)make

18。)make install

请注意,设置过滤器中存在错误,您需要像这样评论过滤器" \" id = 123 \"" (https://github.com/mapserver/mapserver/issues/3983

答案 1 :(得分:0)

最终,似乎包裹(为了我的意图和目的)被打破了。

与Debian大师配对,他基本上在系统上安装了Mapserver,以便编译并生成正确的mapscript.so

他建议我与各种软件包维护人员联系,并概述我遇到的问题。