From Fedora Project Wiki

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. Просмотрите следующие документы:

Как только вы создали и запустили программу, вам необходимо проверить будущие возможности anaconda .

Существует несколько советов по сборке anaconda, описывающих как выполнить сборку и создать новую версию пакета anaconda.

anaconda API reference является результатом наших усилий по созданию документации по исходному коду anaconda. Что далеко, пока, от выполнения, но становится все лучше и лучше.

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

Основными способами распространения исходных кодов anaconda является RPMs с исходниками, которые можно получить дереве разработки Fedora, а также git. Чтобы получить доступ к текущим исходным кодам в не-rpm формате, вам необходимо установить git.

yum install git

Отметим, что некоторый зависимые пакеты также будут установлены. После того как будет установлена система управления исходным кодом git вы сможете получить анонимный доступ к репозиторию Anaconda.

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

Вывод данной команды может иметь примерно следущий вид:

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


Если вы хотите фиксировать свои правки в исходном коде, тогда вам необходимо использовать url git+ssh.

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


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

Как только вы зафиксировали изменения локально, вы сможете зафиксировать их на серверах с помощью

git push

Если вам нравится просматривать git репозиторий Anaconda через web интерфейс - используйте один из следущих Anaconda git адресов .

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

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

Прежде чем стать участников вам необходимо прочитать Branching policy.

Сообщение о возникших проблемах

Если у вас возникли трудности при установке, пожалуйста отправвьте файл отчета с информацией о производителе дистрибутива.

Прежде чем сообщать сообщение об ошибке, прочитайте How to debug installation problems, на этой странице рассказывается о том как правильнло заполнить отчет об ошибке, который поможет нам быстро решить вашу проблему. Также попробуйте поискать в bugzilla другие отчеты о вашей проблеме, т.к. зачастую об одних и тех же ошибках сообщают несколько различных человек.

CommonBugs является списком ошибок который нужно прежде просмотреть, чтобы не сообщать об ошибке о которой уже есть сообщение.

AnacondaBugWorkflow является описание того как ошибки anaconda Fedora обрабатываются в bugzilla, и что означают различные статусы. Оно справедливо только для Fedora.

Комада Anaconda

В алфавитом порядке, следущие люди состоят в коменде anaconda и ответственны для основные правки исходного кода. Конечно мы получаем помощь от различных людей как из Red Hat так и от любого участника сообщества.

  • 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.