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): В основном работает над работой сети 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 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.