Generated by GPT-5-mini| Anaconda (installer) | |
|---|---|
![]() Override8188 · CC BY-SA 4.0 · source | |
| Name | Anaconda |
| Title | Anaconda (installer) |
| Developer | Red Hat, Fedora Project, CentOS Project |
| Released | 1999 |
| Programming language | Python (programming language), C (programming language) |
| Operating system | Linux kernel |
| License | GPL |
Anaconda (installer) Anaconda is a graphical and text-based system installer used by major Red Hat-related distributions including Red Hat Enterprise Linux, Fedora Project, and CentOS Project. It provides automated and interactive installation flows that integrate with package management systems such as RPM Package Manager and orchestration tools like Kickstart (software) for unattended deployment. Anaconda is written primarily in Python (programming language) with components in C (programming language) and interfaces to projects such as D-Bus and systemd.
Anaconda furnishes installer functionality for distributions derived from Red Hat lineage, coordinating disk partitioning, package selection via YUM and DNF (software), network configuration with NetworkManager, and bootloader setup involving GRUB. It supports both graphical installers using GTK toolkits and text-mode workflows compatible with console environments, integrating with system initialization frameworks like systemd and packaging metadata from RPM Package Manager. The installer exposes APIs consumed by projects such as Cockpit (software), Ansible, and Pungi (software) for image composition and orchestration.
Development began in the late 1990s as part of early Red Hat distribution efforts and evolved alongside projects like Fedora Project after the 2003 rebranding. Over time Anaconda incorporated technologies from GNOME Project and KDE ecosystems to provide improved user experiences, while adoption across distributions like CentOS Project and Scientific Linux broadened its user base. Major refactors introduced modularization, integration with systemd during the 2010s, and migration of installers to rely more heavily on Python (programming language) and DBus plumbing used by Red Hat Enterprise Linux engineers and contributors from the Fedora Project community.
Anaconda implements a modular architecture separating UI frontends, storage management, package installation, and networking. Storage tasks use components that interact with LVM (Logical Volume Manager), DOS, and GPT partitioning schemes, as well as filesystems like ext4, XFS, and Btrfs. Package orchestration leverages RPM Package Manager metadata and repositories served via HTTP, FTP, and NFS protocols, interoperating with DNF (software) or legacy YUM tooling. Networking and remote installation capabilities use PXE boot and integration with Cobbler (software) or Foreman (software) for provisioning. The installer exposes sane defaults for GRUB configuration and SELinux contexts consistent with Security-Enhanced Linux policies used in Red Hat Enterprise Linux.
Anaconda supports multiple media and network-based installs: bootable ISO images generated by tools like Pungi (software), virtual media for platforms such as VMware ESXi, KVM hypervisors, and cloud-init enabled images for cloud platforms like Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Network boot deployment uses PXE and TFTP workflows common in data centers managed with Cobbler (software) or Foreman (software), while automated pipelines employ configuration management with Ansible or orchestration via Jenkins. Live image installations and container image builds produced by Kickstart (software) allow repeatable provisioning for OpenStack and bare-metal environments such as those managed by MAAS (software).
Customization is primarily achieved through Kickstart (software), a declarative file format supported by Anaconda for unattended installations. Kickstart files specify partitioning, package selection from RPM Package Manager repositories, pre- and post-install scripts, and network setup, enabling integrations with Koji (software) or Pungi (software) build systems. Administrators can embed custom SELinux policies, SSH keys, and user provisioning directives, while using configuration management hooks to call out to Puppet (software), Chef (software), or Ansible during initial boot. Tools such as system-config-kickstart and community projects from the Fedora Project ecosystem assist in generating Kickstart templates.
Anaconda supports architectures commonly targeted by enterprise and community distributions, including x86-64, ARM (architecture), and legacy i386 in some forks. It is used to install on physical servers from vendors like Dell Technologies, Hewlett Packard Enterprise, and Lenovo, as well as virtualized platforms such as VMware ESXi, KVM, Xen Project, and cloud instances on Amazon Web Services and Microsoft Azure. Hardware support includes storage controllers managed via libata, network adapters with drivers from Kernel.org tree, and firmware interactions common in servers compliant with UEFI and BIOS boot standards.
Anaconda development follows security practices coordinated with upstream projects such as Fedora Project and Red Hat security teams, addressing vulnerabilities in dependency stacks like Python (programming language) libraries and installer components. Maintenance includes regular updates timed to distribution release cycles, integration tests using continuous integration services maintained by Fedora Project contributors, and advisories coordinated through vendor channels like Red Hat Customer Portal for enterprise consumers. The installer enforces secure defaults including SELinux modes, encrypted LUKS containers using cryptsetup, and reproducible Kickstart deployments to reduce attack surface during provisioning.
Category:Linux installation software