The Red Hat Installation Program, Anaconda, is the installation program for Red Hat Linux distributions. These distributions include both Fedora and Red Hat Enterprise Linux. During installation, a target computer's hardware is identified and configured, and the appropriate file systems for the system's architecture are created. Finally, Anaconda allows the user to install the operating system software on the target computer. Optionally, Anaconda can upgrade existing installations. Anaconda can run in a fully interactive mode (text or graphical), or in a kickstart mode that allows the installation to be scripted for unattended operation. Kickstart files make deploying hundreds or thousands of systems very cost effective especially when network installation techniques are used.
Anaconda is written primarily in the Python language. The snake paradigm of Python provided the perfect name for the installer, Anaconda. The graphical front-end of Anaconda is written with pyGtk library . Using the Python scripting language for the majority of the installer code allows for easy distribution of updates and the quick development of new features. The C programming language is used for some special functionality in the boot loader subsystem. In addition, the BASH shell scripting language is used for some administrative scripting duties. The entire Anaconda package is distributed under the GPL.
There are two mailing lists that support the Anaconda Installer. The first is the development mailing list. This list is used to discuss the Anaconda Installer development issues, submit patches, and to discuss other activities related to extending Anaconda. The sign up for the development list is located at anaconda development list site . Past discussions can be found in the anaconda development archives .
The second list is a user oriented list on how to create kickstart files. One of the features of the Anaconda Installer is an installation automation mechanism. This is the roll of a kickstart file. Moreover, the kickstart list is the place to discuss issues automation installation issues. The sign up for the kickstart list is located at anaconda kickstart list site . Past discussions can be found in the anaconda kickstart archives .
There are many ways that the Anaconda installer can be expanded. Please visit the Anaconda Vision page to see if there is something that would interest you.
I. Anaconda Introduction
1. Anaconda - is the installer used for Fedora(and also Red Hat Enterprise Linux)
1. The Anaconda installation procedure (from a bootable CD)
- Boot process (from a CD-ROM)
- Anaconda process
II. Anaconda Customization Vs Fedora Customization
- Customizing Anaconda
- Customizing Fedora
III. Anaconda Preparing The Build Environment
1. System Requirements
- Operating System
- Free Disk Space
- Build Times
- RPM Packages
1. Create the Build Environment
- Set environment variables
- Create working directories
IV. Anaconda Customization
1. Install Anaconda source 1. Apply pre-existing patches 1. Modify Anaconda source 1. Test changes made to Anaconda 1. Create a patch file for your custom Anaconda modifications 1. Rebuild Anaconda RPM with custom patch 1. Install newly rebuilt Anaconda RPMs on the build machine 1. Copy newly rebuilt Anaconda RPMS to build tree 1. Run createrepo and pkgorder 1. Run buildinstall
V. Anaconda Customizing Fedora
1. Add/Remove/Update RPM packages
1. Edit comps.xml
1. Check all dependencies are met with getfullcomps
1. Rebuild repository metadata
1. Integrate Custom Fedora into different media (CD/CDs/DVD)
- Single CD
- Multiple CDs
1. splittree and create CD specific metadata 1. Create .iso with mkisofs 1. Implant md5sum with implantisomd5 1. Burn .iso to CD/DVD with wodim
VI. Anaconda Kickstart Integration
1. Using a kickstart file to automate installation 1. Using a kickstart %pre script 1. Using a kickstart %post script
VII. Anaconda Appendices
- Appendix A - Anaconda Options
- Appendix B - Anaconda Binaries
- Appendix C - User Contributed Scripts
- Appendix D - Buildinstall package requirements
- Appendix E - Signing RPM files