Шаблоны пакетов
Содержание
Шаблоны
В данный момент в SUSE Linux 10.1 (и более ранних релизах) мы используем категории в YaST, чтобы группировать ПО и облегчить установку нужного программного обеспечения.
Наши разработчики доработали концепцию категорий и назвали их шаблонами.
Что такое шаблоны?
- Шаблоны включают в себя список программного обеспечения для установки
- Список пакетов содержит в себе следующие категории пакетов:
- обязательные (must-have)
- рекомендуемые (should-have)
- не обязательные (may-have)
- Шаблоны определяют функциональность, которой должна обладать система. Это достигается непосредственным именованием необходимых пакетов, группировкой подшаблонов или комбинацией вышеперечисленного. Шаблоны представляют собой огромный список установленных rpms, сгруппированных в блоки, которые по необходимости можно комбинировать или править. Перечисление всех rpm в шаблоны даёт rpms необходимую функциональность. Это, в свою очередь, даёт ответ на часто задаваемый вопрос "Зачем установлен этот пакет?"
- В будущем мы хотим довести концепцию шаблонов до полностью готового, отлаженного состояния. Например, если вы выбираете шаблон LDAP server, процедура настройки конфигурации LDAP будет запущена автоматически в процессе инсталляции.
- Шаблоны могут группироваться по назначению, например "Разаработка" или "Настольные приложения".
- Шаблоны могут зависеть от других шаблонов. У них может быть одинаковый набор зависимостей. Также они могут замещать или конфликтовать с другими шаблонами или зависеть от конкретного языка.
- Дополнительное ПО может содержать дополнительные шаблоны.
- Шаблоны могут дифференцироваться от высокоуровневых/видимых пользователем до внутренних/невидимых пользователем шаблонов (одни шаблоны могут требовать другие, невидимые шаблоны). Это - детали реализации шаблонов.
От категорий к шаблонам
После выпуска 10.2 Alpha2 мы решили перейти на шаблоны. Вместо простого переименования категорий в шаблоны мы решили начать с простого определения, какие шаблоны следует сформировать.
Категории в 10.1
На данный момент существуют следующие категории:
- Базовая система с ГИП
- Среда KDE
- Всё, содержащееся в KDE
- Система GNOME
- Справка и документация
- Офисные приложения
- Игры
- Мультимедиа
- VoIP
- Виртуализация Xen
- Простой web-сервер на Apache2
- Сервер и инструменты LDAP
- Сетевые средства и сервер
- Ноутбук
- Мобильные вычисления
- Компиляция C/C++ и инструменты разработки
- Разработка ядра
- Разработка под KDE
- Разработка под GNOME
- Система разработки Tcl/Tk
- Java
- Опытный пользователь
- LaTeX, SGML и XML
- Шрифты
- Mono/CLR
- Пакеты Не-OpenSource
Шаблоны в 10.2
Начиная с Alpha5, в дистрибутиве используются следующие шаблоны:
- Базовые технологии
- 32-разрядные: 32-разрядная среда выполнения (только для ppc64, x86-64)
- 64-разрядные: 64-разрядная среда выполнения (только для ppc)
- apparmor: Novell AppArmor
- основные: Базовая система openSUSE
- консоль: Консольные инструменты
- ноутбук: Ноутбук
- x86: Среда выполнения x86 (только для ia64)
- yast2_basis: Системное администрирование YaST
- Графические среды
- gnome: Среда GNOME
- kde: Среда KDE
- xfce: Среда XFCE [только на ftp/DVD]
- x11: X Window System
- шрифты: Шрифты
- Рабочий стол GNOME
- gnome_admin: Инструменты администрирования GNOME
- gnome_basis: Базовая система GNOME
- gnome_ide: Среда разработки GNOME
- gnome_games: Игры GNOME
- gnome_imaging: Графическое ПО GNOME
- gnome_laptop: Подсистема для ноутбуков в GNOME
- gnome_multimedia: Мультимедиа в GNOME
- gnome_office: Офисное ПО в GNOME
- gnome_utilities: Утилиты GNOME
- gnome_xgl: Визуальные эффекты GNOME
- Рабочий стол KDE
- kde_admin: Инструменты администрирования KDE
- kde_basis: Базовая система KDE
- kde_ide: Среда разработки KDE
- kde_edutainment: Образовательное ПО KDE
- kde_games: Игры KDE
- kde_imaging: Графическое ПО KDE
- kde_internet: По для Интернета в KDE
- kde_laptop: Подсистема для ноутбуков в KDE
- kde_multimedia: Мультимедиа в KDE
- kde_office: Офисное ПО в KDE
- kde_system: Система KDE
- kde_utilities: Утилиты KDE
- kde_xgl: Визуальные эффекты KDE
- Функции Рабочего стола
- games: Игры
- imaging: Графика
- remote_desktop: Управление удалённым Рабочим столом
- xml: Инструменты редактирования XML и LaTeX
- Серверные функции
- dhcp_dns_server: Сервер DHCP и DNS
- directory_server: Сервер директорий (LDAP)
- file_server: Файл-сервер
- gateway_server: Интернет-шлюз
- lamp_server: WEB- и LAMP-сервер
- mail_server: Почтовый и новостной сервер
- misc_server: Сервер для различных применений
- network_admin: Администрирование сети
- print_server: Принт-сервер
- xen_server: Хост-сервер виртуальной машины Xen
- Закрытое ПО
- non_oss: Различные закрытые пакеты (только на носителе NON-OSS)
- non_oss_java: Среда Java (только на носителе NON-OSS)
- Разработка
- devel_basis: Основные средства разработки
- devel_C_C++: Разработка на C/C++
- devel_gnome: Разработка под GNOME
- devel_ide: Интегрированные Среды Разработки
- devel_java: Разработка на Java
- devel_kernel: Разарботка ядра Linux
- devel_kde: Разработка под KDE
- devel_mono: Разработка на .NET
- devel_perl: Разработка на Perl
- devel_python: Разработка на Python
- devel_qt4: Разработка на Qt4
- devel_rails: Разработка на Rails
- devel_rpm_build: Среда сборки RPM
- devel_ruby: Разработка на Ruby on Rails (не на CD)
- devel_web: Web-разработка
- devel_yast: Разработка под YaST
Здесь не хватает некоторых новых категорий и их описаний. Это только первый шаг к обсуждению. Мы хотели бы, чтобы вы поддержали наши идеи.
В обсуждении давайте не касаться темы "нам так нужны шаблоны!.." - давайте обсуждать основные вопросы и дальнейшее совершенствование концепции шаблонов.
У нас есть прекрасная возможность добавления новых закрытых шаблонов: обычно всё, что вам необходимо - иметь лёгкое дополнительное ПО, к которому есть шаблоны, но нет RPM. Поэтому каждый может создать коллекцию своих любимых пакетов и сделать их доступными в качестве дополнительного источника. Любой репозиторий может добавлять свои шаблоны.
Описание шаблонов
Сейчас используется способ описания шаблонов с помощью файлов .pat. Однако сейчас разрабатывается способ добавления описаний в стиле репозиториев YaST, бесполезный для описаний типа repomd.
В идеале, виды языка описания шаблонов должны быть
- лёгкими для написания
- лёгкими для чтения
- лёгкими для обработки
Смотри язык описания шаблонов.
Содержимое шаблонов
Всё вышесказанное о шаблонах в openSUSE 10.2 не затрагивает их содержимого - пакетов.
Страница содержимое шаблонов пытается объяснить, как группировать пакеты в шаблоны.
Смотри также
- Предложения по API