Was macht das Installationsskript in apt-get install?

14

Anscheinend apt-get installwird ein Debian-Paket heruntergeladen und versucht, das Installationsskript auszuführen für:

  • Richtiges Verzeichnis erstellen
  • Richtiges Konto erstellen
  • Kopieren Sie Binärdateien
  • Kopieren Sie Datendateien
  • Kopieren Sie Conf-Dateien
  • Kopieren Sie das init.d-Skript
  • Dienst starten
  • etc.

Ich bin sehr daran interessiert und möchte Schritt für Schritt herausfinden, was los ist. Gibt es eine Möglichkeit, es zu sehen? Wie Print Shell-Befehle in einem "Probelauf" -Modus?

ShenLei
quelle

Antworten:

25

Kurz gesagt : apt-get installErledigt alles, was erforderlich ist, damit Ihr System die neu installierte Softwareanwendung erfolgreich ausführen kann.

Längere Version:

Vorbereitungen:

Aus der Manpage :

Alle Pakete, die von den für die Installation angegebenen Paketen benötigt werden, werden ebenfalls abgerufen und installiert.

Diese Pakete werden in einem Repository im Netzwerk (Internet) gespeichert. So apt-getlädt alle benötigten Pakete in ein temporäres Verzeichnis ( /var/cache/apt/archives/). Sie werden von einem Web- oder FTP-Server heruntergeladen. Sie sind in der sogenannten angegeben sources.list; eine Liste der Repositorys für den Paketmanager apt. Von da an werden sie nacheinander prozedural installiert.

Die ersten, die installiert werden, haben keine weiteren Abhängigkeiten. Daher muss kein anderes Paket installiert werden, damit sie ordnungsgemäß funktionieren. Dadurch haben andere Pakete (die zuvor Abhängigkeiten hatten) keine Abhängigkeiten mehr. Das System führt diesen Vorgang so oft aus, bis die angegebenen Pakete installiert sind.

Jedes Paket wird einer Installationsprozedur unterzogen.

Verfahren zur Installation des Pakets:

In Debian-basierten Linux-Distributionen wie Ubuntu oder Mint liegen diese Pakete in einem festgelegten standardisierten Format vor: deb -> Das Debian-Binärpaketformat .

Ein solches Paket enthält die Dateien, die auf dem System installiert werden sollen. Sie enthalten auch eine Steuerdatei . Diese Datei enthält Skripte, die das Verpackungssystem in einer bestimmten Situation ausführen soll. die sogenannten Betreuer-Skripte . Diese Skripte sind unterteilt in:

  • preinst: vor der Installation der Dateien in die Systemdatei-Hierarchie
  • postinst: nach der installation
  • prerm: vor der Deinstallation
  • postrm: nach der Deinstallation

Diese Skripte sind der Ort, an dem bestimmte Benutzer erstellt werden oder einige Dienste, die neu gestartet werden müssen, oder andere Vorbereitungen, die erforderlich sind, damit das Paket funktioniert.

Neben diesen Skripten verfügt das Paketsystem über Trigger , die für bestimmte Ereignisse vorgesehen sind. Zum Beispiel die Neuerstellung von initrds bei der Installation einer neuen Kernel-Version oder von ldconfig oder der man-db. Sie werden von einem oder mehreren Paketen aktiviert und am Ende des gesamten Installationsprozesses ausgeführt.

Es gibt ein interessantes Bild, das den Ablauf einer Installation eines neuen Pakets zeigt:

Installation

Es gibt auch mehr Kontrolldateien, die wichtigsten sind:

Wenn Sie interessiert sind, können Sie ein Deb-Paket (nach dem Herunterladen) manuell entpacken und sehen, was drin ist:

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

Jetzt sehen Sie eine Datei data.tar.gzmit dem Namen, die die Dateien enthält, und eine Datei control.tar.gzmit dem Namen, die die vier Betreuerskripte und die oben genannten Steuerdateien enthält.

Chaos
quelle
Heutzutage glaube ich, dass es besser sein wird, dpkg-deb -x package.debanstelle von zu verwenden ar x package.deb, da dpkges sich um den offiziellen Deb-Paket-Manager handelt (über den apt-get verwendet wird).
Fanatique