GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Pourquoi Apt-get Autoremove ne supprime-t-il pas les anciens noyaux ?

Ma partition de démarrage est sur un SSD, elle n'a donc pas de place pour plus d'environ 8 versions de noyau installées, et éventuellement certaines mises à jour du noyau échoueront à s'installer car ma partition de démarrage est pleine d'anciennes versions. Il y a beaucoup de questions sur la façon de supprimer les anciennes versions (même comment automatiser le processus), mais ma question est simplement celle-ci :Pourquoi apt-get autoremove les détecter et les supprimer automatiquement, et existe-t-il un moyen de le faire ? ? Je veux dire, apt-get est ce qui les a installés de toute façon, donc il les connaît, alors pourquoi choisit-il de laisser toutes les anciennes versions ?

Meilleure réponse

Pour répondre pourquoi, référez-vous au fichier /etc/apt/apt.conf.d/01autoremove-kernels

Comme vous pouvez le voir, il est dit à apt de ne jamais supprimer automatiquement les noyaux, comme indiqué par un autre fichier (script), /etc/kernel/postinst.d/apt-auto-removal . Et le voici :

Si vous installez manuellement 2 noyaux choisis, c'est-à-dire le premier et l'actuel, alors apt-autoremove ne supprimera jamais que les anciennes versions que vous n'avez pas installées manuellement, vous aurez donc toujours ces 2 options plus la dernière. /P>

Mise à jour :

Dans le /etc/kernel/postinst.d/apt-auto-removal il y a cette partie :

if [ "$latest_version" != "$installed_version" ] 
   || [ "$latest_version" != "$running_version" ] 
   || [ "$installed_version" != "$running_version" ]
then
        # We have at least two kernels that we have reason to think the
        # user wants, so don't save the second-newest version.
        previous_version=
fi

Donc, si vous comparez la sortie de 01autoremove-kernels fichier et uname -r vous vous rendrez compte que le noyau en cours d'exécution et le plus récent avant lui sont conservés pour ne jamais être supprimés par ce script. Il s'avère qu'il existe un autre fichier /etc/apt/apt.conf.d/01autoremove , où il y a des lignes :

    APT
    {
      NeverAutoRemove
      {
            "^firmware-linux.*";
            "^linux-firmware$";
      };
  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

Vous pouvez donc les commenter, et cela vous permettra de supprimer automatiquement les noyaux avec apt-autoremove , mais rappelez-vous - faites cela à vos risques et périls


Ubuntu
  1. Pourquoi le tilde (~) ne se développe-t-il pas à l'intérieur des guillemets doubles ?

  2. Pourquoi le script Bash ne reconnaît-il pas les alias ?

  3. Pourquoi le ~/.bash_profile ne fonctionne-t-il pas ?

  4. Grep - Pourquoi les crochets dans le modèle Grep suppriment-ils le processus Grep des résultats Ps?

  5. J'exécute `sudo Apt-get Remove Python2.7`, puis-je restaurer Ubuntu maintenant ?

Comment supprimer les anciens noyaux sur Ubuntu 16.04, 18.04 et 19.04

Comment supprimer les anciens noyaux sur Ubuntu

Comment supprimer les raccourcis sur Google Chrome

Comment supprimer les anciennes versions du noyau pour nettoyer le menu de démarrage ?

Pourquoi les récupérations de mise à jour Apt-get sont-elles si importantes ? ?

Pourquoi Cryptkeeper ne fonctionne-t-il pas dans la version 12.04 ?