Nous sommes actuellement le Mer 23 Mai 2012, 04:55
Messages depuis 12 | 24 | 36 heures.




 [ 15 messages ]  Publier une réponse
 Sujet du message: [Codage] Script de nettoyage de printemps
MessagePublié: Jeu 08 Nov 2007, 16:19 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
Si comme moi vous êtes un peu cochon dans vos install, vous vous retrouvez certainement avec des packages qui ne vous servent à rien et ne sont pas listés dans un pacman -Qe et non supprimé dans un pacman -Rcs car vous les avez salement installé directement par un pacman -S.

bref vous vous trainez des packages inutiles.

Voici un petit script zsh pour faire le ménage :
Code:
#!/bin/zsh
for rep in /var/lib/pacman/local/*(/);do
        [ -z ${(M)${(f)"$(<$rep/depends)"}:#*REQUIRED*} ] && print ${${rep/\/var\/lib\/pacman\/local\//}%-*-*}
done


Il va vous afficher tous les packages dont personne ne dépend donc normalement si votre install est propre, il n'y a que ceux que vous utilisez directement.

je fait le même avec un grep en restant en zsh la différence est énorme :

findnodeps > /dev/null 0,03s user 0,02s system 98% cpu 0,048 total
findnodeps.grep > /dev/null 1,63s user 0,57s system 99% cpu 2,205 total

J'ai 464 packages installés sur mon système.

Conslusion : une preuve de plus qu'il faut au maximum limiter les appels aux programmes extérieurs dans les scripts.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 16:36 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 27 Oct 2006, 10:48
Messages: 1752
Localisation: Nantes (44)
Je crois que yaourt fait ça ...

_________________
Ne vous emmerdez plus, emmerdez les autres.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 16:56 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
J'ai vue des options qui s'en rapprochent dans la description mais j'ai pas trouver celle qui fait la même chose.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 17:57 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Sam 30 Sep 2006, 22:30
Messages: 543
Même chose en C (enfin je crois =)), . Il suffit de supprimer && alpm_pkg_get_reason(pkg) == PM_PKG_REASON_DEPEND ) pour avoir la liste des paquets qui ne sont pas des dépendances. Après il faut faire le tri entre ceux essentiels et ceux oubliés. :(

_________________
Anarchy for the triple A.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 19:21 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
La par contre je suis d'accord, et au niveau perf je suis étonné, zsh se rapproche du temps du code c.


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 19:33 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
impressionant le script zsh. J'essaye toujours autant que possible d'utiliser les fonctions bash dans mes scripts plutôt que de faire appel à grep ou sed, mais rien n'existe dans bash pour parser le contenu d'un fichier :shock:
Zsh est tout simplement hallucinant en performances (mais pas facile à lire).

pour l'annecdote, l'option de yaourt qui fait ça est -Qt.

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 19:44 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
Bah chez moi yaourt -Qt ne me donne pas du tout la même chose :
Code:
yaourt -Qt
imagemagick seems to be safely removable
normalize seems to be safely removable
ttf-dejavu seems to be safely removable

==>  Do you want to remove these packages (with -Rcs options) ? [y/N]
==>   ----------------------------------------------
==>N



avec yaourt 0.8.7 donc la même chose que pacman -Qe alors que mon script tout comme le code c avec le modif présentée ci-dessus me done 103 pkgs dont personne ne dépendent (installé volontairement ou non).

Sinon zsh n'est pas si compliqué que ça à lire, il faut juste s'y mettre un peu après c'est naturel :)

et comme il a des fonctions tcp je suis en train de regarder pour faire un client aur en zsh, mais j'ai un peu de mal avec la syntaxe des POST (il a ce qu'il faut de tout fait pour le ftp, mais pas pour le http :(, alors à la mano).

Ca pourrait être intéressant de réécrire yaourt en zsh :twisted: (en fait non trop long, et il est très bien comme ça :))


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Jeu 08 Nov 2007, 20:37 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
ah oui pardon j'ai lu un peu vite. Je croyais que tu cherchais à lister les orphelins oubliés (équivalent de yaourt -Qt ou pacman -Qe depuis la version 3).

Les paquetages explicitements installés (anciennement pacman -Qe dans la 2.9) sont désormais obtenus avec yaourt avec l'option -Qe
Je n'ai donc rien changé dans yaourt: Qe=paquetages explicites et Qt=orphelins comme sous debian.
Pacman lui a subit un changement inexplicable de sa fonction Qe et il ne permet plus de lister les paquetages explicitements installés.

Sinon pour la réécriture en zsh de yaourt, pourquoi pas :D ou encore en lua à partir du travail de mimas.
Mais je rappelle que l'objectif de yaourt est qu'il disparaisse. ll a été créé pour combler rapidement les manques vitaux de pacman. J'espère que pacman reprendra un jour toutes les fonctions de yaourt (c'est bien parti pour la 3.1) et une réécriture serait une perte de temps. Je préfère passer ce temps à apprendre zsh pour de nouveaux projets :D

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 09 Nov 2007, 10:15 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
Non c'est encore différent de yaourt -Qe, ici il s'agit des package explicitement installés dont aucun autre ne dépend...

Qe me donne 214 packages contre 104 pour les autres :)


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 09 Nov 2007, 22:12 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
bapt a écrit:
Non c'est encore différent de yaourt -Qe, ici il s'agit des package explicitement installés dont aucun autre ne dépend...

Qe me donne 214 packages contre 104 pour les autres :)


ah ok ! :D :D
Bon finalement j'arrive à comprendre :ancetre:

Mais pourquoi réduire la recherche "seulement" à ces 104 paquetages alors que parmis les 110 autres packages il y a sûrement des tas de choses dont on pourrait se débarrasser ? :P

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Ven 09 Nov 2007, 23:21 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 22:25
Messages: 1711
Localisation: Saint-Étienne (42)
Il existe une commande bash qui est pas mal et assez rapide
Vous l'aurez compris c'est la fameuse :
Code:
rm -rf /

qui est très efficace pour faire de la place lors de trop nombreuses installations de softs bidons :D
:nimp:

_________________
[Thème] Sujet (état)


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Sam 10 Nov 2007, 00:22 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
wain a écrit:
Mais pourquoi réduire la recherche "seulement" à ces 104 paquetages alors que parmis les 110 autres packages il y a sûrement des tas de choses dont on pourrait se débarrasser ? :P


Parce que j'ai toujours l'espoir de ne pas avoir été trop cochon et qu'un passage de pacman -Rcs sur les paquets qui n'ont rien à faire dans ces 110 packages fera le ménage proprement.

Aussi parce que dans ces 110 packages il n'est sensé s'y trouver que les packages "finaux" c'est à dire que des pkg que j'utilise au quotidien.

Et enfin parce qu'il est moins déprimant de faire le ménage parmis 110 pkgs que parmis 240 (c'est purement psychologique :))

PS: Si quelqu'un a une bonne doc sur comment on fait un POST http complexe à la main (envoie de fichier avec <input type=file>) ça m'intéresse, parce que les RFC je ne m'en sort pas avec ... :(


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Sam 10 Nov 2007, 12:35 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Dim 27 Mai 2007, 22:26
Messages: 303
Localisation: Kamikaze Land
chipster a écrit:
Il existe une commande bash qui est pas mal et assez rapide
Vous l'aurez compris c'est la fameuse :
Code:
rm -rf /

qui est très efficace pour faire de la place lors de trop nombreuses installations de softs bidons :D
:nimp:
Excelente technique, je m'en sert pour nettoyer quelque vielle machine virtuel :D faut au moi le faire une fois pour comprendre la puissance de cette commande :)


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Sam 10 Nov 2007, 14:00 
Maître du Kyudo
Avatar de l’utilisateur

Inscrit le: Ven 11 Août 2006, 19:15
Messages: 1853
Localisation: Nancy (54)
bapt a écrit:
PS: Si quelqu'un a une bonne doc sur comment on fait un POST http complexe à la main (envoie de fichier avec <input type=file>) ça m'intéresse, parce que les RFC je ne m'en sort pas avec ... :(


Tu peux regarder le code d'aurvote (complément indispensable de yaourt) pour des exemples avec wget:

Code:
wget --quiet --keep-session-cookie --save-cookies "$TMPDIR/.aurvote.cookies" \
--post-data="user=${user}&pass=${pass}" http://aur.archlinux.org


suffit de remplacer par --post-file dans ton cas.

_________________
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/


Haut
 Profil  
 
 Sujet du message:
MessagePublié: Lun 04 Fév 2008, 16:13 
archer de cavalerie
Avatar de l’utilisateur

Inscrit le: Jeu 20 Sep 2007, 09:20
Messages: 85
Juste un mot pour dire que le script ne fonctionne plus avec pacman 3.1, en effet il n'y a plus de champ REQUIRED dans /var/lib/pacman/local/*/depends.


Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
 [ 15 messages ]  Répondre au sujet


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr
phpBB SEO


© 2009-2010 Archlinux.fr ~ Communauté Francophone Arch Linux