From Fedora Project Wiki
Anaconda.png


Anaconda это программа установки которая применяется в Fedora, Red Hat Enterprise Linux и некоторых других дистрибутивах.

Во время установки идентифицируется и настраивается аппаратная часть целевого компьютера и создается подходящая файловая система для данной архитектуры. Наконец, анаконда позволяет пользователи установить программное обеспечение на целевой компьютер. Анаконда так же может обновить существующий дистрибутив предыдущей версии. После того как установка завершена, вы можете перезагрузить систему и продолжить настройку только что установленной системы с помощью firstboot .

anaconda является достаточно современным установщиком. Он позволяет выполнять установку с локальных или удаленных источников, таких как CD и DVD, образы размещенных на жестких дисках, NFS, HTTP и FTP. Может быть создан сценарий установки с помощью kickstart для обеспечения полностью автоматической установки, позволяющей дублировать систему на ряд компьютеров. Установка может быть запущена через VNC на компьютерах без монитора. Программа разметки диска поддерживает продвинутые устройства хранения такие как LVM, RAID, iSCSI и multipath. anaconda предоставляет современные инструменты отладки, такие как удаленная авторизация и доступ к интерактивному отладчику python и удаленному сохранению дампов исключений (exception dumps).

Пользователи

Если вы испытываете проблемы при использовании anaconda, пожалуйста, используйте форум поддержки для вашего дистрибутива, такой как Fedora Forum. Существует несколько полезных документов для пользователей UserTips, но в основном они предназначены для разработчиков и продвинутых пользователей anaconda.

Время от времени мы может распространять обновления для anaconda для устранения проблем в выпусках Fedora. ВиКи страница обновлений поясняет как использовать образы для обновления.

Высококвалифицированные пользователи

Если вы высококвалифицированный пользователь anaconda вы можете просмотреть справку по параметрам командной строки anaconda, документацию по формату kickstart файла и справку по возможностям anaconda ведения журнала установки.

Существует список рассылки посвященный использованию kickstart. Вы можете найти список подписчиков и архив списка рассылки тут [1] . Это самое лучшее место на размещения советов и приемов по использованию kickstart.

Сборщики дистрибутивов

За информацией по тому как подогнать anaconda и дерево каталогов создаваемое этой программой под свои нужды, смотрите страницы BuildDocProject и Customization .

Разработчики

Anaconda в основном написана на языке Python. Графическая оболочка anaconda написана с помощью библиотеки pyGtk и glade interface description files . Использование Python в качестве основного кода установщика позволяет легко распространять обновления и быстро разрабатывать новые функции. Загрузчик, который управляет загрузкой больших, самых основных, фрагментов anaconda, загрузкой моделей и другими стартовыми задачами, написаны на языке программирования C. Некоторые незначительные фрагменты, специфичные для аппаратной части, anaconda также написаны на C. Кроме того, используются сценарии bash и python для некоторых административных задач.

Весь пакет Anaconda распространяется под лицензией GPLv2.

Списки рассылки

Существует два списка рассылки для Anaconda. Первый - список рассылки разработчиков. Этот список используется для обсуждения задач по разработке, утверждения патчей и другой деятельности связанной с расширение программы anaconda. Подписаться на данный список рассылки можно на странице списка разработчиков anaconda . Старые дискуссии можно найти в архиве списка разработчиков anaconda .

Второй список ориентирован на пользователей желающих создавать файлы сценариев kickstart. Список kickstart предназначен для обсуждения вопросов автоматической установки. Подписаться на этот список рассылки можно насайте списка anaconda kickstart. Прошлые обсуждения можно найти в архиве anaconda kickstart .

Существует #anaconda IRC чат на irc.freenode.org. Этот ресурс предназначен для обсуждения вопросов разработки anaconda, а не для обсуждения вопросов настройки.

Руководство разработчика

Если вы собираетесь участвовать в разработке Anaconda, необходимо начать с обзора исходников , который содержит, достаточно сложное технически, обсуждение исходных текстов и того для чего он предназначен. Затем взгляните на руководство разработчика первого уровня и руководство разработчика второго уровня , за информацией о том как тестируется, отлаживается и разрабатываются эти две части anaconda.

Ознакомьтесь с инструментами которые использует anaconda. Просмотрите следующие документы:

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.

Получение исходных текстов

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/git/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

To contribute you should read our Branching policy first.

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 How to debug installation problems, which will tell you 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.

AnacondaBugWorkflow is a guideline to how Fedora anaconda bugs pass through bugzilla, and what all the various statuses really mean. This is only for Fedora.

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.
  • 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.
  • AlesKozumplik (akozumpl): Works on the logging subsystem and LiveCD.
  • 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.
  • RadekVykydal (rvykydal): Works mostly on maintenance of anaconda.
  • HansdeGoede (hansg): system specific portions

Anaconda Team Emeritus

  • 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.
  • JoelAndresGranados (jgranado): Works mostly on maintenance of anaconda, but is also one of the main developers of FirstAidKit. Also maintainer of parted.