ПР 8. Управление пакетами
Цель работы
Ознакомиться с консольными и графическими утилитами управления пакетами программного обеспечения в ОС Astra Linux, освоить навыки получения информации об установленных и доступных пакетах, их установки, обновления и удаления.
Указания к выполнению
Все задачи по управлению программным обеспечением выполняются суперпользователем.
Менеджер пакетов (в случае деривиативов Debian это будет dpkg) в момент запуска блокирует доступ к системной базе данных ПО и удерживает блокировку до завершения всех операций по управлению программным обеспечением. Это позволяет сохранять полноту и целостность системы.
Все программы, входящие в состав дистрибутива и к которым можно получить доступ хранятся в специальном хранилище — репозитории. Репозиторий может быть локальным (например, записанным на DVD или жесткий диск компьютера), однако более практичным является использование сетевых репозиториев. Система может использовать несколько репозиториев, как локальных, так и сетевых.
Информация о репозиториях хранится в файле /etc/apt/sources.list. Это обычный текстовый файл, доступный для редактирования суперпользователем. Для его изменения можно выполнить например такую команду:
sudo mcedit /etc/apt/sources.list
Возможна ситуация, когда после добавления репозитория в sources.list, в ходе обновления системы появится предупреждение об отсутствии GPG-ключей для нового репозитория. Их можно импортировать командами apt-key, debian-archive-keyring и dirmngr, но здесь это не рассматривается. Чтобы использовать неподписанный репозиторий, его нужно добавлять как «доверенный» источник, дописав строку [trusted=yes] в описание репозитория.
Основными операциями по управлению пакетами и выполняемыми менеджером пакетов являются следующие:
- проверка обновлений — запрос наличия в репозитории новых версий установленного ПО;
- непосредственное обновление — скачивание и установка доступных обновленных пакетов;
- установка, переустановка, удаление указанных пакетов и очистка системы от неиспользуемых пакетов;
- поиск пакетов и получение информации о них.
Выполнять эти операции можно непосредственно из dpkg, однако более удобными являются доступные в Astra Linux оболочки apt и Synaptic.
Если компьютер находится в локальной сети, то для работы с сетевыми репозиториями может потребоваться дополнительная настройка системы в части конфигурации прокси-сервера. Synaptic и apt могут использовать как общесистемные, так и собственные настройки прокси.
Собственные настройки Synaptic задаются в диалоговом окне settings→preferences→network, а apt настраивается через конфигурационный файл /etc/apt.conf.d/01proxy, содержащий такую информацию:
Acquire::http::proxy "http://[user[:password]@]httpproxy.server:port"; Acquire::https::proxy "http://[user[:password]@]httpsproxy.server:port"; Acquire::ftp::proxy "http://[user[:password]@]ftpproxy.server:port";
Фактические адреса прокси-серверов и номера портов можно узнать у системного администратора.
Задания
- Войти в систему с собственной учетной записью.
- Ознакомиться со справочной информацией о командах dpkg, dpkg-query, aptitude, apt, apt-get, apt-cache и synaptic. Все последующие задания выполнять с помощью любой из утилит командной строки, если иное не сказано явным образом.
- Просмотреть информацию о подключенных репозиториях ПО (см. /etc/apt/sources.list).
- Проверить систему на наличие обновлений (update) и, если возможно, выполнить обновление (upgrade).
- Получить развернутую информацию о пакетах mc, linux-image, supertux и cowsay.
- С помощью утилиты synaptic установить пакет supertux со всеми необходимыми зависимостями.
- Завершить работу в synaptic.
- Скачать пакет cowsay_3.03+dfsg1-10_all.deb. Для выполнения этого задания использовать предустановленный браузер и любую поисковую систему (google, yandex, bing и т. п.). Рекомендуется выполнять поиск с точным соответствием, т.е. искомую фразу заключить в кавычки.
- Используя dpkg выполнить локальную установку пакета cowsay, описанного в задании № 8.
- Выполнить команду uname -a | cowsay -f tux.
- Используя apt или apt-get удалить пакет supertux.
- Проверить, доступны ли для установки пакеты sl, cmatrix, lolcat и figlet.
- Добавить следующую строку в файл /etc/apt/sources.list (Откройте этот файл в любом текстовом редакторе, например так: sudo mcedit /etc/apt/sources.list. Не забудьте сохранить изменения.):
deb [trusted=yes] https://deb.debian.org/debian/ stretch main
Сохранить изменения и выполнить обновление системы
Возможно, что появится предупреждение об отсутствии GPG-ключей для добавленного репозитория. Их можно импортировать командами apt-key, debian-archive-keyring и dirmngr, но здесь это не рассматривается. Репозиторий все равно будет доступен, т.к. он добавлен как доверенный [trusted] источник. - Повторить задание № 12.
- Установить один из пакетов sl или cmatrix.
- Установить пакеты figlet и lolcat. Сделать это одной командой.
- Выполнить (потоковую) команду:
user@astra:~$ clear && echo "Hello, World!" | figlet -c | lolcat -a
- Удалить все установленные в ходе выполнения заданий пакеты, включая все файлы пакетов, которые могли быть изменены. Сделать это одной командой.
- Удалить из списка источников подключенный ранее репозиторий.
- Завершить работу.
Контрольные вопросы
- Сколько репозиториев Astra Linux доступно после установки системы и сколько из них активировано?
- К заданию 4. Почему определен именно такой порядок операций по обновлению системы?
- Как, с точки зрения отображаемой информации, будут отличаться результаты выполнения команд apt show cowsay и apt show linux-image?
- Какой командой можно выполнить полнотекстовый поиск некоторого пакета?
- Почему многие программы требуют установки дополнительных пакетов?
- Какой командой можно узнать, какие файлы входят в состав установленного пакета?
- Как можно получить информацию о прямых и обратных зависимостях (в ответе записать необходимую команду на примере пакета cowsay)?
- К заданиям 12, 13, 14. Что и почему изменилось (если изменилось) после подключения нового репозитория?
- После удаления некоторого пакета в системе могут остаться неиспользуемые файлы. Какой командой их можно удалить?
- В чем отличия применения команд apt remove и apt purge при необходимости удаления некоторого пакета?
CC-BY-CA Анатольев А.Г., 08.06.2022