В Debian есть программа tasksel. Ее задача — дать пользователю возможность выбрать программное обеспечение для определенной функциональности, например, поставить все необходимое для веб-сервера, без необходимости знать названия пакетов. Вы просто выбираете конфигурацию по ее названию, например, «web сервер» или «сервер печати», а всё остальное программа делает самостоятельно. В итоге вы получаете установленное программное обеспечение для выполнения задачи. И, естественно, вы можете создавать собственные конфигурации для выполнения определенных задач.
Установка tasksel
По умолчанию tasksel обычно установлен, но если это не так, то вы можете установить tasksel командой
apt-get install tasksel
По зависимостям установится также пакет tasksel-data, включающий официальные задачи для установки. Дополнительно можно установить следующие пакеты:
education-tasks — Задачи для Debian Edu, включающие серверную часть и часть для тонких клиентов или рабочих станций
games-tasks — Задачи Debian Games, включающие большое количество игр, разделенных по жанрам, а также задачи для установки эмуляторов, лучших игр и разработки игр
gis-tasks — Задачи Debian GIS, включающие программы для работы с OpenStreetMap, GPS и другие программы, связанные с географической информацией
junior-tasks — Задачи Debian Jr. и Doudou Linux, включающие игры и обучающие программы, программы для видео, обучения печати и другие
и так далее. Полный список пакетов с заданиями можно посмотреть при помощи команды
apt-cache search tasksel
Использование tasksel
Программа tasksel может работать как в режиме командной строки, так и в интерактивном режиме. Если никакие параметры командной строки не указаны, программа будет работать в интерактивном режиме, будет показано меню с конфигурациями, вам только надо будет проставить флажки и затем нажать кнопку «OK».
В командном режиме программа будет работать только тогда, когда указаны параметры командной строки. Их немного:
—list-tasks | Вывести список всех существующих задач |
install задача | Установить пакеты, определенные в задаче |
remove задача | Удалить пакеты, определенные в задаче |
-t, —test | Тестовый режим. Не удалять и не устанавливать пакеты на самом деле |
—task-packages задача | Вывести список пакетов, которые относятся к задаче и доступны в данный момент |
—task-desc задача | Вывести описание задачи |
—new-install | Автоматически выбрать задачи без отображения их пользователю. Используется при новой инсталляции Debian |
—debconf-apt-progress опции | Передать указанные опции команде debconf-apt-progress, которую запускает tasksel |
Создание desc-файла для задачи tasksel
Tasksel позволяет достаточно быстро создавать собственные задачи. Для этого создается файл c расширением .desc, который размещается в директории /usr/share/tasksel/descs. Каждый файл .desc может включать одну и более задач, а каждая задача должна иметь определенную структуру, состоящую из полей с названием и значением. Вот эти поля:
Task | Название задачи. Например. «Task: web-server» без кавычек |
Section | Секция, в которую входит задача. Например, «Section: httpd» или «Section: debian-games» |
Description | Описание задачи. Описание может занимать несколько строчек. Первая строчка — краткое описание задачи, а последующие, начинающиеся с пробела, — более подробное описание. |
Relevance | Релевантность. Обычно значение в этом поле выставляют равным 10. Пример: «Relevance: 10» |
Enhances | Задача, которую расширяет данная задача. Например, «Enhances: desktop» |
Key | Ключевое слово задачи. Часто совпадает с названием задачи |
Packages | Список пакетов, входящих в задачу. Если пакетов несколько, то после заголовка пишется слово «list», а сами пакеты перечисляются на следующих строках, каждый пакет с новой строки, перед названием пакета пробел |
Это не все поля, которые могут быть использованы, но для большинства задач их обычно достаточно.
Пример задачи tasksel
Как пример давайте рассмотрим задачу для установки файлового менеджера Midnight Commander:
Task: mc-file-manager Section: utils Description: Midnight Commander - многофункциональный диспетчер файлов GNU Midnight Commander – полноэкранный текстовый файловый менеджер. В нём используется двухпанельный интерфейс и встроенная командная оболочка. Также имеется встроенный редактор с подсветкой синтаксиса и просмотрщик, поддерживающий двоичные файлы. Программа поддерживает виртуальную файловую систему (VFS), что позволяет работать с файлами на удалённых машинах (например, на серверах FTP, SSH) и с файлами внутри архивов, как с обычными файлами. Relevance: 10 Key: mc Packages: list e2fslibs libc6 libglib2.0-0 libgpm2 libslang2 libssh2-1 mc-data
Теперь можно сохранить этот файл в директории /usr/share/tasksel/descs под названием mc.desc и запустить tasksel без параметров. В появившемся меню вы увидите задачу для установки Midnight Commander.
Если в один файл включается несколько задач, то между двумя задачами должна быть пустая строка.