2011-05-31

Doing an Everything Install

A long time ago, far far away there was an Operating System named Red Hat Linux. In that Operating System there was an installer which had an option called "( ) Install Everything". Now "( ) Install Everything" was a wonderful tool for QA a release because one could get everything onto one system and find all the problems people could run into (oooh need more than 8GB to install stuff, oh look package XYZ conflicts with ABC, oh hey this package if installed will reboot your system.). It was also a bane of developers because people by their nature will install everything and then open bugs because one really only wanted Reboot-My-Box-Daily-0.1.rpm installed if you knew what you were doing. And because so many people would install everything and complain about things like "My goodness Red Hat Linux is bloated! It takes over 8 GB to install now.", it was decided to remove it.

The feature would get removed in betas, people would complain and it would show up again.. until finally late Red Hat Linux or early Fedora release it was removed for good. This fixed various issues, but for those of us who like to have broken systems (I am looking at you Jonathan Corbet of LWN.net), it made things harder to find. This last weekend I decided to install a box and see various things:

  1. Can someone do an everything install using the installer or yum ?
  2. How much diskspace does an "everything install" take these days ?
  3. What problems will I run into trying to do this?
  4. Will a system work after I have done this install?
Well here are the answers to the questions with tl;dr; answers in bold.

  1. Can someone do an everything install? No, no they can't.
    Fedora 15 is HUGE. After a lot of conflict fixing, problematic packages and such, I ended up with 18586 packages taking up 76GB.

    While one can click on every option in anaconda or try a "yum install *" on the command line after the install, they will run into multiple problems. First there are outright conflicts like generic-release conflicts with fedora-release (there are 45 conflicts I found of this type). Then there are multilib issues yum will point out where xyz-1.0.i686 won't install with xyz-1.0.x86_64. And finally we have file system level conflicts that have somehow creeped into the repository (33 packages came up as conflicting here). Eventually I ended up with a long "yum install --exclude="*.i686" --exclude.. --skip-broken '*'" that worked (sort of).
  2. How much diskspace does an everything install take? Over 76 GB.
    While installing packages I kept running out of space early on. I forgot that I had installed yum plugins which stored every download in a _local database.. this uhm made my disk space usage larger than expected. But cleaning that out got me going again. I still needed more disk space for the remaining ~5600 packages I could not install.
  3. What problems will I run into trying to do this? Lots. Between dealing with php-pear packages hanging for no known reason, packages that would fire off cron jobs every hour, and various other issues, this was a long labour of getting the system into a very broken state.
  4. Will a system work after I have done this install? No. First off installing upstart and systemd on the same system makes a broken box PERIOD. It took several reboots into rescue mode and removing all packages labeled upstart to get the system working. After that there is dealing with all OLPC/Sugar. These packages are meant to work on a dedicated system and I had to remove various ones to get the box to "boot". Following that you will need to deal with interactions with bootchart and grub+grub2. This took even more reboots into single usermode. After 2 days of futzing I am at the point where I can get into runlevel 3... sort of.

All in all, it has been an interesting experience. It should be clear to people lamenting the loss of "( ) Install Everything" that adding it would currently not work in any shape or form. If it were ever to return, a lot of stuff would need to be removed or repackaged in order for it to "work". It also showed that the vastness of Fedora currently has many many types of conflicts that aren't taken into account for just by "yum".

No comments: