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.

 
 
« November 2021»
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
282930    
 
Links
 
Quote
« You only find out who is swimming naked when the tide goes out. »
Warren Buffett