You are hereBlogs / David Grant's blog / Switched from Portage to Paludis

Switched from Portage to Paludis


By David Grant - Posted on 20 January 2007

I switched to Paludis yesterday. For those who don't know what Paludis is, it's an alternative Gentoo package manager, or a Portage/emerge replacement. It has not all been smooth. I had to fight with it for a while, re-installing a bunch of packages that thought they depended on an installed package that no longer existed. I think this was because Portage left some cruft around that made it think that. The problems were mainly to do with kdelibs-3.4* (which a lot of installed packages thought they had a block on) and with guile (which moved to a new category but some packages weren't aware of the switch). Re-installing worked in most cases.

The other wrinkle was that the portage2paludis.bash script that I used according to the migration instructions didn't bring all my repositories over, including my /usr/local/portage and a few others. The second annoyance was that a few repositories didn't have profiles/repo_name and profiles/categories files in them (which paludis requires) and this causes a bunch of warnings about how paludis is "faking it." I finally got it to the point where I could do "paludis -ip world" and I got no warnings and no errors.

The only remaining problem is that the gentoo java packages are mostly unusable with paludis because none of the hooks in the java gentoo eclasses get installed into paludis' hooks system (and paludis doesn't call the hooks in the java eclasses). Apparently the Gentoo Java team was "abusing the [portage] hooks in [their] eclasses." They should be installing the hooks into the paludis hooks directories. Paludis hooks are similar to subversion's hooks system. They allow you to do a lot of fancy things.

Overall I am impressed with Paludis. Running "paludis -ip world" is a lot faster than "emerge -uva world" or "emerge -uvaDNt world" but more important than speed is that it was designed from scratch, without all of portage's warts and messy hard-to-change code. In a way, paludis is to portage what svn is to cvs. You can read all about the differences between Paludis and portage here.

One more thing happened yesterday, that was a little bit scary. I tried to reboot to try out a new kernel and I noticed the "reboot" and "shutdown" commands were no longer there. I rebooted anyways but hitting the reset button but the system wouldn't load, it stopped right after the kernel was done starting up. It turned out Paludis had uninstalled sysvinit when I ran "paludis --uninstall-unused" and I didn't notice. Reinstalling it fixed everything but I got really scared that the reboot and shutdown binaries were missing due to dataloss.

Paludis is a bit faster, but a lot stupider on many levels. So far, I'm not even slightly impressed.

Example: Why can't I uninstall a package that is relied on by other packages? I had to use Portage in order to remove qt so that I could install qt-core. If I had used paludis to do the same, I would have had to uninstall ~80 other packages that make use of qt before I could uninstall qt.

So yes, Paludis may, eventually, replace portage, but I don't think it's anywhere close to the point where you can compare the Paludis vs. Portage thing to SVN vs. CVS. Paludis has some performance improvements over Portage and better use of overlays (which is the only thing keeping me using it, right now - I hate having to keyword specific programs, so the fact that it allows me to keyword an entire overlay has made me unwilling to completely move back to portage), but it seems to be following in the steps of package managers from other distros, in the sense that it is assuming the user is stupid.

"Why can't I uninstall a package that is relied on by other packages?"

Looks like you missed the "--permit-unsafe-uninstalls" option, which is explicitly mentioned when you try to uninstall such packages.

I did see that option, but goodness, is that a lot of typing. And I used to hate "emerge --unmerge" because I thought it was too much typing. Anyway, in my flurry of typing, I forgot about noticing that option, because the possibility of using it was just a fleeting thought in my mind.

Paludis is partially grown on me, through use. I can see how it's a viable alternative. It's looking less like a retarded monkey and more like a normal monkey, to me, now. Portage is like another species of mammal.

I'm still pretty sure that I'll be sticking with portage, next time I reinstall gentoo (which is something I do far too regularly, just because I get bored). Paludis has some cool features, but the vast amount of typing, the lack of a --ask option, and the fact that debugging info is scarce (I can't figure out why it wants to install an older version of kpat - one which is not in any of my overlays) make me not want to bother. (And about the kpat thing, I uninstalled that version, using the --with-dependencies option, and the only thing that got uninstalled was kpat. So either a certain version of kpat or one of the programs that depends on it was left in my world file after I uninstalled it (possibly from back when i removed qt using portage), or some program is being upgraded to a version that requires a version of kpat that doesn't exist in the same overlay. I guess it probably has to do with removing qt (although, that doesn't make sense to my brain, since kpat should depend on qt, not the other way around), but that's beside the point. When I run paludis -i world, all I get is a line saying that kpat:kde-4 doesn't exist. I would expect something about which program is being installed which requires kpat:kde-4, or something else that would help.

I'll stick with the combo of portage and portato, next time. Much as I love the command line, GUIs are nice.

I have to say, though, paludis has a MUCH nicer uninstall process in certain situations. It still bothers me that it defaults to failing when I'm trying to uninstall an application that other apps depend on, but when I actually want to uninstall all things that depend on a certain application, or when I want to uninstall everything from a specific overlay or a specific version (such as */*:kde-4, which I did after uninstalling kpat:kde-4 and its dependencies), paludis works beautifully. Portage has a much more basic unmerge process, which seems like it's designed to leave bits of trash lying around on the hard drive.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <s> <img> <h2> <h3>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.
By submitting this form, you accept the Mollom privacy policy.