Debianeries

Un article de Athena.

Jump to: navigation, search

Sommaire

Linuxeries

Linuxerie 01

sudo ls -l /proc/*/exe 2>/dev/null 
| grep /bin/ 
| awk '{print $10}' 
| xargs dpkg -S 
| sort | uniq  
| awk -F ":" '{print $1}' 
| grep -v xserver                # variante ! / pas mettre à jour serveur X
| grep -v kernel                 # variante ! / pas mettre à jour kernel
| xargs sudo apt-get -s install

Linuxerie 02

 cd /var/log ;
 find . -mmin -30 \
 | xargs file \
 | grep -v data \
 | awk -F ":" '{print $1}' \ 
 | xargs tail -f

Pratique des fois...

Une autre ...

lynx -dump http://checkip.dyndns.org | grep -v "^$" | awk '{print $4}'

Debianeries

Debianerie 01

Le caractère '\' n'est là que pour couper en lignes courtes...

 DISTRIB=testing 
 AGE=5
 
 export LANG=C ; find /usr/bin/ -atime -$(AGE) -type f \
 | xargs dpkg -S 2> /dev/null | grep -v diversion \
 | sort | uniq | \
 | awk -F ":" '{print $1}' \
 | xargs apt-get -s install -t $(DISTRIB)


Question 1 
Ça fait quoi ??
Question 2 
Est-ce une bonne idée ?


Réponse approximative...

Réponse 1
Commentaires OL - Désolé, mais il manque des choses pour l'homme de la rue que je suis 
 AGE =5 pourquoi ?
 export LANG=C pourquoi ?.
 Les 6 lignes de commandes : elles tombent comme cela (un
 cheveu sur la soupe) ou il faut créer un script qui se lancera tout seul ?
Réponse à Olivier 
Oui, pour l'instant ça tombe du ciel (enfin, plutôt de l'imagination de celui qui propose). Le but du jeu n'est pas de tout mâcher et poser dans une page wiki mais plutôt de s'entraîner à creuser pour trouver le pourquoi du comment. Il est prévu de compléter la page progressivement mais à chacun de contribuer de manière positive. C'est un «jeu».

Effectivement, tous les éclaircissements n'ont pas (encore) été donnés... Il faut expérimenter un peu aussi...

'|' 
le caractère '|' («pipe») sert a enchaîner deux commandes de base, c-à-d que le résultat d'une commande est fourni en entrée à celle qui suit.
find /usr/bin/ -atime -$(AGE) -type f 
Rechercher dans /usr/bin tous les fichiers réguliers (-type f) dont le dernier accès à eut lieu dans les dernières 5 (Variable AGE) * 24 heures, soit les 5 derniers jours.
xargs dpkg -S 2> /dev/null 
On passe en argument (xargs) la liste obtenue pour rechercher les paquets installés (dpkg -S) et redirige les erreurs de syntaxe (2>) vers rien (/dev/null)
grep -v diversion 
On récupère toute la liste sauf diversion ???? (là je vois pas trop...) / ha, ha, .../
sort 
On tri la liste (par défaut, c'est l'ordre alphabétique qui est appliqué)
awk -F ":" '{print $1}' 
On définit pour la liste le séparateur (:) et on récupère la valeur du premier champs.
uniq 
On enlève les doublons. (pas strictement nécessaire mais c'est plus propre et plus rapide globalement)
xargs sudo apt-get install -t testing -s 
Finalement on passe en argument la liste (xargs) à apt pour tester (-s) l'installation des paquets en question en précisant qu'on veut les paquets de la version testing de Debian (-t testing).


Voilà ce que j'ai pu en analyser mais je pense qu'il doit certainement y avoir des erreurs...

Réponse 2

Oui c'est plutôt utile pour simuler la mise à jour des dernières versions des programmes dont on se sert régulièrement et si je peux me permettre,

  • faudrait rajouter un apt-get update && au début
  • et un sudo juste avant le apt-get install à la fin, (fait ;-)

juste pour dire de tout faire en une seule fois ;-) De plus on peut quand même remarquer avec ce genre d'exemple la puissance et l'intérêt de la ligne de commande et des scripts dans linux.


Debianerie 02

Avec pour exemple, application au paquet gnome-themes-extras

 cat /var/lib/dpkg/info/gnome-themes-extras.list  | xargs stat -c "%F %x %n " | grep regular | sort 

Alors, à quoi cela peut-il bien servir ?


Debianerie 03

À commenter...

 500  dpkg -l | grep php
 501  sudo apt-get remove --purge libapache2-mod-php4 php4 php4-common php5-common
 502  sudo apt-get remove --purge apache2
 503  sudo apt-get install phpsysinfo
 504  dpkg -l | grep apache
 505  sudo apt-get remove --purge apache-common apache2-common apache2-mpm-prefork apache2-utils
 506  cd /etc/
 507  sudo apt-get  install phpsysinfo -s
 508  sudo apt-get  install phpsysinfo php-pear -s
 509  sudo apt-get  install phpsysinfo php-pear
 510  /etc/init.d/apache2 stop
 511  sudo emacs /etc/default/apache2
 512  unset DISPLAY
 513  sudo emacs /etc/default/apache2
 514  /etc/init.d/apache2 start
 515  nmap localhost
 516  ps aux
 517  ps aux  | grep apache
 518  ps aux  | grep boa
 519  sudo apt-get remove --purge boa
 520  /etc/init.d/apache2 start
 521  lynx localhost