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魔法?我刚刚读到了一个叫做后退的东西,但不知道这是否是一个解决方案。
答案 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/
下载zip13。)解压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
他建议我与各种软件包维护人员联系,并概述我遇到的问题。