Структура пакета deb

Структура пакета deb

    Общие понятия

    Пакет deb является архивом ar

    Состав пакета deb

    Пакет содержит файловые архивы и метаинформацию:

    ar -t ./nmap_7.60-1ubuntu5_amd64.deb debian-binary control.tar.xz data.tar.xz

    Извлечь файлы из архива ar:

    ar -x ar -x nmap_7.60-1ubuntu5_amd64.deb

    Файл debian-binary описывает формат архива:

    ar -p nmap_7.60-1ubuntu5_amd64.deb debian-binary 2.0

    В файле control.tar/xz содержится файлы с мета-информацией:

    tar -tf control.tar.xz ./ ./control ./md5sums

    Архив data.tar.xz содержит файлы, которые устанавливаются в систему:

    less data.tar.xz
    Метапакеты

    Метапакеты - пустые пакеты, описывают зависимости, облегчают устновк совместной группы программ. Команда apt install мета_пакет установит все программы используя зависимости метапакета.

    Просмотр содержимого мета-файла control
    dpkg -I nmap_7.60-1ubuntu5_amd64.deb control

    Здесь в разных полях содержится важная информация о пакете:
    Depends - зависимости пакета, например libgcc1 (>= 1:3.0) означает, что в системе должен присутствовать пакет libgcc1 версии выше 1:3.0
    Pre-depends это зависимости которые должны быть уже установлены в системе до установки пакета.
    Recommends и Suggests рекомендованные и предлагаемые зависимости Enhances говорит что текущий пакет является расширением для перечисленных пакетов
    conflicts или breaks перечисляет пакет которые могут конфликтовать с текущим provides использование виртуального пакета
    replaces - указывает на наличие файлов, которые присутствуют в другом пакете, эти файлы он может заменить, в таком случае dpkg даст сбой, но не с параметром --force-overwrite.
    В дополнение к управляющему мета-файлу в архиве control.tar.xz может содержаться скрипты вызываемые на разных этапах обработки пакетов.
    preinst - выполняется перед установкой пакета
    postinst - выполняется после установки пакета
    prerm - выполняется перед удалением пакета
    postrm - выполняется после удаления пакета

    Следующая команда покажет эти скрипты в пакете, если они есть

    dpkg -I vim_2%3a8.0.1453-1ubuntu1.8_amd64.deb | head
    База данных dpkg

    /var/lib/dpkg содержит список всех пакетов установленных в системе
    /var/lib/dpkg/info/ содержит скрипты конфигурирования для установленных пакетов файл с расширением .list в котором хранятся списки файлов для пакетов
    /var/lib/dpkg/status - хранит блоки данных для каждого пакета, в эти копируется информация из файла control пакета

    less /var/lib/dpkg/available less /var/lib/dpkg/info less /var/lib/dpkg/status
    Распаковка deb пакета
    ar vx program-2018.10.15.deb tar xvf control.tar.gz tar xvf data.tar.xz
    Источники
    Последнее изменение: 10.10.2024 04:07


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ