Odi's astoundingly incomplete notes
New entries | CodeGentoo e2fsprogs-libs, ss and com_err
Today Gentoo released some updates that cause a conflict. It's resolution may damage your system:
Be really careful NOT to unmerge
Well, they haven't so far. So here is the paranoid way to do it:
[ebuild U ] sys-fs/e2fsprogs-1.41.2 [1.40.9] [ebuild N ] sys-libs/e2fsprogs-libs-1.41.2 USE="nls" [ebuild U ] net-fs/nfs-utils-1.1.3 [1.1.0-r1] [blocks B ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] <sys-fs/e2fsprogs-1.41 (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] sys-libs/e2fsprogs-libs (is blocking sys-libs/ss-1.40.9, sys-libs/com_err-1.40.9)The reason for the block is that
ss
and com_err
have both been integrated into e2fsprogs-libs
. Blocks are normally not a problem and happen from time to time, and can easily be resolved. Also this one can seemingly easily be resolved by unmerging ss and com_err and then merging e2fsprogs-libs. But ss and com_err are part of the system profile and unmerging them even for a short time is dangerous.Be really careful NOT to unmerge
sys-libs/ss
and sys-libs/com_err
from your system! These are critical core libraries that are used by dozens of programs (such as wget, curl, openssh, apache, postfix), which will be broken after unmerging. There is a manual upgrade path in comment#7 of bug 234907. But I suggest you wait until this is resolved automatically by the next version of portage. Pretty sure the Gentoo developers will fix this in the portage tree soon.Well, they haven't so far. So here is the paranoid way to do it:
# don't depend on the net later emerge -fuD world # backup in case something goes wrong quickpkg ss com_err # unmerge emerge -C ss com_err e2fsprogs # merge emerge -1 e2fsprogs-libs emerge e2fsprogs # fix broken things revdep-rebuild
Here's what I did:
emerge -auDNv --fetchonly world
emerge -C ss com_err
emerge -auDNv --oneshot e2fsprogs-libs e2fsprogs
emerge -auDNv world
All is well and everything is updated.
--Bkrumme
ARE YOU SERIOUS??
I have a clue too:
emerge -C gentoo
Bicer.
But this case is especially bad, because it requires unmerging packages from the system profile. Unlike during a normal update of such a package there will be a short period where the package is not installed, thus breaking dozends of programs, that may in turn be necessary to merge the updated package. You can end up in a vicious circle if you don't know what you are doing, requiring to boot from rescue media.
Problem is I saw this post only after I did the mistake. Here is what I did to temporarily have a working system, until developpers have fixed the problem: 1) I downloaded (with Firefox, Konqueror was broken as well) a Gentoo live CD, then booted hthe CD with nox parameter to have the root prompt; 2) I ran "equery files com_err" to see what files I stupidely erased; 3) I mounted the partition of my hard drive and copyed the files indicated by the equery output; 4) reboot worked.
This is an awfull thing to do, only people like me that don't know anything about computers can do that. I hope you don't have to do it.
just reemerge com_err
emerge com_err
this should work, since the source file should still be in /usr/portage/distfiles
if it is not, download e2fsprogs-1.40.9.tar.gz from any gentoo mirror (apparently I am not allowed to post the link here :( )
using firefox or links or another computer. Copy it it to /usr/portage/distfiles.
then run emerge =com_err-1.40.9
now you should be able to run
emerge -uDf world
this fetches all the files you need.
now you can safely do
emerge -C com_err && emerge -uD world
good luck!
Till Korten
emerge --unmerge sys-libs/ss sys-libs/com_err
emerge -aDuv world
Then Sh1t, ok, no problem, let's just use firefox -> failed. Lynx -> failed. wget -> failed.
Ok let's reboot and fetch the tarball from my dual boot. Done, and then reboot failed (unable to mount the root partition).
Sh1t : could not find the gentoo live CD.
Now I am running OpenSuse 10.3 (old Dvd from a magazine I had near my computer).
Bye gentoo, bye :-|
Joel
If anybody really know how to fix it just let me now ^^
Mark
because i knew that that would not be much of a problem... the other two i didnt know...
problem solved...
Here 's what the guy was suggesting:
"""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""
Since e2fsprogs-libs provides ss and com_err you should be able to safely unmerge them temporarily as long as you have the new e2fsprogs-libs and e2fsprogs source downloaded already.
Here's what I did:
emerge -auDNv --fetchonly world
emerge -C ss com_err
emerge -auDNv --oneshot e2fsprogs-libs e2fsprogs
emerge -auDNv world
All is well and everything is updated.
--Bkrumme
""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""
Regards,
Goratrix@GR
emerge -f system (prefetch all needed packages. IMPORTANT!)
emerge -avC com_err ss e2fsprogs
emerge -avuD system
revdep-rebuild
Still no need to say goodbye to your gentoo-system.
1. get the gentoo boot-cd (what do you have a dual boot system for? ;-)) and boot it
2. make sure you can connect to the net
3. cd /
mount /dev/*placeofyourrootpartition* /mnt/gentoo
mount -t proc proc /mnt/gentoo/proc
chroot /mnt/gentoo /bin/bash
env-update
emerge =e2fsprogs-1.40.9
4. reboot and have your system back. Now you can try all the solutions suggested on this page.
And, guess what, this is much quicker than installing OpenSuse from that old magazine-dvd
Michael
Last week-end I trashed my opensuse (I quickly hated it).
I now run a debian unstable. I does work pretty much out of the box. Updates now look far less scary than they were with gentoo.
Joel
#Unmask portage:
echo "=app-admin/eselect-news-20080320 **" >> /etc/portage/package.keywords
echo "=app-admin/eselect-1.0.11-r1 **" >> /etc/portage/package.keywords
echo "=sys-apps/portage-2.2_rc13" >> /etc/portage/package.keywords
#Resolve with new portage
emerge =sys-apps/portage-2.2_rc13
emerge e2fsprogs #will pull all other stuff
#reverting back to stable portage
vim /etc/portage/package.keywords #undo 3 unmasking made before
emerge eselect portage #will complain about all ebuilds of eselect-news masked
emerge --unmerge eselect-news #if previous step complained
#emerge eselect-news #otherwise
revdep-rebuild #probably unnecessary, in my case nothing important was rebuild
Stephen Reese
www.rsreese.com
$ quickpkg e2fsprogs com_err ss
$ emerge -BO e2fsprogs e2fsprogs-libs
$ emerge -C ss com_err
$ emerge -K e2fsprogs e2fsprogs-libs
Using -BO, emerge will build the new versions of e2fsprogs and e2fsprogs-libs without checking for and complaining about the blocks (This, however, only works if all other dependencies are up to date. You may have to emerge -pvuD e2fsprogs first and emerge -1 all dependencies other than the blocks.) and store the newly compiled files in a tbz2 in your $PKGDIR. Once ss and com_err are removed, you now only need a functioning tar and bz2 (and, of course, portage) to replace the missing libraries. And if portage were to break, untarring the package archives would be trivial.
emerge --fetchonly e2fsprogs-libs e2fsprogs
emerge -C ss com_err
emerge e2fsprogs e2fsprogs-libs
revdep-rebuild
davidbalt
Look, if "A" is updated to include (and block) "B", you can usually simply do
# emerge --onlydeps A
# emerge --nodeps -u A
# emerge -C B
Done this way, you can pull the plug on your box at any time during the process. Your system is never put into an inconsistent state, except perhaps for brief moments while the binaries are installed.
Sometimes things get a little more complicated than that of course... but rendering your system temporarily unbootable is not a good way to go if you can possibly avoid it.
-myosisok
I unmerged the libs, and broke wget, but was able to download and compile a static copy of wget and place it at /usr/bin/wget (saving the orig wget to wget.dynamic) and I was able to re-emerge the libs back in to resolve the block.
But unmerging said libs also broke sudo, so be sure to have a root term open.
-Chris
# emerge --onlydeps A
# emerge --nodeps -u A
# emerge -C B
as a psedo generic solution.
In fact, this left me with an incomplete system.
After I did the above, I was quite broken because apparently there were some "backward compatibility" feature, so that when I compiled "A," in my case, the features of "B" were not built into the resulting package or install.
I had thought I would create a collision, but otherwise work great. No such luck. So I basically did
# emerge --onlydeps A
# emerge --nodeps -u A
# emerge -C B
# emerge -1 A
which still makes my box broken (but only for a bit). This is lame, and it's Gentoo's fault. If I weren't a lazy bastard (and even so, perhaps I will get around to it) I would file (or more likely, find, perhaps with a perfect solution :) ) a bug about this.
Peter
Here's what I did:
emerge --sync
emerge -auDNv --fetchonly world
emerge -C ss com_err
emerge -auDNv --oneshot e2fsprogs-libs e2fsprogs
emerge -auDNv world
yolabingo
so glad for this fix, the last one worked well, and completed it with revdep-rebuild
cheers
rdav
echo sys-libs/com_err >> /etc/portage/package.mask
echo sys-libs/ss >> /etc/portage/package.mask
emerge -pv mit-krb5 e2fsprogs
This will uninstall the com_err and ss automtically, without having to go through uninstalling them manually, which can be very damaging to the system.
This is explained in this bug resolution:
bugs.gentoo.org/show_bug.cgi?id=234907
#37 <- commented by #49