Wednesday, November 19, 2008

Tip: Fixing e2fsprogs block on Gentoo

A portage block as popped up lately on the portage tree. The block regards sys-fs/e2fsprogs, sys-libs/e2fsprogs-libs, sys-libs/ss and sys-libs/com_err.

Normally when facing with blocks on world it just a matter of unmerging the blocking packages, resuming and running revdep-rebuild just in case. However in this particular block were dealing with the system set. This means that while unmerging the blocking packages there a good chance you'll break something... badly.

Here's how to deal with the e2fsprogs block:
  1. $ su
  2. # eix-sync
  3. # emerge --fetchonly e2fsprogs e2fsprogs-libs
  4. # emerge --unmerge com_err ss e2fsprogs
  5. # emerge --oneshot e2fsprogs
Basically on step 3 we've fetched the source for e2fsprogs and e2fsprogs-libs. On step 4 we've unmerged the blockers and finally on step 5 emerge e2fsprogs.

Notice that by unmerging com_err or ss you'd break wget making it impossible to fetch the e2fsprogs and ef2progs-libs packages through portage (though you could fetch them manually). The --oneshot option is used on step 5 as e2fprogs is a system package and should not be in world.

Also consider as a safety precaution adding buildsyspkg to the FEATURES variables in /etc/make.conf as this enables the build of binary packages for just packages in the system set.

9 comments:

Eduard said...

Hi,
Are you sure you do need to do so...? I remember finding this problem some weeks ago and solved it by simply uninstalling the blocked packages, and had no problem emerging later...

Kind regards.

tangram said...

Hi there!

Yes I'm pretty sure you need all this in this particular block.

On a tipical block, as you said, it's just a matter of unmerging the blocked packages, but when dealing with system packages you can end up breaking something.

There are several entries in the mailing lists and forum.

Thanks for the feedback ;-)

Anonymous said...

Hi :-)

This worked great for me! I didn't try buildsyspkg in make.conf and used

emerge --sync

instead of eix-sync.

This solved a problem I've had for weeks. I've seen other solutions posted but yours looked ideal and the explanations made all the difference!

Thanks

tangram said...

Hello,

I'm glad the post helped you out :D

buildsyspkg is just a safety precaution so that if a block does occur in the future you'll have a safety net.

And as you put it, emerge --sync works just fine. Personally I find that eix-sync is faster. If you want to try it out just emerge app-portage/eix and see for yourself.

Best regards.

Anonymous said...

Same as Anonymous said:
- it worked for me.
- problem I've had for weeks (actually needed nfs-utils as I had no mount.nfs for some reason - and that works too now!).
- Explanations help a lot.

Thanks.

Anonymous said...

Thank you so much!! I've got 5 tabs open in my Firefox browser, trying to figure out how to get my nvidia-drivers installed! I'm just a gentoo newbie and I do appreciate whatever online help!

tangram said...

No problem ;)

Regarding NVIDIA driver just follow http://www.gentoo.org/doc/en/nvidia-guide.xml.

Steve_Mac_G said...

Jeah Thx, This 5 Steps solved the Problem for me too. I wget'ed the both tarballs but is still the same as emerge --fetchonly ...

Thx and LG
Steve

tangram said...

Thanks for the feedback Steve!