Почему там deb файлы в /var/cache/apt/archives/
?
В каких случаях deb файлы были загружены в тот каталог?
Существует две вещи в Ubuntu (и в Debian, на котором Ubuntu базируется), которые обычно называют "диспетчером пакетов": dpkg
, и APT.
dpkg
программа, которая устанавливает и удаляет пакеты и поддерживает базу данных того, какие пакеты установлены, в какой версии. Когда это устанавливает пакеты, это делает так от .deb
архивные файлы. Эти архивы являются способом, которым распределяются пакеты.
dpkg
действительно больше, чем копирует (или удаляет), файлы, и обновите его базу данных - она также запустит скрипты установки и сценарии удаления. Это можно считать довольно сложным. Но то, что это не сделает, является находкой, и загрузите пакеты.
APT находит и загружает пакеты и выполнения dpkg
соответственно для установки обновите и удалите их. APT не является действительно никакой единственной частью программного обеспечения, хотя существует способный пакет, который обеспечивает его основные части.
APT включает библиотеку (libapt-pkg), который обеспечивает базовую функциональность, к которой получают доступ различные инструменты. Некоторые такие инструменты, как apt-get
, также обеспечиваются способным пакетом. Другие инструменты установлены отдельно. APT также обеспечивает различные конфигурационные файлы, которые управляют, как его оперативная библиотека и программы, которые используют его, работа.
Больше, чем это, APT является системой для того, чтобы сохранить и получить данные о том, что источники программного обеспечения обеспечивают что пакеты в какой версии, и для действия на те данные для автоматического выполнения задач управления пакетом как установка и пакеты обновления. Это включает отслеживание того, какие пакеты необходимы, чтобы другие пакеты работали, и автоматически выбор и установка соответствующих пакетов для удовлетворения этих зависимостей.
Например, когда я говорю apt-get
утилита для установки пакета шоколадной гибели это выясняет то, что должны быть установлены другие пакеты, чтобы это работало, и автоматически получит и установит их также:
$ sudo apt-get install chocolate-doom
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2 libsdl1.2debian
Recommended packages:
doom-engine
The following NEW packages will be installed:
chocolate-doom doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2
libsdl1.2debian
0 upgraded, 6 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/2,846 kB of archives.
After this operation, 8,626 kB of additional disk space will be used.
Графические инструменты как Центр программного обеспечения, программное обеспечение Updater / Менеджер обновлений, и Синаптический выполняют функции, подобные apt-get
. Они также используют систему APT - через комбинацию наблюдения ее правил и использования функциональности, обеспеченной оперативными библиотеками - для изменения, какие пакеты установлены, дать пользователю what's/he (обычно) хочет таким способом, которым вещи (обычно) продолжают работать.
/var/cache/apt/archives
Папка используетсяКогда apt-get
, aptitude
, Центр программного обеспечения, Синаптический, программное обеспечение Updater/, Менеджер обновлений или любая другая утилита управления пакетом загружает пакеты (и другие пакеты, они зависят от) из настроенных источников программного обеспечения, и устанавливает их, загруженные пакеты (т.е. .deb архивные файлы, от которых они установлены) хранятся в /var/cache/apt/archives
.
Если у Вас есть .deb файл на диске, и Вы устанавливаете его с dpkg
, это не заставляет копию его быть сделанной в /var/cache/apt/archives
. Но когда программа, которая использует или реализует систему APT автоматического разрешения зависимости и извлечения пакета, загружает пакеты, это - то, где это хранит их.
В то время как .deb файлы для автоматически загруженных пакетов хранятся в и устанавливаются от /var/cache/apt/archives
, они на самом деле не загружаются непосредственно на то местоположение. Вместо этого неполный (т.е. происходящий) .deb загрузки файла существуют в /var/cache/apt/archives/partial
и затем перемещены в /var/cache/apt/archives
по окончании.
Файлы пакета .deb остаются кэшируемыми в /var/cache/apt/archives
даже после успешной установки в случае, если они необходимы для будущего использования. Но можно безопасно удалить .deb файлы, которые являются достаточно взрослыми, они вряд ли будут необходимы снова с sudo apt-get autoclean
, или уберите кэшируемый .deb
файлы полностью с sudo apt-get clean
. Посмотрите man apt-get
для получения дополнительной информации.
Проиллюстрировать функцию sudo apt-get autoclean
и подобные команды, а также определить, хотите ли Вы выполнить их, можно моделировать их действия путем выполнения затем с -s
флаг. Лучше передавать этот флаг перед autoclean
(или безотносительно другого) глагол действия. Не обычно необходимо выполнить утилиту как корень с sudo
при использовании -s
, потому что никакие фактические изменения не вносятся.
Например, в моей системе:
$ apt-get -s autoclean
NOTE: This is only a simulation!
apt-get needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Del libubsan0 4.9.1-15ubuntu1 [83.7 kB]
Del cups-server-common 1.7.5-3 [519 kB]
Del python2.7 2.7.8-9 [205 kB]
Del g++-4.9 4.9.1-15ubuntu1 [17.4 MB]
Del libstdc++-4.9-dev 4.9.1-15ubuntu1 [1,121 kB]
....
Перечисленные пакеты не были бы удалены; вместо этого, просто кэшируемые .deb файлы были бы удалены. (На самом деле ни одного не произошло, когда я выполнил ту команду, поскольку это было просто моделирование.)
Программное обеспечение, установленное через dpkg
(через APT или иначе), на самом деле не выполняется из .deb файла, который обеспечивает его. Как отмечено в фоновом режиме информационный раздел, .deb файлы извлечены. Поэтому они могут быть удалены, и установленный пакет продолжает функционировать.
Файлы по всей системе, которые установлены от .deb пакетов, не загружаются на свои текущие местоположения - скорее они извлечены им из .deb файлов, которые обеспечивают их (или возможно особенно созданный во время установки или впоследствии, как имеет место для некоторых конфигурационных файлов).
Но файлы .deb не являются единственными файлами, загруженными утилитами управления пакетом. Часто другие файлы загружаются, которые предоставляют информацию о том, где пакеты существуют.
Например, когда я работаю sudo apt-get update
, вывод включает строки как:
Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]
Это означает, что файл как http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 был загружен и исследован, чтобы помочь обновить базу данных APT с информацией о том, какие пакеты доступны (и в какой версии) из того конкретного источника программного обеспечения. Можно найти файлы Пакетов и другие такие файлы, в /var/lib/apt/list
каталог. Копии, сохраненные там, даны, отличив имена как us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages
, как может быть много таких файлов.
Вы спросили о apt-cache
конкретно. Это запрашивает базу данных пакета, но это не вносит изменений в систему или загружает любые файлы.
Когда Центр программного обеспечения Ubuntu загружает данные для своего собственного использования, характерного для него и не касающийся общего APT (или dpkg
) функциональность, это хранит их в /var/cache/software-center
.
Например, в моей системе (и в большинстве систем), та папка содержит a xapian
подпапка:
ek@Ilex:/var/cache/software-center/xapian$ ls
flintlock postlist.baseB record.baseB spelling.baseB termlist.baseB
iamchert postlist.DB record.DB spelling.DB termlist.DB
postlist.baseA record.baseA spelling.baseA termlist.baseA
Центр программного обеспечения использует Xapian для индексации информации для быстрого поиска.
Некоторые дополнительные утилиты, которые работают с системой APT, загружают и хранят файлы как часть их операции. apt-file
не установлен по умолчанию в Ubuntu, но может быть установлен от пакета способного файла.
apt-file
хранит информацию на том, какие файлы обеспечиваются тем, какие пакеты (даже для пакетов, которые локально не установлены). Это получает эту информацию о содержании пакетов путем загрузки сжатый Contents
файлы:
$ sudo apt-file update
Downloading complete file http://us.archive.ubuntu.com/ubuntu/dists/utopic/Contents-amd64.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 29.6M 100 29.6M 0 0 856k 0 0:00:35 0:00:35 --:--:-- 832k
Когда apt-file update
выполняется как корень (как выше), эти файлы загружаются на /var/cache/apt/apt-file
каталог. Для обнаружения этого я работал:
$ sudo updatedb
$ locate Contents-amd64
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic-proposed_Contents-amd64.gz
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic_Contents-amd64.gz
Обратите внимание, что информация, предоставленная в этом сообщении, дает много примеров файлов данных dowloaded и сохраненный утилитами управления пакетом на Ubuntu, но не должна считаться исчерпывающим списком экземпляров, где такие файлы используются и хранятся.