Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/12/2022, à 01:38

cristobal78

Nettoyer son système en ligne de commandes

Bonjour à tous

- Pour nettoyer de temps en temps mon système et éviter ainsi un "gonflement" de mon  "/"  j'utilise depuis longtemps déjà les commandes suivantes :

sudo purge-old-kernels
sudo apt clean  
sudo apt autoremove --purge -y 

- Récemment je suis tombé sur d'autres commandes de nettoyage proposées par Coeur Noir dans ce fil :
https://forum.ubuntu-fr.org/viewtopic.php?id=2075742
post # 23

J'en fais un copié/collé pour éviter les erreurs et ça donne ceci :

sudo apt autopurge

pour enlever les paquets devenus obsolètes, inutilisés.
Puisqu'il s'agit d'une mise à niveau, voir s'il reste des miettes anciennes :

apt list ~c

si la liste est conséquente, pour nettoyer :

sudo apt purge ~c

Mes questions :
Mes commandes sont elles correctes et adaptées ?
Font-elles double emploi avec celles de Coeur Noir ?
Sont-elles complémentaires ?


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#2 Le 08/12/2022, à 03:11

nany

Re : Nettoyer son système en ligne de commandes

cristobal78 a écrit :

Mes commandes sont elles correctes et adaptées ?

purge-old-kernels n’est plus nécessaire depuis la version 16.04 d’Ubuntu, autoremove fait le job (cf. le §5.1 de la page de doc kernel). Les autres commandes sont correctes.

cristobal78 a écrit :

Font-elles double emploi avec celles de Coeur Noir ?

apt autoremove --purge et apt autopurge font double emploi car elles sont équivalentes.

cristobal78 a écrit :

Sont-elles complémentaires ?

apt purge ~c est complémentaire. Mais, attention, cette syntaxe n’est valable qu’à partir de 20.04.



En résumé, pour mettre à jour ta liste et pour être sûr de ne rien louper, celle-ci devrait être :

sudo apt clean
sudo apt autopurge -y
apt-mark showmanual | awk '/linux-.*[0-9]/ && ! /hwe-[0-9][02468].04/{print}' | xargs -r sudo apt-mark auto
sudo apt purge ~c -y

Hors ligne

#3 Le 08/12/2022, à 03:56

Coeur Noir

Re : Nettoyer son système en ligne de commandes

Oh tu sais ces commandes ne « m'appartiennent pas », je ne fais que relayer ce que je vois ici ou là - après avoir testé chez moi et dans la mesure du possible après avoir compris comment ça marche…

sudo apt autopurge

n'est par exemple qu'un alias spécifique à la commande apt, une version plus courte à écrire pour

sudo apt autoremove --purge -y

donc c'est la même chose.

Les utilitaires évoluent, intègrent de nouvelles options ou syntaxes ou fonctionnalités et souvent pour ne pas trop perturber les habitudes, les anciennes syntaxes restent valables… mais pas toujours.
En général si une syntaxe/option est devenue obsolète, la commande le signalera dans son retour.

Jette un œil à https://forum.ubuntu-fr.org/viewtopic.p … #p22273320 - je ne remercierai jamais assez Xubu et sa mémoire !
Et d'autres pistes, à partir de là : https://doc.ubuntu-fr.org/nettoyer_ubuntu


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#4 Le 08/12/2022, à 08:31

Compte supprimé

Re : Nettoyer son système en ligne de commandes

Bonjour,

nany a écrit :
apt-mark showmanual | awk '/linux-.*[0-9]/ && ! /hwe-[0-9][02468].04/{print}' | xargs -r sudo apt-mark auto

Que fait exactement celle-ci? et pourquoi?
Merci

#5 Le 08/12/2022, à 09:01

FrancisFDZ

Re : Nettoyer son système en ligne de commandes

Bonjour,
Je trouve que noter ces commandes (et les utiliser) est une bonne habitude, ça éviterait pas mal de problèmes de blocage de mise à jour pour cause de manque de place


-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]

Hors ligne

#6 Le 08/12/2022, à 09:15

xubu1957

Re : Nettoyer son système en ligne de commandes

Bonjour,

@MPython Alaplancha

> kernel#via_autoremove

extrait § 5.1 a écrit :

En pratique, si un ou plusieurs vieux noyaux résistent à la purge, il suffit de passer cette commande dans le terminal :

apt-mark showmanual | awk '/linux-.*[0-9]/ && ! /hwe-[0-9][02468].04/{print}' | xargs -r sudo apt-mark auto

Puis de repasser la commande de nettoyage automatique :

sudo apt autoremove --purge -y

Après cela, il ne restera que le dernier noyau et l'avant-dernier

Et le tutoriel de nany Sens interdit, paquets cassés > 0, espace insuffisant… Que faire?

Dernière modification par xubu1957 (Le 08/12/2022, à 09:24)


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#7 Le 08/12/2022, à 09:28

Compte supprimé

Re : Nettoyer son système en ligne de commandes

Merci @xubu1957
Donc la commande cherche parmi les paquets installés manuellement s'il n'y a pas un paquet qui correspondrait à un noyau afin de le mettre en installé automatiquement .

Faudra un jour que je me mette à étudier awk... roll

#8 Le 08/12/2022, à 09:48

MicP

Re : Nettoyer son système en ligne de commandes

Dans son message #4, MPython Alaplancha a écrit :

nany a écrit :
apt-mark showmanual | awk '/linux-.*[0-9]/ && ! /hwe-[0-9][02468].04/{print}' | xargs -r sudo apt-mark auto

Que fait exactement celle-ci? et pourquoi?

Il te faut la "diviser" en plusieurs lignes de commandes
dont la sortie de l'une va dans l'entrée de l'autre par l'intermédiaire d'un tube ( <=> le caractère |  )

=======
La première ligne de commande :

apt-mark showmanual

… va utiliser la commande apt-mark avec l'option showmanual
dont la description dans les page man de cette commande est :

Option showmanual a écrit :

showmanual peut être utilisé de manière analogue à showauto pour afficher la liste des paquets installés manuellement.

… et donc, quand on lance cette ligne de commande,on peut voir qu'elle retourne une liste de lignes
avec, dans chacune de ces lignes, un nom de paquetage (ceux qui ont été marqués comme installés manuellement).

=======
… ensuite, cette liste de noms de paquetage va donc passer par un | <=> tube (ou pipe en anglais)
ce qui fait que cette liste sera reçue en entrée de la deuxième ligne de commande :

awk '/linux-.*[0-9]/ && ! /hwe-[0-9][02468].04/{print}'

… qui va commencer par filtrer les noms des paquetages qu'elle va envoyer en sortie (commande print)
en fonction des 2 expressions rationnelles suivantes :

linux-.*[0-9]

et PAS (le point d'exclamation est là pour indiquer une négation)

hwe-[0-9][02468].04

La première expression rationnelle fera en sorte que seuls seront envoyés en sortie de commande
les noms de paquetages dans lesquels il y aura :
linux-   <=> une chaîne de caractères égale à linux-
.*          <=> suivie d'un caractère quelconque (représenté par le point)
                     et l'étoile qui suit ce point indique que le caractère qui précède cette étoile pourra être exister zero ou plusieurs fois
[0-9]     <=> suivie d'un chiffre entre 0 et 9 (0 et 9 compris)

La deuxième expression rationnelle fera en sorte que ne seront PAS (parce que négation par le point d’exclamation qui précède cette regex) envoyés en sortie de commande
les noms de fichiers dans lesquels il y aura :
hwe-      <=> une chaîne de caractère égale à hwe-
[0-9]       <=> suivie d'un chiffre entre 0 et 9 (0 et 9 compris)
[02468]  <=> suivi d'un chiffre égal à 0 ou 2 ou 4 ou 6 ou 8
.04         <=> suivi d'un caractère quelconque (indiqué par le point) lui même suivit par un chiffre 0 puis un chiffre 4
=======
Les noms de paquetages qui seront retournés par la commande awk
seront ensuite envoyés par le tube | en entrée de la ligne de commande :

xargs -r sudo apt-mark auto

La description de ce que fait l'option r de la commande xargs
dans le manuel est :

l'option "r" de la commande "xargs" a écrit :

Si l'entrée standard ne contient aucun caractère non blanc, ne pas exécuter la commande.
Normalement, la commande est exécutée une fois même s'il n'y a pas d'entrée.
Cette option est une extension GNU.

La commande xarg prendra chacun des noms de paquetages reçus depuis le tube |
pour les donner en argument à la ligne de commandes suivante :

sudo apt-mark auto

qui va accéder aux privilèges du compte superutilisateur root
afin de lancer la commande auto de la commande apt-mark
dont la description, dans la page du manuel est :

Option auto de la commande apt-mark a écrit :

Marquer les paquets indiqués comme installés automatiquement.

qui va donc marquer comme installés automatiquement les noms de paquetages
que la commande xargs lui enverra.

Dernière modification par MicP (Le 08/12/2022, à 10:54)

Hors ligne

#9 Le 08/12/2022, à 10:14

Compte supprimé

Re : Nettoyer son système en ligne de commandes

Merci @MicP pour cette réponse exhaustive.
J'avais bien lu avec le man ce que fait la première et la dernière commande, ce que je ne comprenais pas c'est ce que faisait awk(et tu y as répondu smile ). Ce qui m'empêchait de comprendre la finalité de l'ensemble.
Reste que ma méconnaissance sur comment les noyaux sont désignés ne me permet pas de comprendre dans le détail ce que l'on cherche à exclure (dans awk).

Dernière modification par Compte supprimé (Le 08/12/2022, à 10:14)

#10 Le 08/12/2022, à 19:22

cristobal78

Re : Nettoyer son système en ligne de commandes

bravo et merci à MicP pour le magnifique décorticage des commandes !!!

Maintenant que tous les experts ont discuté et donné leurs avis pourquoi ne regroupe-t-on pas toutes les commandes de nettoyage dans la doc en précisant par exemple :

Votre         Cdes adaptées
version      à votre version
----------      ---------------------
16.04         liste des cdes ...
18.04         liste des cdes ...
20.04         liste des cdes ...
22.04         liste des cdes ...


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne