[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