Antworten:
In Ubuntu (und in Debian, auf dem Ubuntu basiert) gibt es zwei Dinge, die allgemein als "Paketmanager" bezeichnet werden: dpkg
und APT.
dpkg
ist ein Programm, das Pakete installiert und entfernt und eine Datenbank darüber verwaltet, welche Pakete in welchen Versionen installiert sind. Wenn Pakete installiert werden, erfolgt dies aus .deb
Archivdateien. Diese Archive sind die Art und Weise, wie Pakete verteilt werden.
dpkg
Kopiert (oder löscht) Dateien und aktualisiert die Datenbank. Außerdem werden Installations- und Entfernungsskripte ausgeführt. Es kann als ziemlich raffiniert angesehen werden. Was es aber nicht tun wird , ist Pakete zu finden und herunterzuladen.
APT findet und lädt Pakete herunter und wird dpkg
ordnungsgemäß ausgeführt, um sie zu installieren, zu aktualisieren und zu entfernen. APT ist eigentlich keine einzelne Software, obwohl es ein passendes Paket gibt, das die wesentlichen Teile enthält.
APT enthält eine Bibliothek ( libapt-pkg ), die Kernfunktionen bietet, auf die verschiedene Tools zugreifen . Einige dieser Tools apt-get
werden auch vom apt- Paket bereitgestellt. Andere Werkzeuge werden separat installiert. APT bietet auch verschiedene Konfigurationsdateien, die steuern, wie die Kernbibliothek und die Programme, die sie verwenden, funktionieren.
Darüber hinaus ist APT ein System zum Speichern und Abrufen von Daten darüber, welche Softwarequellen welche Pakete in welchen Versionen bereitstellen, und zum Verarbeiten dieser Daten, um automatisch Paketverwaltungsaufgaben wie das Installieren und Aktualisieren von Paketen auszuführen. Dazu gehört, zu verfolgen, welche Pakete benötigt werden, damit andere Pakete funktionieren, und automatisch geeignete Pakete auszuwählen und zu installieren, um diese Abhängigkeiten zu erfüllen.
Wenn ich dem apt-get
Dienstprogramm beispielsweise sage , dass es das Chocolate-Doom- Paket installieren soll , wird herausgefunden, welche anderen Pakete installiert werden müssen, damit es funktioniert, und es wird automatisch abgerufen und auch installiert:
$ 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.
Grafische Tools wie das Software Center, der Software Updater / Update Manager und Synaptic führen ähnliche Funktionen aus wie apt-get
. Sie verwenden das APT-System auch - durch eine Kombination aus Einhaltung seiner Regeln und Nutzung der von Kernbibliotheken bereitgestellten Funktionen -, um zu ändern, welche Pakete installiert sind, um dem Benutzer das zu geben, was er (normalerweise) möchte, so dass die Dinge (normalerweise) weiter arbeiten.
/var/cache/apt/archives
Ordner verwendet wirdWenn apt-get
, aptitude
, Software Center , Synaptic , Software Updater / Update Manager oder andere Paket - Management - Programm - Download - Pakete (und die anderen Pakete , die sie hängen von) von konfigurierten Softwarequellen und sie installieren, die heruntergeladenen Pakete (dh Dateien der .deb - Archiv von dem sie installiert werden) gespeichert werden /var/cache/apt/archives
.
Wenn Sie eine .deb-Datei auf der Festplatte haben und diese mit installieren dpkg
, wird keine Kopie davon erstellt /var/cache/apt/archives
. Wenn jedoch ein Programm, das das APT-System für die automatische Auflösung von Abhängigkeiten und das Abrufen von Paketen verwendet oder implementiert, Pakete herunterlädt, werden diese dort gespeichert.
Während .deb-Dateien für automatisch heruntergeladene Pakete in gespeichert und von dort installiert werden /var/cache/apt/archives
, werden sie nicht direkt an diesen Speicherort heruntergeladen. Stattdessen sind unvollständige (dh laufende) .deb-Dateidownloads in vorhanden /var/cache/apt/archives/partial
und werden nach Abschluss in verschoben /var/cache/apt/archives
.
.deb-Paketdateien bleiben /var/cache/apt/archives
auch nach erfolgreicher Installation zwischengespeichert, falls sie für die zukünftige Verwendung benötigt werden. Sie können jedoch .deb-Dateien, die alt genug sind, mit denen sie wahrscheinlich nicht mehr benötigt werden sudo apt-get autoclean
, sicher entfernen oder die zwischengespeicherten .deb
Dateien vollständig mit löschen sudo apt-get clean
. Siehe man apt-get
für weitere Informationen.
Um die Funktion sudo apt-get autoclean
und ähnliche Befehle zu veranschaulichen und um festzustellen, ob Sie sie ausführen möchten, können Sie ihre Aktionen simulieren , indem Sie sie dann mit dem -s
Flag ausführen . Es ist am besten, diese Flagge vor dem autoclean
(oder einem anderen) Aktionsverb zu übergeben. Es ist normalerweise nicht notwendig , ein Dienstprogramm als root mit läuft sudo
bei der Verwendung -s
, da keine tatsächlichen Änderungen vorgenommen werden.
Zum Beispiel auf meinem System:
$ 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]
....
Die aufgeführten Pakete werden nicht deinstalliert . Stattdessen werden nur zwischengespeicherte .deb-Dateien gelöscht. (Tatsächlich passierte beides nicht, als ich diesen Befehl ausführte, da es sich lediglich um eine Simulation handelte.)
Software, die über dpkg
(über APT oder auf andere Weise) installiert wurde, wird nicht über die .deb-Datei ausgeführt, die sie bereitstellt. Wie im Abschnitt Hintergrundinformationen angegeben , werden .deb-Dateien extrahiert. Aus diesem Grund können sie entfernt werden und das installierte Paket funktioniert weiterhin.
Dateien im gesamten System, die aus .deb-Paketen installiert werden, werden nicht an ihren aktuellen Speicherort heruntergeladen. Sie werden vielmehr aus den .deb-Dateien extrahiert, die sie bereitstellen (oder möglicherweise während der Installation oder danach speziell erstellt, wie dies der Fall ist für einige Konfigurationsdateien).
.Deb-Dateien sind jedoch nicht die einzigen Dateien, die von Dienstprogrammen zur Paketverwaltung heruntergeladen werden. Oft werden andere Dateien heruntergeladen, die Informationen darüber enthalten, wo Pakete vorhanden sind.
Wenn ich zum Beispiel laufe sudo apt-get update
, enthält die Ausgabe Zeilen wie:
Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]
Dies bedeutet, dass eine Datei wie http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 heruntergeladen und untersucht wurde, um die APT-Datenbank mit Informationen darüber zu aktualisieren, welche Pakete verfügbar sind ( und in welchen Versionen) von dieser bestimmten Softwarequelle. Sie finden Paketdateien und andere solche Dateien im /var/lib/apt/list
Verzeichnis. Die dort gespeicherten Kopien erhalten unterschiedliche Namen wie us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages
, da es viele solcher Dateien geben kann.
Sie haben apt-cache
speziell danach gefragt . Es fragt die Paketdatenbank ab, nimmt jedoch keine Änderungen am System vor und lädt keine Dateien herunter.
Wenn das Ubuntu Software Center Daten für den eigenen Gebrauch herunterlädt, die für es spezifisch sind und sich nicht auf allgemeine APT- (oder dpkg
) Funktionen beziehen , speichert es diese in /var/cache/software-center
.
Auf meinem System (und auf den meisten Systemen) enthält dieser Ordner beispielsweise einen xapian
Unterordner:
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
Das Software Center verwendet Xapian, um Informationen für die schnelle Suche zu indizieren.
Einige zusätzliche Dienstprogramme, die mit dem APT-System arbeiten, laden Dateien im Rahmen ihres Betriebs herunter und speichern sie. apt-file
wird nicht standardmäßig in Ubuntu installiert, kann aber aus dem apt-file- Paket installiert werden .
apt-file
speichert Informationen darüber, welche Dateien von welchen Paketen bereitgestellt werden (auch für Pakete, die nicht lokal installiert sind). Diese Informationen zum Inhalt von Paketen werden durch Herunterladen komprimierter Contents
Dateien abgerufen :
$ 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
Wenn apt-file update
es als root ausgeführt wird (wie oben), werden diese Dateien in das /var/cache/apt/apt-file
Verzeichnis heruntergeladen . Um dies zu entdecken, lief ich:
$ 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
Beachten Sie, dass die Informationen in diesem Beitrag eine Reihe von Beispielen für Datendateien enthalten, die von Paketverwaltungsdienstprogrammen unter Ubuntu heruntergeladen und gespeichert wurden. Sie sollten jedoch nicht als vollständige Liste der Fälle betrachtet werden, in denen solche Dateien verwendet und gespeichert werden.
apt-cache
oder / undapt-file
auch viele Dinge herunterladen? Wenn ja, wo sind sie?