Wednesday, July 11, 2007

Linux installers bumbo-jumbo

On Monday, I decided, as a kind of change-activity rest, to review the situation on Linux installers market. I had closer look at what big players use, as well as googled and searched SF.net. Well, a generic, truly modular, lighweight and elaborated installer doesn't seem to exist. So, if we speak reuse, then considering an installer of specific distro is apparently the way to go. And big players are:

  • RedHat systems with Anaconda, written in Python (PyGTK) but with bunch of C code too. Seemed like nice design, I even checked out CVS repo, and tried to make it show me some dialog without complete build. Nah, written in Python doesn't automatically mean it's written nice. Building it also didn't work - it depends on bunch of RH-authored libs, which don't even packaged in Gentoo for example.
  • Debian with Debian Installer. This is apparently largely written in C, as one of the design goals was to support all architecture set of Debian, in particular lowy ARMs. The default version is text-mode, but recently(?) they got also GUI version (GTK+, and they build it against DirectFB). It is also said to be modular and reusing other Debian components, like debconf, and indeed, looking at the SVN repo from bird's view in browser was scary enough that I didn't proceed to specifics.
  • Ubuntu's Express-Espresso-Ubiquity. Reuse at run. Uses Debian Installer as the backend, with (apparently Python) frontend.
  • Gentoo Installer. This one will be finished when it will be finished, plus also I managed to spot bunch of UML diagrams but not the language it's written in.
Not very bright results. And thinking of it, the only thing in installer which calls for reusing some existing implementation is disk partitioning (and yes, PDAs do have secondary storage, and most users want to install Linux there (even though most of those most may not yet know that)). The rest of installer's work is pretty trivial and could be coded in Python in a day or two.

Well, ground-level solution is just present users with generic GUI partitioning app, and let them do partitioning themselves, right? So, I decided to quickly try how GParted runs on a common PDA, and that's all subject for another post.

No comments: