Anaconda

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
m (1 revision(s))
(Complete moin conversion...mostly change pre tags to spaces.)
Line 1: Line 1:
= Anaconda =
+
[[Anaconda]] is the installation program used by Fedora, Red Hat Enterprise Linux and [[Anaconda/Distros| some other distributions]] .
 
+
 
+
 
+
anaconda is the installation program used by Fedora, Red Hat Enterprise Linux and [[Anaconda/Distros| some other distributions]] .
+
  
 
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.  anaconda can also upgrade existing installations of earlier versions of the same distribution.  After the installation is complete, you can reboot into your installed system and continue doing customization using [[FirstBoot|  firstboot]] .
 
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.  anaconda can also upgrade existing installations of earlier versions of the same distribution.  After the installation is complete, you can reboot into your installed system and continue doing customization using [[FirstBoot|  firstboot]] .
Line 10: Line 6:
  
 
== Users ==
 
== Users ==
 +
 
If you are a user having problems with anaconda, please use the user support forum for your distribution such as [http://forums.fedoraforum.org/forumdisplay.php?f=6 Fedora Forum] .  There are a few useful documents for users under [[Anaconda/UserTips| UserTips]] , but generally, this is dedicated to developers and advanced users of anaconda.
 
If you are a user having problems with anaconda, please use the user support forum for your distribution such as [http://forums.fedoraforum.org/forumdisplay.php?f=6 Fedora Forum] .  There are a few useful documents for users under [[Anaconda/UserTips| UserTips]] , but generally, this is dedicated to developers and advanced users of anaconda.
  
Line 15: Line 12:
  
 
== Advanced Users ==
 
== Advanced Users ==
 +
 
If you are an advanced user of anaconda, you should check out [[Anaconda/Options|  our reference to anaconda command line options]]  and [[Anaconda/Kickstart| our kickstart file format documentation]] .
 
If you are an advanced user of anaconda, you should check out [[Anaconda/Options|  our reference to anaconda command line options]]  and [[Anaconda/Kickstart| our kickstart file format documentation]] .
  
Line 20: Line 18:
  
 
== Distribution Builders ==
 
== Distribution Builders ==
 +
 
For information on how to customize anaconda and trees created with it, please see [[Anaconda/BuildDocProject| BuildDocProject]]  and [[Anaconda/Customization| Customization]] .
 
For information on how to customize anaconda and trees created with it, please see [[Anaconda/BuildDocProject| BuildDocProject]]  and [[Anaconda/Customization| Customization]] .
  
 
== Developers ==
 
== Developers ==
 +
 
anaconda is primarily written in the [http://www.python.org/ Python language] .  The graphical front-end of anaconda is written with [http://www.pygtk.org/ pyGtk library]  and [http://glade.gnome.org glade interface description files] .  Using Python for the majority of the installer code allows for easy distribution of updates and the quick development of new features.  The loader, which handles loading the large main portion of anaconda, module loading, and other boot up tasks, is written in the C programming language.  Some other minor hardware-specific portions of anaconda are also written in C.  In addition, bash and python scripts are used for some administrative scripting duties.
 
anaconda is primarily written in the [http://www.python.org/ Python language] .  The graphical front-end of anaconda is written with [http://www.pygtk.org/ pyGtk library]  and [http://glade.gnome.org glade interface description files] .  Using Python for the majority of the installer code allows for easy distribution of updates and the quick development of new features.  The loader, which handles loading the large main portion of anaconda, module loading, and other boot up tasks, is written in the C programming language.  Some other minor hardware-specific portions of anaconda are also written in C.  In addition, bash and python scripts are used for some administrative scripting duties.
  
Line 28: Line 28:
  
 
=== Mailing Lists ===
 
=== Mailing Lists ===
 +
 
There are two mailing lists for anaconda.  The first is the development mailing list.  This list is used to discuss development issues, submit patches, and other activities related to extending anaconda.  The sign up for the development list is located at [https://listman.redhat.com/mailman/listinfo/anaconda-devel-list anaconda development list site] .  Past discussions can be found in the [https://www.redhat.com/archives/anaconda-devel-list anaconda development archives] .
 
There are two mailing lists for anaconda.  The first is the development mailing list.  This list is used to discuss development issues, submit patches, and other activities related to extending anaconda.  The sign up for the development list is located at [https://listman.redhat.com/mailman/listinfo/anaconda-devel-list anaconda development list site] .  Past discussions can be found in the [https://www.redhat.com/archives/anaconda-devel-list anaconda development archives] .
  
Line 51: Line 52:
  
 
== Getting the Source ==
 
== Getting the Source ==
 +
 
The primary methods of distributing the anaconda source are source RPMs in the [http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/ Fedora development tree]  and git.  To access the current source code in in non-rpm format, you'll need to install git.
 
The primary methods of distributing the anaconda source are source RPMs in the [http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/ Fedora development tree]  and git.  To access the current source code in in non-rpm format, you'll need to install git.
<pre>
+
 
yum install git
+
yum install git
</pre>
+
 
 
Note that several related packages will be installed as well.  After the git source code management tool has been installed, then you use anonymous git access to the Anaconda repository.
 
Note that several related packages will be installed as well.  After the git source code management tool has been installed, then you use anonymous git access to the Anaconda repository.
<pre>
+
 
git clone git://git.fedorahosted.org/anaconda.git
+
git clone git://git.fedorahosted.org/anaconda.git
</pre>
+
  
 
The output may look similar to the following:
 
The output may look similar to the following:
  
<pre>
+
Initialized empty Git repository in /home/drkludge/anacondatest/anaconda/.git/
Initialized empty Git repository in /home/drkludge/anacondatest/anaconda/.git/
+
remote: Generating pack...
remote: Generating pack...
+
remote: Counting objects: 10861
remote: Counting objects: 10861
+
remote: Done counting 91222 objects.
remote: Done counting 91222 objects.
+
remote: Deltifying 91222 objects...
remote: Deltifying 91222 objects...
+
remote:  100% (91222/91222) done
remote:  100% (91222/91222) done
+
Indexing 91222 objects...
Indexing 91222 objects...
+
100% (91222/91222) done
100% (91222/91222) done
+
remote: Total 91222 (delta 68785), reused 90187 (delta 68059)
remote: Total 91222 (delta 68785), reused 90187 (delta 68059)
+
Resolving 68785 deltas...
Resolving 68785 deltas...
+
100% (68785/68785) done
100% (68785/68785) done
+
Checking 543 files out...
Checking 543 files out...
+
100% (543/543) done
100% (543/543) done
+
</pre>
+
 
+
  
  
 
If you have committer access to anaconda, then you will want to use the git+ssh access url.
 
If you have committer access to anaconda, then you will want to use the git+ssh access url.
  
<pre>
+
git clone git+ssh://git.fedorahosted.org/git/anaconda.git
git clone git+ssh://git.fedorahosted.org/git/anaconda.git
+
  
  
git clone ssh://git.fedorahosted.org/git/anaconda.git
+
git clone ssh://git.fedorahosted.org/git/anaconda.git
</pre>
+
  
 
Once you've committed changes locally, you can push them with
 
Once you've committed changes locally, you can push them with
  
<pre>
+
git push
git push
+
</pre>
+
  
 
If you would just like to browse the Anaconda git repository via the web, then please use one of the following two [http://git.fedorahosted.org/git/anaconda.git Anaconda git URLs] .
 
If you would just like to browse the Anaconda git repository via the web, then please use one of the following two [http://git.fedorahosted.org/git/anaconda.git Anaconda git URLs] .
  
<pre>
 
 
http://git.fedorahosted.org/git/anaconda.git
 
http://git.fedorahosted.org/git/anaconda.git
 
  
 
http://git.fedorahosted.org/git/?p=anaconda.git;a=summary
 
http://git.fedorahosted.org/git/?p=anaconda.git;a=summary
</pre>
 
  
 
== Reporting Problems ==
 
== Reporting Problems ==
 +
 
If you are having difficulty installing, please file the problem report with your distribution vendor.
 
If you are having difficulty installing, please file the problem report with your distribution vendor.
  
Line 123: Line 115:
 
* MartinSivak (msivak):  Works mostly on maintenance of anaconda, but is also one of the main developers of FirstAidKit.
 
* MartinSivak (msivak):  Works mostly on maintenance of anaconda, but is also one of the main developers of FirstAidKit.
  
----
 
 
[[Category:Anaconda]]
 
[[Category:Anaconda]]

Revision as of 02:25, 28 May 2008

Anaconda is the installation program used by Fedora, Red Hat Enterprise Linux and some other distributions .

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. anaconda can also upgrade existing installations of earlier versions of the same distribution. After the installation is complete, you can reboot into your installed system and continue doing customization using firstboot .

anaconda is a fairly sophisticated installer. It supports installation from local and remote sources such as CDs and DVDs, images stored on a hard drive, NFS, HTTP, and FTP. Installation can be scripted with kickstart to provide a fully unattended installation that can be duplicated on scores of machines. It can also be run over VNC on headless machines. A variety of advanced storage devices including LVM, RAID, iSCSI, and multipath are supported from the partitioning program. anaconda provides advanced debugging features such as remote logging, access to the python interactive debugger, and remote saving of exception dumps.

Contents

Users

If you are a user having problems with anaconda, please use the user support forum for your distribution such as Fedora Forum . There are a few useful documents for users under UserTips , but generally, this is dedicated to developers and advanced users of anaconda.

From time to time, we may distribute updates for anaconda to fix problems in Fedora releases. The updates wiki page explains how to use these updates images.

Advanced Users

If you are an advanced user of anaconda, you should check out our reference to anaconda command line options and our kickstart file format documentation .

There is a mailing list devoted to the use of kickstart. You can find the list signup and archive information at [1] . This is the best place to share tips and tricks about kickstart.

Distribution Builders

For information on how to customize anaconda and trees created with it, please see BuildDocProject and Customization .

Developers

anaconda is primarily written in the Python language . The graphical front-end of anaconda is written with pyGtk library and glade interface description files . Using Python for the majority of the installer code allows for easy distribution of updates and the quick development of new features. The loader, which handles loading the large main portion of anaconda, module loading, and other boot up tasks, is written in the C programming language. Some other minor hardware-specific portions of anaconda are also written in C. In addition, bash and python scripts are used for some administrative scripting duties.

The entire Anaconda package is distributed under the GPL.

Mailing Lists

There are two mailing lists for anaconda. The first is the development mailing list. This list is used to discuss development issues, submit patches, and 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. The kickstart list is the place to discuss automated 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 is also the #anaconda IRC channel on irc.freenode.org. This resource is for discussion of anaconda development, not for distribution customization questions.

Developers' Guide

If you want to work on anaconda, you should start with the Source Overview , which contains a high level discussion of the source files and what they do. Then look at the stage1 development guide and the stage2 development guide for information on how to test, debug, and develop for these two parts of anaconda.

Familiarize yourself with the tools that anaconda uses. Check out the following external reference documents:

Once you're up and running, you should check out future work items for anaconda to see what we'd like to have done.

There's also some tips on the building anaconda page describing how to compile and create a new version of the anaconda package.

The anaconda API reference is an ongoing effort to document the anaconda source code. This is far from complete, but getting better all the time.

Getting the Source

The primary methods of distributing the anaconda source are source RPMs in the Fedora development tree and git. To access the current source code in in non-rpm format, you'll need to install git.

yum install git

Note that several related packages will be installed as well. After the git source code management tool has been installed, then you use anonymous git access to the Anaconda repository.

git clone git://git.fedorahosted.org/anaconda.git

The output may look similar to the following:

Initialized empty Git repository in /home/drkludge/anacondatest/anaconda/.git/
remote: Generating pack...
remote: Counting objects: 10861
remote: Done counting 91222 objects.
remote: Deltifying 91222 objects...
remote:  100% (91222/91222) done
Indexing 91222 objects...
100% (91222/91222) done
remote: Total 91222 (delta 68785), reused 90187 (delta 68059)
Resolving 68785 deltas...
100% (68785/68785) done
Checking 543 files out...
100% (543/543) done


If you have committer access to anaconda, then you will want to use the git+ssh access url.

git clone git+ssh://git.fedorahosted.org/git/anaconda.git


git clone ssh://git.fedorahosted.org/git/anaconda.git

Once you've committed changes locally, you can push them with

git push

If you would just like to browse the Anaconda git repository via the web, then please use one of the following two Anaconda git URLs .

http://git.fedorahosted.org/git/anaconda.git

http://git.fedorahosted.org/git/?p=anaconda.git;a=summary

Reporting Problems

If you are having difficulty installing, please file the problem report with your distribution vendor.

Before filing a bug, please read up on BugReporting how to fill out useful bug reports that will help us quickly solve your problem. Also try searching bugzilla for other reports about your problem, as some bugs are often filed by several people.

CommonBugs is a list of common anaconda bug reports you may wish you check before filing a duplicate.

Anaconda Team

In alphabetical order, the following people are the anaconda team and are responsible for the majority of commits. Of course, we get help from other people both from Red Hat and from the volunteer community as well.

  • DavidCantrell (dcantrell): Works mostly on networking within anaconda, but is also the upstream maintainer of parted and pyparted. He has also worked on building up interest in s390 within Fedora.
  • JoelAndresGranados (jgranado): Works mostly on maintenance of anaconda, but is also one of the main developers of FirstAidKit.
  • PeterJones (pjones): Works on all things related to partitioning and boot loaders. He also deals with system startup stuff such as mkinitrd and various other programs.
  • JeremyKatz (katzj): Comes up with all the crazy new ideas for anaconda including the livecd, partition resizing, and the new package selection interface. He also does general bug fixing throughout anaconda.
  • DaveLehman (dlehman): Works mostly on maintenance of anaconda, but was responsible for the encrypted device support in the file system code.
  • ChrisLumens (clumens): Works mostly on everything around kickstart but also does firstboot and general bug fixing throughout anaconda.
  • MartinSivak (msivak): Works mostly on maintenance of anaconda, but is also one of the main developers of FirstAidKit.