8.8 KiB
Задания
0.
Обновите список пакетов из настроенных репозиториев в /etc/apt/sources.list командой apt.
; TODO как должен выглядеть sources.list
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.24.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 выведите список файлов с метаданными пакета (control files), установленных в систему.
13.
Утилитой dpkg-query выведите содержимое одного из файлов с метаданными пакета (control files).
14.
Утилитой dpkg-query выведите пути к файлам с метаданными пакета (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??????
)?
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