У многих программ в 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».
Связанные статьи:
- Как в Linux Mint проверить, установлен ли пакет (100%)
- dpkg: ошибка при обработке пакета ...: пакет абсолютно неработоспособен; перед настройкой его следует переустановить (РЕШЕНО) (70.3%)
- Как исправить ошибку «E: Sub-process /usr/bin/dpkg returned an error code (2)» (70.3%)
- Warning: apt-key is deprecated (РЕШЕНО) (70.3%)
- Примеры базового и продвинутого использования команд apt, apt-cache, dpkg для управления пакетами в Ubuntu/Debian (70.3%)
- Что выбрать между Ubuntu, Kubuntu, Xubuntu и Lubuntu (RANDOM - 29.8%)