[mapserver-dev] Revisit installing multiple mapserver versions
woodbri at swoodbridge.com
Mon Jul 16 12:11:36 PDT 2012
On 7/16/2012 12:45 PM, thomas bonfort wrote:
> I believe we have 2 options here:
> - without any change to our build, you can configure with
> --prefix=/usr/local/mapserver-6.2, then
> /usr/local/mapserver-6.2/bin/mapserv will link to
> /usr/local/mapserver-6.2/lib/libmapserver.so, and your multiple
> mapserv binaries can be copied around and will link to their original
> libmapserver.so location
While this seems straight forward, I really don't like the proliferation
of directories and the potential impact on PATH, LD_LIBRARY_PATH,
INCLUDE to manage these. As an occasional hacker, I can certainly manage
this on my personal systems, but my concern is the need to manage this
in production environments.
I also think that this requires setting LD_LIBRARY_PATH appropriately
for the the executable in question to find its appropriate library.
> - we can update our build process to add libtool version-info
> information, which is supposed to work in this case. This will need to
> be manually tweaked at release time as the libtool version-info isn't
> related to our own versioning scheme (c.f.
> scroll down to "The Libtool library versioning scheme")
OK, this is an extra step (and something that needs to be added to the
release check list) from a development point of view to make sure we
version things correctly it clearly seems to be the right way to go.
From the end users point of view and the system admin managing
deployment this should be straight forward and intuitive and should
minimize support questions and issues. I strongly recommend that
mapserver adopt this as part of our release practice.
Would you like me to open a ticket requesting this?
BTW, thanks for the libtool article, that was very informative.
> On Mon, Jul 16, 2012 at 5:50 PM, Stephen Woodbridge
> <woodbri at swoodbridge.com> wrote:
>> I am have a problem with multiple mapserver versions installed. This is a
>> common scenario in many environments. Looking at my system, I have:
>>> woodbri at mappy:$ ls /usr/local/lib/libmaps* -l
>>> -rwxr-xr-x 1 root root 5942968 2012-07-02 09:36
>>> -rwxr-xr-x 1 root root 5934502 2012-07-14 17:10
>>> -rwxr-xr-x 1 root root 5935167 2012-07-14 23:24
>>> -rwxr-xr-x 1 root root 2066 2012-07-14 23:24
>>> lrwxrwxrwx 1 root root 23 2012-07-14 23:24
>>> /usr/local/lib/libmapserver.so -> libmapserver-6.3-dev.so
>>> woodbri at mappy:$ ls /usr/local/lib/libmapserver.so -l
>>> lrwxrwxrwx 1 root root 23 2012-07-14 23:24 /usr/local/lib/libmapserver.so
>>> -> libmapserver-6.3-dev.so
>>> woodbri at mappy:$ ls /usr/local/bin/mapserv
>>> woodbri at mappy:$ mapserv -v
>>> MapServer version 6.3-dev OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG SUPPORTS=PROJ
>>> SUPPORTS=GD SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=ICONV
>>> SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
>>> SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
>> This one works fine since it was last installed. But my typical pattern is
>> to install mapserver then:
>> cp /usr/local/bin/mapserv /path/to/cgi-bin/mapserv-<version>
>> So I have these on my system:
>> I think the problem is the symlink:
>> /usr/local/lib/libmapserver.so -> libmapserver-6.3-dev.so
>> Ideally the executable should try to load the explicit library that it was
>> built against and not some generic libmapserver.so that is a symlink and
>> then I think everything would work just fine.
>> Is this something that can be done?
>> mapserver-dev mailing list
>> mapserver-dev at lists.osgeo.org
More information about the mapserver-dev