Alterator-pkg: различия между версиями
(→API) |
м (→Отладка: +tty2) |
||
(не показано 12 промежуточных версий 4 участников) | |||
Строка 3: | Строка 3: | ||
'''alterator-pkg''' | '''alterator-pkg''' | ||
[[ | == Назначение == | ||
Модуль предназначен для выбора групп пакетов и установки пакетов из выбранных групп (см. тж. [https://lists.altlinux.org/pipermail/devel-conf/2007-October/007496.html анонс] и [[Installer/pkggroups|изначальную страницу]]). | |||
== Принцип работы в режиме инсталлятора == | |||
Модули {{prg|groups}} и {{prg|install}} включаются в [[installer|инсталлятор]] под заголовком «Установка пакетов». Для того, чтобы пакеты было откуда устанавливать, в {{path|/etc/apt/sources.list}} окружения инсталлятора прописывается источник пакетов — установочный диск, сетевой источник и т.д. Пакеты устанавливаются командой {{cmd|apt-get install}}, но конечно, не в окружение инсталлятора, а в чрут целевой системы. Для этого в {{path|/etc/apt/apt.conf}} записывается строка | |||
RPM::RootDir "/mnt/destination"; | |||
Отвечает за такую подготовку среды исталлятора скрипт {{prg|initinstall.d/90-pkg.sh}}, поставляемый вместе с данным модулем. | |||
== API == | == API == | ||
Для генерации списка групп пакетов просматриваются все файлы *.directory в каталоге | Для генерации списка групп пакетов просматриваются все файлы *.directory в каталоге {{path|/var/lib/install3/groups}} | ||
Пример файла описания группы: | Пример файла описания группы: | ||
<source lang="Ini">[Desktop Entry] | |||
Encoding=UTF-8 | |||
Type=Directory | |||
Name=Office Suite | |||
X-Alterator-PackageList=installer-group-desktop-office-lite | |||
Name[ru_RU]=Офисный пакет | |||
X-Alterator-Conflicts=installer-group-desktop-office | |||
X-Alterator-Parent=installer-group-desktop-office</source> | |||
* имя файла (без расширения .directory) является идентификатором группы | * имя файла (без расширения .directory) является идентификатором группы | ||
Строка 29: | Строка 35: | ||
* '''X-Alterator-Depends''' — список идентификаторов зависимых элементов, разделённый пробелами. Так, при выборе этого элемента, будут выбраны все зависимые элементы | * '''X-Alterator-Depends''' — список идентификаторов зависимых элементов, разделённый пробелами. Так, при выборе этого элемента, будут выбраны все зависимые элементы | ||
* '''X-Alterator-PackageList''' — название файла (в ''/var/lib/install3/lists''), содержащего имена пакетов группы | * '''X-Alterator-PackageList''' — название файла (в ''/var/lib/install3/lists''), содержащего имена пакетов группы | ||
* '''X-Alterator-Parent''' — идентификатор родительского элемента в иерархии групп | * '''X-Alterator-Parent''' — идентификатор родительского элемента<ref>Перед добавлением X-Alterator-Parent следует убедиться, что соответствующий файл parent-name.directory уже существует (либо создать его).</ref> в иерархии групп | ||
* '''X-Alterator-Required''' — признак включения группы по умолчанию (значение ''yes'' или ''true'') | * '''X-Alterator-Required''' — признак включения группы по умолчанию (значение ''yes'' или ''true'') | ||
Пример файла с пакетами группы: | Пример файла с пакетами группы (по одному на строку): | ||
openoffice.org | openoffice.org | ||
Строка 55: | Строка 61: | ||
При добавлении группы учтите, что в случае, если дочерний элемент не виден, он не может найти родительского элемента. Сделайте имя файла лексикографически больше, чем у родительского элемента. | При добавлении группы учтите, что в случае, если дочерний элемент не виден, он не может найти родительского элемента. Сделайте имя файла лексикографически больше, чем у родительского элемента. | ||
: Может, наоборот советовать/делать -- 00parent.directory? --[[Участник:MichaelShigorin|mike]] | |||
Пример: | Пример: | ||
Строка 61: | Строка 68: | ||
dhcp-server-a.directory < dhcp-server-g.directory. Переименуйте dhcp-server-a.directory в dhcp-server-g-a.directory | dhcp-server-a.directory < dhcp-server-g.directory. Переименуйте dhcp-server-a.directory в dhcp-server-g-a.directory | ||
== Использование профилей == | |||
Профили позволяют выбрать одновременно определённое количество групп пакетов {{Since|2.6.10-alt1}}. | |||
Файлы профилей с расширением .directory находятся в каталоге {{path|/var/lib/install3/profiles}}. Профили в списке показываются в порядке сортировки имён файлов с ними. | |||
Пример файла {{path|/var/lib/install3/profiles/alterator.directory}} | |||
<source lang="Ini">[Desktop Entry] | |||
Type=Directory | |||
Name=Alterator | |||
Name[ru_RU]=Альтератор | |||
X-Alterator-Groups=asterisk-1.6.2 devel-hardware dhcp-server-a</source> | |||
Группы пакетов (имена файлов описания групп без расширения .directory) указываются в поле '''X-Alterator-Groups''' через пробел | |||
Если ни один файл профиля не найден, выпадающий список с профилями показываться не будет. | |||
{{Note|Если в параметре X-Alterator-Groups не указана ни одна группа, при выборе этого профиля будут убраны флажки у всех элементов списка.}} | |||
== Отладка == | |||
Если при достижении шага выбора групп под их списком появляется сообщение (в англоязычном варианте): | |||
Required disk space: unable to calculate | |||
— произошла ошибка при попытке запустить {{cmd|apt-get}} со списком затребованных пакетов. Её причиной может оказаться, например, вошедший в списки, но не попавший в доступные инсталятору репозитории пакет. | |||
Ещё одной проблемой бывает не попавший в {{path|lists/}} список, на который есть ссылка из выбранного {{path|groups/*.directory}}. | |||
Отлаживаться стоит, переключившись в консоль (Ctrl-Alt-F2) да заглянув в {{path|/tmp/install2.log}} и {{path|/var/lib/install3/}}; если окажется что-то с виду непонятное вроде | |||
E: Couldn't find package pkg1 pkg2 | |||
-- имейте в виду, что это apt попытался установить пакет с именем "<tt>pkg1 pkg2</tt>" (именно слипшись). | |||
Можно попробовать установиться по исправленным вручную спискам так: | |||
# cd /var/lib/install3/lists | |||
# apt-get install `cat centaurus/mate centaurus/xorg .base` | |||
== Примечания == | |||
<references /> | |||
{{Category navigation|title=Модули Alterator|category=Модули Alterator|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 17:56, 6 апреля 2023
Название пакета
alterator-pkg
Назначение
Модуль предназначен для выбора групп пакетов и установки пакетов из выбранных групп (см. тж. анонс и изначальную страницу).
Принцип работы в режиме инсталлятора
Модули groups и install включаются в инсталлятор под заголовком «Установка пакетов». Для того, чтобы пакеты было откуда устанавливать, в /etc/apt/sources.list окружения инсталлятора прописывается источник пакетов — установочный диск, сетевой источник и т.д. Пакеты устанавливаются командой apt-get install, но конечно, не в окружение инсталлятора, а в чрут целевой системы. Для этого в /etc/apt/apt.conf записывается строка
RPM::RootDir "/mnt/destination";
Отвечает за такую подготовку среды исталлятора скрипт initinstall.d/90-pkg.sh, поставляемый вместе с данным модулем.
API
Для генерации списка групп пакетов просматриваются все файлы *.directory в каталоге /var/lib/install3/groups
Пример файла описания группы:
[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Office Suite
X-Alterator-PackageList=installer-group-desktop-office-lite
Name[ru_RU]=Офисный пакет
X-Alterator-Conflicts=installer-group-desktop-office
X-Alterator-Parent=installer-group-desktop-office
- имя файла (без расширения .directory) является идентификатором группы
- Name — название группы в интерфейсе (локализованную надпись указывайте в параметре Name[код_языка])
- X-Alterator-Conflicts — список идентификаторов конфликтующих групп
- X-Alterator-Depends — список идентификаторов зависимых элементов, разделённый пробелами. Так, при выборе этого элемента, будут выбраны все зависимые элементы
- X-Alterator-PackageList — название файла (в /var/lib/install3/lists), содержащего имена пакетов группы
- X-Alterator-Parent — идентификатор родительского элемента[1] в иерархии групп
- X-Alterator-Required — признак включения группы по умолчанию (значение yes или true)
Пример файла с пакетами группы (по одному на строку):
openoffice.org openoffice.org-langpack-ru openoffice.org-langpack-uk xpdf djvu-viewer fbreader sqliteman stardict-gtk stardict-mueller7 stardict-slovnyk_be-en stardict-slovnyk_en-be stardict-slovnyk_en-ru stardict-slovnyk_en-uk stardict-slovnyk_ru-en stardict-slovnyk_uk-en stardict-wn xfce-settings-desktop-office-lite
Построение иерархии
При добавлении группы учтите, что в случае, если дочерний элемент не виден, он не может найти родительского элемента. Сделайте имя файла лексикографически больше, чем у родительского элемента.
- Может, наоборот советовать/делать -- 00parent.directory? --mike
Пример:
- dhcp-server-a.directory имеет родителем dhcp-server-g, но не показывается
- dhcp-server-g.directory — родительский элемент
dhcp-server-a.directory < dhcp-server-g.directory. Переименуйте dhcp-server-a.directory в dhcp-server-g-a.directory
Использование профилей
Профили позволяют выбрать одновременно определённое количество групп пакетов с версии 2.6.10-alt1 .
Файлы профилей с расширением .directory находятся в каталоге /var/lib/install3/profiles. Профили в списке показываются в порядке сортировки имён файлов с ними.
Пример файла /var/lib/install3/profiles/alterator.directory
[Desktop Entry]
Type=Directory
Name=Alterator
Name[ru_RU]=Альтератор
X-Alterator-Groups=asterisk-1.6.2 devel-hardware dhcp-server-a
Группы пакетов (имена файлов описания групп без расширения .directory) указываются в поле X-Alterator-Groups через пробел Если ни один файл профиля не найден, выпадающий список с профилями показываться не будет.
Отладка
Если при достижении шага выбора групп под их списком появляется сообщение (в англоязычном варианте):
Required disk space: unable to calculate
— произошла ошибка при попытке запустить apt-get со списком затребованных пакетов. Её причиной может оказаться, например, вошедший в списки, но не попавший в доступные инсталятору репозитории пакет.
Ещё одной проблемой бывает не попавший в lists/ список, на который есть ссылка из выбранного groups/*.directory.
Отлаживаться стоит, переключившись в консоль (Ctrl-Alt-F2) да заглянув в /tmp/install2.log и /var/lib/install3/; если окажется что-то с виду непонятное вроде
E: Couldn't find package pkg1 pkg2
-- имейте в виду, что это apt попытался установить пакет с именем "pkg1 pkg2" (именно слипшись).
Можно попробовать установиться по исправленным вручную спискам так:
# cd /var/lib/install3/lists # apt-get install `cat centaurus/mate centaurus/xorg .base`
Примечания
- ↑ Перед добавлением X-Alterator-Parent следует убедиться, что соответствующий файл parent-name.directory уже существует (либо создать его).