Backtrack:  
 
by lunarg on August 28th 2007, at 12:10

Gentoo users that do regular updates, probably already ran into this issue before: Gentoo has pushed libexpat-2 to stable, effectively breaking all applications that depend upon it because of a missing library. While this is quite normal behaviour (the two versions of libexpat are not entirely compatible), it is mostly a very annoying thing, as it is not easy to find out which packages depend on it. Lucky, the Gentoo Forums provided me with a good solution.

Normally, in such a scenario, one would use revdep-rebuild to solve these issues, but, as seen on the forums, it more than occassionally results in havok on user's systems. Since I did not want to risk reinstalling my system altogether, I found another solution in one of the posts. A backup, and a (rather complex) command later, I managed to fix the foreseable packages, and so far, everything seems to be working well.

emerge -n1 '>=portage-2.1.2.12' portage-utils && emerge -qep world \
| grep --color=never -oFf <(scanelf -plRBF '%F %n' \
| awk '/libexpat.so.0/{print $1}' | xargs qfile -qC \
| sort -u; echo -e "libtoolncurl") | xargs emerge -1v

What is does is looking which applications depend on the old libexpat-1 by checking it through the binary file (using scanelf, and looking for dependency on libexpat.so.0. The ones that match are then re-emerged.

I did this overnight, and so far, everything is looking good, and up and running again. I don't know if all packages are working correctly, but for the moment, it is looking very good.

 
 
« March 2024»
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31      
 
Links
 
Quote
« Most people tend to avoid true conflict. Ironically this breeds more conflict. »