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 2024 | › » | ||||
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |