Que fait le script d'installation dans l'installation apt-get?

14

Il semblerait qu'il apt-get installva télécharger un paquet Debian et essayer d'exécuter le script d'installation pour:

  • Créer un répertoire approprié
  • Créer un compte approprié
  • Copier des fichiers binaires
  • Copier des fichiers de données
  • Copier les fichiers de conf
  • Copier le script init.d
  • Démarrer le service
  • etc.

Je suis vraiment intéressé et je veux comprendre ce qui se passe étape par étape. Y a-t-il un moyen de voir cela? Vous aimez les commandes du shell d'impression en mode «dry run»?

ShenLei
la source

Réponses:

25

En bref : apt-get installfait tout ce qui est nécessaire pour que votre système puisse exécuter avec succès la nouvelle application logicielle installée.

Version plus longue:

Préliminaires:

Depuis la page de manuel :

Tous les packages requis par le ou les packages spécifiés pour l'installation seront également récupérés et installés.

Ces packages sont stockés sur un référentiel du réseau (Internet). Ainsi, apt-gettélécharge tous les packages nécessaires dans un répertoire temporaire ( /var/cache/apt/archives/). Ils seront téléchargés à partir d'un serveur web ou ftp. Ils sont spécifiés dans le soi-disant sources.list; une liste de référentiels pour le gestionnaire de paquets apt. À partir de là, ils sont installés un par un selon la procédure.

Les premiers à être installés sont ceux qui n'ont plus de dépendances; donc aucun autre paquet ne doit être installé pour qu'ils fonctionnent correctement. Grâce à cela, d'autres packages (qui avaient des dépendances auparavant) n'ont plus de dépendances. Le système continue de répéter ce processus jusqu'à ce que les packages spécifiés soient installés.

Chaque package subit une procédure d'installation.

Procédure d'installation du package:

Dans les distributions Linux basées sur Debian, comme Ubuntu ou Mint, ces paquets sont dans un format standardisé spécifié appelé: deb -> Le format de paquet binaire Debian .

Un tel package contient les fichiers à installer sur le système. Ils contiennent également un fichier de contrôle . Ce fichier contient des scripts que le système de conditionnement doit exécuter dans une situation spécifique; les soi-disant scripts de mainteneur . Ces scripts sont divisés en:

  • preinst: avant l'installation des fichiers dans la hiérarchie des fichiers systèmes
  • postinst: après l'installation
  • prerm: avant la désinstallation
  • postrm: après la désinstallation

Ces scripts sont l'endroit où des utilisateurs spécifiques sont créés ou certains services qui doivent être redémarrés ou d'autres préliminaires nécessaires au fonctionnement du package.

Outre ces scripts, le système de packages possède des déclencheurs qui sont destinés à des événements spécifiques. Par exemple, la régénération d'initrds lors de l'installation d'une nouvelle version du noyau ou ldconfig ou man-db. Ils sont activés par un ou plusieurs packages et exécutés à la fin de l'ensemble du processus d'installation.

Il y a une image intéressante, montrant la procédure d'installation d'un nouveau paquet:

installation

Il y a aussi plus de fichiers de contrôle, les plus importants sont les suivants:

Si vous êtes intéressé, vous pouvez décompresser un paquet deb (après le téléchargement) manuellement et regarder ce qu'il contient:

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

Vous voyez maintenant un fichier appelé data.tar.gzcontenant les fichiers et un fichier appelé control.tar.gzcontenant les quatre scripts du responsable et les fichiers de contrôle mentionnés ci-dessus.

le chaos
la source
De nos jours, je pense qu'il vaudrait mieux utiliser à la dpkg-deb -x package.debplace de ar x package.deb, puisque dpkgc'est le gestionnaire de paquets deb officiel (sur lequel apt-get est utilisé).
Fanatique