[OSM-dev] Mapnik Installation Problem
Dane Springmeyer
blake at hailmail.net
Fri Jan 29 22:46:27 GMT 2010
On Jan 29, 2010, at 12:55 PM, Martin Koppenhoefer wrote:
> Dane, thank you for you reply.
>
> 2010/1/29 Dane Springmeyer <blake at hailmail.net>:
>> It appears to me that you have compiled boost and icu from source,
>
>
> yes, that's what I've done, because the ubuntu-repository boost and
> icu were too old.
>
Too old for what? Not Mapnik 0.7.0, which again works with ubuntu-
repository boost and icu. If it did not them please give me details.
>
>> This is likely because you now
>> have two ICU versions on your system.
>
>
> yes, but it is strange, because I removed ICU before reinstalling it
> with this command:
>
Ya, don't do that :)
> sudo apt-get remove libicu*
>
> btw. this resulted in breaking my whole system, nearly all packages
> that I've installed were removed (including gedit, network-manager,
> firefox, nautilus etc., see below [1]). I guess this is a bug in
> apt-get, I don't know where to report it to. (Fortunately an
> Email-online-window was open so I could copy the uninstall report and
> save it online in temp and reinstall all the stuff semiautomatically.
> Seems that this worked.).
>
>
>> If you stick with your current route you need to make sure that the
>> icu in /usr/local/lib is found before the icu in /usr/lib.
>> To do this try:
>>
>> export LD_LIBRARY_PATH=/usr/local/lib
>> and apply this patch to the 'SConstruct' file in the mapnik sources:
>
>
> OK, I did both and tried again, but the problem seems to persist.
>
The problem now is that libboost_regex is linked against the /usr/lib
icu.
The way to test this is to run:
$ ldd /usr/local/libboost_regex.so
which will likely should linking against the /usr/lib icu.
...so you need to rebuild it to link to the /usr/local/lib icu. This
can be very hard because the bjam tools don't tend to work right with
two versions of icu and tend to end up linking to /usr/lib even if you
correctly pass the -s options like this:
sudo ./bjam --with-regex toolset=gcc -sHAVE_ICU=1 -sICU_PATH=/usr/
local -a install
So, what you may have to do is move the /usr/lib/libicu out of the way
temporarily while you re-compile boost_regex. Or just follow my advice
above and rollback to using the apt installed boost and icu.
Or... lastly, recompile boost_regex with -sHAVE_ICU=0 to avoid the use
of ICU altogether.
Dane
More information about the dev
mailing list