zaLinux.ru

При установке пакетов лучше указывать только главный пакет или все его зависимости?


У многих программ в Linux имеются зависимости.

Зависимости — это программы и библиотеки, которые необходимы для работы устанавливаемой программы. Причём менеджеры пакетов Linux весьма интеллектуальны и при установке нужного вам пакета, они также автоматически установят все зависимости.

К примеру, я хочу установить Double Commander. Кстати, настоятельно рекомендую эту программу как на Linux, так и на Windows.

Double Commander - это свободный, с открытым исходным кодом, кроссплатформенный файловый менеджер с двумя панелями. Целью данного проекта является создание файлового менеджера, аналогичного по функциональности Total Commander и совместимого с его плагинами.

Так вот, установка Double Commander выполняется командой:

sudo apt install doublecmd-gtk

При этом у пакета doublecmd-gtk есть зависимости, это doublecmd-common и doublecmd-plugins:

Вы можете увидеть строки:

Будут установлены следующие дополнительные пакеты:
  doublecmd-common doublecmd-plugins

То есть зависимости также будут установлены.

Но изначально можно было бы запустить команду следующим образом:

sudo apt install doublecmd-gtk doublecmd-common doublecmd-plugins

То есть мы явно указываем на 3 пакета, которые мы хотим установить.

Результат при обоих способах установки одинаковый — будут установлены 3 пакета и Double Commander будет прекрасно работать. Означает ли это, что между этими двумя вариантами нет разницы?

На самом деле разница есть. В Linux установленные пакеты делятся и маркируются на 2 группы:


  • установленные явно
  • установленные в качестве зависимостей

Это никак не влияет на их работу.

Но, предположим, мы теперь хотим удалить Double Commander:

sudo apt remove doublecmd-gtk

Обратите внимание на строки:

Следующие пакеты устанавливались автоматически и больше не требуются:
  doublecmd-common doublecmd-plugins
Для их удаления используйте «sudo apt autoremove».

То есть пакеты, которые установлены в качестве зависимостей, когда основной пакет, для которого они устанавливались, удалён, то они будут также удалены при следующей очистке, выполняемой командой

sudo apt autoremove

Но если бы при установке мы указали сразу все три пакета, то все они считались бы установленными явно! Это означает, что зависимости не были бы автоматически удалены после удаления основного пакета — теперь их нужно удалять вручную.

Вывод: если вы хотите установить пакет с зависимостями, то лучше не перечислять его зависимости в строке команды — укажите только основной пакет и пусть менеджер пакетов всё сделает сам. Впоследствии, если вы решите удалить эту программу, вы также сможете автоматически очистить вашу систему от ненужных больше пакетов.


Если вам хочется ещё больше углубиться в эту тему и понять, как именно удаётся соблюдать все зависимости для такого огромного количества программ Linux, то рекомендуется продолжить чтение в статье «Структура APT пакета: разбираемся в строении пакета Debian».


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *