Recently I started thinking about writing my own automatic installer that would set up my system exactly the way I want.
I looked at the official Arch install scripts to see if I could reuse parts of their code, but unfortunately the code was just one big chunk of bash code with the main program and "flow control" (you must first do this step, then that), UI-code (dialogs etc) and backend logic (create filesystems, ...) all mangled up and mixed very closely together.
Functionality-wise the installer works fine, but I guess the code behind it is the result of years of adding features and quick fixes without refactoring, making it impossible to reuse any of the code.
So I started to write AIF: the Arch Linux Installation Framework (actually it had another name until recently), with these 3 goals in mind:
::Read from here
Right now most of the hard work is done and the ported version of /arch/setup seems to work more or less.
I've posted to the arch-general mailing list and the responses I got were very positive.
This is what Aaron Griffin (lead developer of Arch Linux) said:
My honest opinion is that this is awesome. You're the reason I love open source 8)
That said, we haven't release a 2.6.27 ISO just yet, and I need to go
in panic mode and get it out this weekend. But for the next release,
or even a smaller release before then, I'd *love* to incorporate this.
Just letting you know: I'm not silent because I don't care. I'm silent
because I'm watching and drooling 8)
You can read the whole thread here: http://www.nabble.com/Fifa:-Flexible-Installer-Framework-for-Arch-linux-...
Right now I encourage people to try it out. All known bugs are documented in the TODO file, there are probably more that I didn't discover yet. But it should work pretty well.
I'm very curious for input on the code/design level as well.
Hopefully the Arch guys can set me up with a bugtracker and make some sort of announcement to the community to try it out...
could we get a port of this for gentoo?
install, but choose kernel, package manager, repositories, flags, etc
Posted by Anonymous on Mon Nov 17 10:20:56 2008
This is ironic; while writing AIF I was actually wondering if I could build a Gentoo installer with it too. (I've used Gentoo for a long time and I'm still using it on one of my boxes)
The thing is: it's possible, but AIF right now is about 2400 lines of code. I estimate that about 1000-1500 LOC are distro-independent right now or can be made distro-independent (eg the main program/logic, the UI-lib, partitioning, making file systems, installing the bootloader etc), while the rest is specific for the distro (installation of packages, configuring the system etc).
So yes it can be done, but the Gentoo-specific things wil need to be implemented by someone anyway, and I'm not interested in/don't have time for doing that right now. The not-gentoo-specific things are ready to be used. (some things may need a bit cleaning up though)
Patches are welcome and if people want to get support for Gentoo into this I can assist and collaborate.
Because of the re-usability you basically only need to override the functions that are Gentoo-specific (eg installing the package manager etc)
Posted by Dieter_be on Mon Nov 17 15:51:12 2008
I wanted to create an installation ISO on my own with local custom repositories (the one I have is named "carolo").
I created the right pacman.conf, copied it into the directory structure of archiso (overlay) and so on.
If I create the image and start the installation without pacman -Sy, the AIF does not find any package (the first is hal and it is not found).
If I do pacman -Sy before than everything works, except the local package "carolo". But it works with pacman -Sy, so pacman updates the repository.
I added "carolo" to TARGET_REPOS, but it does not work.
Do you know why it does not work?
Posted by Dustin on Wed Nov 18 04:26:51 2009