Я недавно перешел с Windows на Linux, и у меня есть вопрос о том, как Ubuntu / Linux заботится о дублировании файлов, когда установка программного обеспечения становится грязной. Чтобы привести пример, позвольте мне поговорить о том, с чем у меня сейчас проблемы; установка Ruby On Rails. В какой-то момент при загрузке возникла ошибка (не относящаяся к этой теме), и для ее устранения я вернулся к началу установки и выполнил все необходимые шаги, повторно загрузив большую часть того, что уже скачал. Я привык к тому, что Windows просто засоряет все дублированными файлами, и я чувствую, что Ubuntu умнее этого. Как Ubuntu управляет пользователем, загружающим несколько вещей? Перед каждой установкой проверяется, находится ли какой-либо ключевой файл в системе, и если он есть, он не загружает какие-либо файлы? В Терминале я никогда не получал сообщения от системы, в которых говорилось что-то вроде
«Пользователь Алекс уже скачал этот пакет»
, чего я и ожидал. Мне бы очень хотелось подробное, но нетехническое объяснение того, что здесь происходит.
Ubuntu основан на Debian, и поэтому использует APT . Если вы хотите углубиться в детали, загляните на эту вики-страницу.
... но для решения некоторых ваших вопросов:
сначала установочные пакеты кэшируются в /var/cache/apt/archives
. Если пакет был кэширован, он не будет загружен снова, если не доступна более новая версия.
Во-вторых, APT отслеживает установленные пакеты, так что, если вы попытаетесь установить что-то, что уже установлено, вы получите сообщение, что пакет уже является самой новой версией:
~$ sudo apt-get install zsync
Reading package lists... Done
Building dependency tree
Reading state information... Done
zsync is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
в-третьих, APT обычно работает от имени пользователя root, поэтому обычные непривилегированные пользователи не могут загружать и устанавливать программное обеспечение.