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

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

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

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

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

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

dnf install git

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

git clone https://github.com/rhinstaller/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@github.com/rhinstaller/anaconda.git


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

git push

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

https://github.com/rhinstaller/anaconda

Чтобы стать участником вам необходимо ознакомиться со статьей Branching policy и следовать рекомендациям, описанным в статье Patch review process.

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

Если у вас возникли трудности при установке, сообщите об этом поставщику дистрибутива.

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

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

AnacondaBugWorkflow содержит описание того, как ошибки anaconda Fedora обрабатываются в Bugzilla, и что означают различные статусы. Эта информация применительна только к Fedora.

Команда Anaconda

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

  • DavidCantrell (dcantrell): В основном работает над работой сети anaconda, а также поддерживает работу над parted и pyparted. Также работает над повышение интереса к s390 в рамках Fedora.
  • PeterJones (pjones): Работает над вещами, связанными с разбиением диска на разделы и загрузчиком. Также работает над системой старта, такой как mkinitrd и другими программами.
  • AlesKozumplik (akozumpl): Работает над подсистемой авторизациии и LiveCD.
  • DaveLehman (dlehman): Работает в основном над поддержкой anaconda, но также ответственен за поддержку зашифрованных устройство в коде файловой системы.
  • ChrisLumens (clumens): В основном работает над всем, что сязано с kickstart, а также firstboot и работой над ошибками anaconda.
  • MartinSivak (msivak): В основном работает над поддержкой anaconda, а также один из главных разработчиков FirstAidKit.
  • RadekVykydal (rvykydal): В основном работает над поддержкой anaconda.
  • HansdeGoede (hansg): специфические для системы фрагменты

Доска почета Anaconda

  • 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): занимается поддержкой anaconda и parted, а также является одним из главных разработчиков FirstAidKit.