You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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.

Справка

Ссылки:

Релевантные команды:

  • apt
  • apt-get
  • apt-cache
  • apt-mark
  • apt-config
  • dpkg
  • dpkg-query
  • dpkg-reconfigure

Страницы документации:

  • sources.list
  • apt.conf
  • dpkg.conf
  • apt_preferences