Anaconda is a free and open-source system installer for Linux distributions.

Anaconda
Developer(s)Anaconda Team
Initial release1999; 25 years ago (1999)
Stable release
41.1-1[1] Edit this on Wikidata / 15 February 2024
Repository
Written inPython and C
Operating systemLinux
Available inMultilingual
TypeSystem installer
LicenseGPLv2 (Free software)
Websitefedoraproject.org/wiki/Anaconda

Anaconda is used by Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Rocky Linux, AlmaLinux, CentOS, MIRACLE LINUX, Qubes OS, Fedora, Sabayon Linux and BLAG Linux and GNU, also in some less known and discontinued distros like Progeny Componentized Linux, Asianux, Foresight Linux, Rpath Linux and VidaLinux.[2]

Functionality

edit
 
Anaconda installing CentOS 7 in text mode

Anaconda offers a text-mode and GUI mode, so users can install on a wide range of systems. It is designed to be easily portable and supports a wide range of hardware platforms (IA-32, Itanium, DEC Alpha, IBM ESA/390, PowerPC, ARMv8). It supports installing from local storage devices like CD-ROM drives and harddisks as well as from network resources via FTP, HTTP, or NFS. Installations can be automated with the use of a kickstart file, that automatically configures the installation, allowing users to run it with minimal supervision. Before starting the OS installation process, the installer checks the system hardware and resource requirements. Only if the requirements are satisfied does it start the installation process.

Technology

edit

It is mainly written in Python with some modules written in C. It has a graphical frontend that is based on GTK  3/PyGObject and designed with the Glade Interface Designer. Anaconda also has a custom text frontend with support for computers with line printer like terminals, such as the IBM ESA/390 mainframes. A future update will introduce a Firefox based Web UI, replacing the currect GTK  3 based GUI.[3]

Under the hood

edit

The Anaconda installer provides various useful tools and commands for both users with specific installation needs as well as for debugging issues with the installer itself or OS installation in general.

Anaconda supports a rich set of options [4] that can be passed to the boot command line to influence installation behaviour. There is also a root shell running on TTY2 available for the user to inspect the installation environment during the installation run.

There are also various useful files in the installation environment:

  • /tmp/anaconda.log - contains Anaconda related log messages (Anaconda also logs to journal)
  • /root/lorax-packages.log - contains a list of names and versions of all packages that have been used to create the installation image
  • /mnt/install/ks.cfg contains the kickstart used for the installation run (if any)

After a successful installation, Anaconda stores various important files from the installation run on the system itself. This makes it possible to check how the system was installed even at a later time.

  • installation logs are stored in /var/log/anaconda
  • a kickstart file describing option selected during the installation run is stored in /root/anaconda-ks.cfg

The anaconda-ks.cfg file found on a system can be used (possibly with small changes) to install a very similar system again.

See also

edit

References

edit
  1. ^ "Release 41.1-1". 15 February 2024. Retrieved 18 February 2024.
  2. ^ "Anaconda/Distros - Fedora Project Wiki". fedoraproject.org. Retrieved 2020-05-02.
  3. ^ "Reimagining the Fedora Linux installer: Anaconda's new Web UI". 11 November 2024.
  4. ^ "Anaconda Boot Options"
edit