How-To среда: Категории пакетов
15.09.2007

pirutПри установке системы с помощью Anaconda, когда вы выбираете пакеты, которые хотите поставить, в режиме просмотра (тоже самое окно просмотра пакетов можно вызвать в уже установленной системе из меню: >Applications>Add/Remove Software, оно называется Менеджер пакетов), вы отмечаете пакеты в группах, которые, в свою очередь, принадлежат категориям. Каждая группа содержит обязательные и дополнительные пакеты, дополнительные пакеты в каждой группе могут быть выделены или нет для установки по-умолчанию. Некоторых пакетов вообще нет ни в одной категории, и они не могут быть установлены из этой иерархии.

Иерархия пакетов строится в связи с XML-файлом, расположенным по адресу /var/cache/yum/*/comps*.xml — каждый репозиторий имеет свой XML-файл. Файл этот имеет следующий вид:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps xmlns="">

<group>
<id>short-group-id</id>
<name>human-readable-group-name</name>
<uservisible>true</uservisible>
<packagelist>

<packagereq type="mandatory">always-installed-package</packagereq>
<packagereq type="default">installed-by-default-package</packagereq>
<packagereq type="optional">not-installed-by-default-package</packagereq>
<packagereq type="conditional" requires="other-package">conditional-installed-package</packagereq>
. . .

</packagelist>

</group>

. . .

<category>
<id>simple-category-id</id>
<name>human-readable-category-name</name>
<description>category-description</description>
<display_order>5</display_order>
<grouplist>
<groupid>short-group-id</groupid>
. . .
</grouplist>
</category>

. . .

</comps>

Как вы видите, тег <category> включает в себя группы, которые принадлежат этой категории, а тег <group> включает в себя пакеты, принадлежащие этой группе. Текст, такой, как имя или описание категории или группы, написан на разных языках, определяемых атрибутом xml:lang.

Пакеты, для которых в теге <packagereq> указан тип mandatory, обязательно устанавливаются при установки данной группы пакетов. Пакеты с типом conditional ставятся обязательно в том случае, если устанавливаются пакеты, заданные в атрибуте requires. К примеру, если вы устанавливаете Французскую языковую поддержку и какой-нибудь пакет, то для него будет автоматически установлена французская поддержка. Пакеты с типами default и optional ставить необязательно, они отображаются в списке пакетов своей группы; соответственно, пакеты  default вначате уже отмечены, а пакеты optional — нет.