Linux Labs

Пакеты, службы, журналы / Ступень 1 из 13

Пакеты, зависимости и репозитории

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 8 · теория · 5 мин

Версия, архитектура, зависимость

Три поля описания решают, подойдёт ли пакет этой машине.

Version: 1.0-1 — версия программы, а после последнего дефиса — номер сборки пакета. У tree версия длиннее, 2.1.1-2ubuntu3.24.04.2: программа 2.1.1, остальное — сборка Ubuntu. Версии сравнивают строкой целиком.

Архитектура говорит, под какой процессор собран пакет. all ставят на любой: внутри только сценарии и текст. У tree и nginx архитектура amd64 — в них машинный код, она видна и в имени архива tree_…_amd64.deb. Архитектуру машины печатает dpkg --print-architecture, здесь — amd64.

Зависимость в поле Depends называет пакеты, которые должны стоять в системе. Знак в скобках задаёт версию:

Запись Что подходит
lab-pkg-data (= 1.0-1) ровно версия 1.0-1
libc6 (>= 2.38) версия 2.38 или новее
iproute2 любая версия

dpkg сверяет зависимость с базой пакетов. Архив зависимости в соседнем файле требование не выполняет, пока его не установили.

Проверь себя 1 вопрос

В системе стоит lab-pkg-data 2.0-1. Ты ставишь архив lab-pkg-report с полем Depends: lab-pkg-data (= 1.0-1). Выполнено ли требование?

  • dpkg сверяет зависимость с базой пакетов. Архив в соседнем файле в базу не попадает, пока его не установили.

  • Знак = требует ровно указанную версию. «Эта или новее» записывают как >=.

(= 1.0-1) требует установленный lab-pkg-data ровно этой версии. С 2.0-1 dpkg оставит lab-pkg-report ненастроенным и напишет, какая зависимость не выполнена.

Главное в шаге

  • Версию пакета читают из поля Version строкой целиком.
  • all подходит любому процессору, amd64 — только машинам этой архитектуры.
  • Depends сверяется с базой пакетов: нужен установленный пакет подходящей версии.
Ubuntu 24.04
Загрузка…