11 KiB
Задания
0.
Обновите список пакетов из настроенных репозиториев в /etc/apt/sources.list
командой apt
.
Пример содержимого файла для Debian 12
# main состоит из DFSG-compliant пакетов, которым не требуется другое ПО из других зон. Эти пакеты считаются частью дистрибуции Debian
# contrib пакеты содержат DFSG-compliant ПО, но у них зависимостей из зоны main (возможно упакованы в non-free).
# non-free содержит ПО, которое не соответствует DFSG.
# скомпилированные бинарные пакеты
deb http://deb.debian.org/debian/ bookworm main
# оригинальные исходные коды пакетов
deb-src http://deb.debian.org/debian/ bookworm main
# некоторые пакеты для следующего 12.X обнвления доступны только из следующих веток
deb http://deb.debian.org/debian/ bookworm-updates main
deb-src http://deb.debian.org/debian/ bookworm-updates main
# критические обновления пакетов для обнаруженных уязвимостей доступны из репозитория security.debian.org
deb http://security.debian.org/debian-security/ bookworm/updates main
deb-src http://security.debian.org/debian-security/ bookworm/updates main
1.
Установите пакет apt-file
с помощью apt
.
2.
Найдите с помощью apt-file
пакет, содержащий команду ar
.
3.
Определите с помощью команды apt search
, какие варианты пакета содержащего команду ar
доступны. Установите подходящий для вашей системы.
4.
Скачайте http://ftp.ru.debian.org/debian/pool/main/c/cmake/cmake_3.25.1-1_amd64.deb в отдельную папку. Перейдите в папку с пакетом и распакуйте .deb
командой ar -x путь-к-пакету
. В папке должны появиться: control.tar.xz
, data.tar.xz
, debian-binary
.
5.
Создайте папку control
и распакуйте в неё control.tar.xz
с помощью команды tar xfC путь-к-архиву control
. Изучите содержимое. Сравните с выдачей dpkg --info
для .deb
файла.
6.
Создайте папку data
и распакуйте в неё data.tar.xz
с помощью команды tar xfC путь-к-архиву data
. Изучите data
с помощью команды tree
. Сравните с выдачей dpkg --contents
для .deb
файла.
7.
Попробуйте вызвать исполняемый файл usr/bin/cmake
из папки. Сопоставьте информацию в control файле пакета с выдачей команды ldd usr/bin/cmake
. Если исполняемый файл не работает, найдите и установите зависимости в систему. Воспользуйтесь формой поиска на сайте https://www.debian.org/distrib/packages, если поиск по настроенным репозиториям не даёт результата. Добавьте репозиторий в котором есть нужная библиотека командой apt edit-sources
. Обновите базу данных пакетов командой apt update
. Завершите установку зависимостей и проверьте, что cmake
работает.
8.
Утилитой dpkg-query
выведите список пакетов, зарегистрированных в dpkg
базе данных. Есть ли среди них зависимости cmake
, которые вы установили вручную?
9.
Утилитой dpkg-query
выведите среди установленных локально пакетов пакет, начинающихся с ‘libc6’
. Утилитой apt-cache
выполните тот же поиск по кэшу apt
. Утилитой apt
выполните тот же поиск по кэшу apt
. Сравните, чем они отличаются.
10.
Утилитой dpkg-query
выведите статус пакета sudo
и gcc
. Чем выдача отличается от содержимого control файла .deb
, скаченного ранее?
11.
Утилитой dpkg-query
выведите список установленных файлов пакета sudo
(не выводятся файлы созданные скриптами).
12.
Утилитой dpkg-query
выведите список файлов с метаданными пакета sudo
(control files).
13.
Утилитой dpkg-query
выведите содержимое одного из файлов с метаданными пакета sudo
(control files).
14.
Утилитой dpkg-query
выведите пути к файлам с метаданными пакета sudo
(control files).
15.
Утилитой dpkg-query
выполните поиск пакетов, которые установили в систему файл pam.conf
.
16.
Утилитой dpkg
установите cmake .deb
пакет, скаченный ранее. Ещё раз посмотрите на зависимости пакета. Как отреагировал dpkg
на отсутствие зависимости cmake-data
- установил или выдал ошибку?
17.
Скачайте cmake-data
и его транзитивные зависимости https://packages.debian.org/sid/amd64/cmake. Завершите установку cmake, и проверьте, что команда cmake установлена в систему (например, командами which
, find
) и работает cmake --version
.
18.
Проверьте файлы всех установленных пакетов в системе на наличие изменений/повреждений командой dpkg
. Какие файлы не прошли проверку (??5??????
)?
Формат выдачи:
SM5DLUGT c <file>
где
- S размер файла,
- M режим файла,
- 5 MD5 хэш файла,
- D мажорная и минорная версии файла,
- L содержимое символических ссылок файла,
- U владелец файла,
- G группа-владелец файла,
- T время модификации файла,
- c появляется только, если это конфигурационный файл. Как правило именно они меняются и с большей вероятностью не пройдут проверку.
- полный путь к файлу, который не прошёл проверку.
Знак вопроса означает, что файл не может быть проверен по какой-то причине. Подробнее вы можете прочитать в мануале man dpkg
в секции описывающей ключ --verify-format
.
19.
Сохраните список выбранных действий и состояний (selections) для пакетов в системе утилитой dpkg
в файл.
20.
Измените в сохранённом списке действие для пакета vim c текущего на deinstall (man dpkg
, “Package selection states”).
21.
Запустите команду apt-get dselect-upgrade
. Какие пакеты будут установлены или удалены?
22.
Настройте в /etc/sudoers
конфигурационном файле для пользователя stud
возможность выполнять команды от лица суперпользователя без запроса пароля:
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Удалите, а затем установите пакет sudo командой apt remove
. Проверьте содержимое конфигурационного файла на изменения. Проделайте то же самое, но c командой apt purge
.
23.
Удалите cmake
и cmake-data
с помощью apt
. Найдите в репозиториях, какая версия cmake доступна. Создайте файл в директории /etc/apt/apt.conf.d/default-release
с следующим содержимым (man apt.conf
):
APT::Default-Release "stable";
Повторите поиск. Установите stable
версию. Проверьте работоспособность команды и её версию cmake --version
. Вы можете узнать значения текущих конфигурационных переменных apt
командой apt-conf dump
.
24.
Заморозьте версию cmake командой apt-mark
или с помощью dpkg --get-selections
, dpkg --set-selections
. Поменяйте умолчания /etc/apt/apt.conf.d/default-release
на "unstable"
. Проведите обновление пакетов в системе. cmake не должен сохранить stable версию.
25.
Удалите cmake для следующего упражнения в установке из исходного кода. Выполните apt autoremove
для удаления ставших ненужными пакетов.
26.
Установите git
, если он ещё не установлен. Перейдите в /tmp
и вызовите:
git clone --depth=1 https://github.com/Kitware/CMake
Ваша цель установить пакет в директорию /opt
.
Прочитайте README.md секцию "Building CMake from Scratch". Установите компилятор g++, make. Для поддержки openssl - libssl-dev заголовочные файлы. В качестве --prefix используйте /opt/cmake/
. Выполните 3 этапа: конфигурация компиляции, компиляция проекта, и установка. Для использования многопоточной компиляции используйте флаг -j
при вызове make
.
27.
Используйте команду dpkg-reconfigure
, чтобы перенастроить пакеты, связанные с локализацией console-setup
и раскладкой клавиатуры keyboard-configuration
.
Справка
Ссылки:
- web страница со списком пакетов https://www.debian.org/distrib/packages
Релевантные команды:
- apt
- apt-get
- apt-cache
- apt-mark
- apt-config
- dpkg
- dpkg-query
- dpkg-reconfigure
Страницы документации:
- sources.list
- apt.conf
- dpkg.conf
- apt_preferences