Почему делают apt-get install package
и затем apt-get remove package
не использовать и освобождать почти точно то же место? Например, с пакетом "latex2html" каждый добирается:
ubuntu:~$ sudo apt install latex2html
Need to get 758 MB of archives.
After this operation, 1,211 MB of additional disk space will be used.
Do you want to continue? [Y/n]
....
ubuntu:~$ sudo apt remove latex2html
The following packages will be REMOVED:
latex2html
0 upgraded, 0 newly installed, 1 to remove and 92 not upgraded.
After this operation, 5,578 kB disk space will be freed.
Do you want to continue? [Y/n]
Если бы мы могли проверить полный вывод этих двух команд, мы, вероятно, обнаружили бы, что apt-get install latex2html
установили намного больше пакетов (зависимостей latex2html
), чем apt-get remove latex2html
удалили (только одну, latex2html
сам).
Легко видеть, что сумма набора положительных чисел A больше, чем сумма множества B, которое является истинным подмножеством A. Более конкретно: пакет latex2html
(набор B по аналогии) занимает меньше пространство, чем тот же пакет, плюс все его зависимости (установите A, если во время установки пакета была хотя бы одна неудовлетворенная зависимость).
Если вы хотите удалить все неиспользованных 1 sup> пакетов зависимостей, вы можете использовать:
sudo apt remove <PACKAGE>
sudo apt autoremove
или просто
sudo apt autoremove <PACKAGE>
Все эти команды будут запрашивать подтверждение, если Apt намеревается сделать что-то помимо того, что вы указали ему сделать напрямую, e. г. установить или удалить другой пакет поверх тех, которые указаны в командной строке. Вы также можете попросить apt
показывать только то, что он будет делать, а не делать это на самом деле через параметры командной строки -s
, --simulate
, --just-print
, --dry-run
, --recon
или --no-act
( все эквивалентные).
1 sup> В этом контексте «неиспользованный» означает, что ни один установленный вручную пакет не зависит от него (напрямую или транзитивно). «Вручную» означает, что кто-то или что-то поручил Apt установить этот конкретный пакет напрямую, т.е. е. через apt-get install <PACKAGE>
, Центр программного обеспечения или какой-либо другой интерфейс менеджера пакетов, и что он не был просто выбран для установки в качестве зависимости другого пакета от Apt.
В дополнение к тому, что сказанный @DavidFoerster, apt remove
не только не удалит зависимости. Особенно файлы конфигурации довольно часто разбросаны, лежа. От man apt-get
:
удаляют
, удаляют, идентично установке за исключением того, что пакеты удалены вместо установленного. Обратите внимание, что удаление пакета оставляет свои конфигурационные файлы в системе. Если знак "плюс" будет добавлен к имени пакета (без прошедшего пространства), то определенный пакет будет установлен вместо удаленного.
чистка
чистка идентична для удаления за исключением того, что пакеты удалены и очищены (любые конфигурационные файлы удалены также).
Для избавлений от всего, включая файлы конфигурации, выполнение sudo apt purge
вместо этого, как отмечено в кавычке.
Также примечание, которое apt
помещает сами загруженные файлы пакета в /var/cache/apt/archives/
в случае, если ему нужны они снова. Они не будут удалены ни одним из sudo apt remove/autoremove/purge
, который поднимает немного больше дискового пространства. Можно удалить все кэшируемые файлы пакета, которые не могут больше загружаться путем выполнения sudo apt autoclean
и все они использующие sudo apt clean
.
От man apt-get
:
чистый
чистый убирает локальный репозиторий полученных файлов пакета. Это удаляет все кроме файла блокировки от/var/cache/apt/archives/и/var/cache/apt/archives/partial/.
авточистый (и авточистый псевдоним с тех пор 1.1)
Как чистый, авточистое убирает локальный репозиторий полученных файлов пакета. Различие - то, что это только удаляет файлы пакета, которые больше не могут загружаться и в основном бесполезны. Это позволяет кэшу сохраняться за длительный период без него выходить из-под контроля. Параметр конфигурации APT:: чисто установленный будет препятствовать тому, чтобы установленные пакеты были стерты, если это будет установлено на прочь.