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 25/03/2016, à 17:22

bdadvi94

Commande pour supprimer les paquets selon un critère

Salut, je cherche désespérément une commande pour supprimer totalement TOUS les paquets (et dépendances, configurations etc) qui ont été installé à une certaine date (aujourd'hui).

Synaptic ne me propose pas de trier mes paquets par date...


Merci de votre aide big_smile

Hors ligne

#2 Le 25/03/2016, à 17:55

erresse

Re : Commande pour supprimer les paquets selon un critère

Salut,
Tu peux toujours afficher dans Synaptic l'historique et tu auras toutes les installations/désinstallations classées par date (dont celles d'aujourd'hui), mais tu risques de devoir désinstaller à la main un par un les paquets, en choisissant toutefois "désinstallation complète pour purger les configurations. Après quoi, un coup de "sudo apt-get --purge autoremove" pour dégager les dépendances orphelines et le tour est joué.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#3 Le 26/03/2016, à 19:00

LeoMajor

Re : Commande pour supprimer les paquets selon un critère

bonsoir,
avec les historiques,
avec un gz

read -p "A partir de quelle date ?" dat; dt=$dat; awk 'dt~$0,/End-Date/ {if($0~/Start-Date/) printf("%s\n%s\n","----",$2) ; if($0~/Install|Upgrade|Remove|Purge/) { printf("%s\n",$1); for(i=2;i<=NF;i++) {if($i~/:amd64|:i386|:i686/) {gsub(/:amd64|:i386|:i686/,//,$i); printf("%s \0",$i)  } } printf("%s\n"," ") }}' < <(zcat /var/log/apt/history.log.4.gz)

----
2015-11-05
Install:
libsctp11 lksctp-tools1  
----
2015-11-05
Install:
libmozjs185-1.01  
----
2015-11-05
Remove:
libexttextcat-data1 libwps-0.2-21 fonts-opensymbol1 libexttextcat01  
....

nb: la date est facultative

ou sans gz

read -p "A partir de quelle date ?" dat; dt=$dat; awk 'dt~$0,/End-Date/ {if($0~/Start-Date/) printf("%s\n%s\n","----",$2) ; if($0~/Install|Upgrade|Remove|Purge/) { printf("%s\n",$1); for(i=2;i<=NF;i++) {if($i~/:amd64|:i386|:i686/) {gsub(/:amd64|:i386|:i686/,//,$i); printf("%s \0",$i)  } } printf("%s\n"," ") }}'  /var/log/apt/history.log

après, tu as juste à copier la ligne des paquets qui t'intéresse, et la commande désirée.

2016-03-01
Install:
aptitude-doc-fr1  eclipse-rcp1 eclipse-platform-data1
....
sudo apt remove aptitude-doc-fr1  eclipse-rcp1 eclipse-platform-data1 -s
sudo apt remove aptitude-doc-fr1  eclipse-rcp1 eclipse-platform-data1
..

Dernière modification par LeoMajor (Le 26/03/2016, à 19:01)

Hors ligne

#4 Le 27/03/2016, à 15:35

LeoMajor

Re : Commande pour supprimer les paquets selon un critère

petite erreur avec le "1" à la fin, sur le gsub

gsub(/:amd64|:i386|:i686/,"",$i)

Hors ligne