Linux/Debian

Un article de Linuxette.

Jump to: navigation, search

Voici quelques trucs et astuces pour linux en général et/ou debian en particulier ;)

Sommaire

Mise à l'heure occasionnellement

Pour remettre à l'heure mon portable de temps en temps, voila ce que je tape:

     # ntpdate ntp-p.obspm.fr ntp-m.obspm.fr

Mise à jour par réseau internet

J'ai la chance de pouvoir me connecter sur un réseau à haut débit. Pour mes mises à jour de ma potatos, voila comment j'ai procédé. D'abord, renseigner corectement le fichier de configuration de apt: /etc/apt/sources.list Ensuite, récupérer de la doc en français. Il y en a un 'certain' nombre sur le Net (google est votre ami sur ce coup là).

Et enfin, je suis passé en version woody, et noyau 2.4.18 (actuellement):

     $ sudo apt-get update
     $ sudo apt-get upgrade

ou

     $ sudo apt-get dist-upgrade

Puis au fur et à mesure, je fais seulement

     $ sudo apt-get update
     $ sudo apt-get upgrade -u

avec un complément à la main si besoin. Le '-u' permet de voir exactement les paquets à mettre à jour, et si vraiment, je veux être certain de ne pas faire de bétise, je commence par faire une simulation:

     $ sudo apt-get update
     $ sudo apt-get upgrade -u -s

Cela ne récupère pas les paquets, mais donne des info sur ce qu'il va se passer, si l'on execute la mise à jour.


Vérification des paquets installés

J'ai eu quelques problèmes avec certain(s) paquet(s). Il m'a donc fallut savoir qu'est-ce qui était installé ou non. Voyons d'abord comment connaitre tous les paquets que l'on peut installer:

     $ dpkg -l | less

Cela donne la liste de tous les paquets présents dans la base de données debian. Seul ceux dont les deux premiers caractères sont «ii». Exemple:

     ii  xserver-xfree86               4.1.0-14pre15v3               the XFree86 X server

Comme vous le voyez, il y a aussi une note explicative. A présent, disont que je cherche tous les paquets contenant le mot kernel:

     $ dpkg -l | grep ^ii | grep kernel | less

signification: lister tous les paquets de la base de donnée, puis ne garder QUE les lignes que commancent par «ii», puis ne garder que les lignes ne contenant que le mot «kernel» pour enfin afficher avec less (au cas ou cela dépasserait la taille de la fenêtre de la console, j'utilise toujours less). Résultat?

     $ dpkg -l | grep ^ii | grep kernel | less
     ii  kernel-image-2 voyager.0.6    Linux kernel binary image for version 2.4.17
     ii  kernel-package 7.99           Debian Linux kernel package build scripts.
     ii  kernel-source- 2.4.17-1       Linux kernel source for version 2.4.17
     ii  pciutils       2.1.9-2        Linux PCI Utilities (for 2.[1234].x kernels)
     ii  pcmcia-modules 3.1.31-7+voyag PCMCIA Modules for Linux (kernel 2.4.17).
     ii  toshiba-2.2.19 1.9.9-1+voyage Toshiba kernel driver

Génial, non? Mais on peut encore améliorer: Pour avoir tout le contenu des informations listées ci dessus (remarquez qu'il manque des données pour 'pcmcia-modules...'), vous ajoutez une variable au shell:

     $ export COLUMNS=125

Et là, vous aurez tout! A noter, toutefois, que vous n'êtes pas obligé d'utiliser grep pour une simple recherche, car dpkg reconnait les caractères génériques (* et ?):

     $ dpkg -l 'kernel*'


Enlever un paquet debian

Voila comment enlever et purger complètement un paquet debian:

     # apt-get --purge 

Cela vous enlève le paquet mais aussi tous les fichiers de configuration!

Réinstaller un paquet

Apres un léger problème avec le répertoire /var/ j'ai été obliger de réinstaller quelques paquets car la commande

   # dpkg-reconfigure
était inefficace . J'ai donc réinstallé quelques paquets SANS les enlever avant:
   # apt-get --reinstall install <nom-du paquet>

Vider le cache des archives

Lorsque vous faites une mise à jour de votre debian, apt place les paquets récupérés dans un cache, afin de ne pas les re-télécharger en cas de problème(s). Ce cache se trouve dans /var/cache/apt/archives/. Le petit problème, c'est que tout ça tient pas mal de place, à force.... Il faut donc purger tout ça de temps en temps. Voila comment vous y prendre: (exemple sur ma machine)

     $df
     Système de fichiers          1K-blocs       Utilisé la capacité disponible% Monté sur
     /dev/hda5              9851308   2949180   6401708                   32%           /
     $ sudo apt-get clean
     $df
     Système de fichiers          1K-blocs       Utilisé la capacité disponible% Monté sur
     /dev/hda5              9851308   2829340   6521548                   31%          /

Rechercher les paquets enlevé mais dont il reste des fichiers (config, ...)

D'abord, rechercher les paquets enlevé et non purgés:

     $ dpkg -l | grep ^rc
     rc  alsa-source                         0.4.1i-5                            ALSA driver source
     rc  alsaconf                            0.4.2-3                             ALSA configurator
     rc  anacron                             2.1-5.1                             a cron-like program that doesn't go by time
     rc  at


Plusieurs sessions X sur une même machine

Ceci n'est pas recommandé sur une machine peu puissante, car le serveur X consomme beaucoup de ressources, ainsi que l'interface graphique que vous ne manquerez surement pas d'exécuter! Mais pour la démo, voici la marche à suivre.

     $ X :1 & ; xterm -display :1 & ; icewm -display :1 &

La, vous avez un serveur X, numéroté 1 (celui par defaut porte le numéro 0), puis vous exécutez xterm et vous finissez par le gestionnaire graphique icewm (c'est celui que je préfère). Vous pouvez faire mieux de cette manière:

     $ startx -- :1 &

Là, c'est plus simple, mais plus lourd à l'exécution (je pars du principe que startx vous lance kde par defaut). Plus fort encore: si vous utilisez gdm (gnome display manager), editez le fichier /etc/X11/gdm/gdm.conf et dans la partie [servers], placez ceci:

     0=Standard vt7
     1=Standard vt8

Et vous voilà avec deux bannières de connexion sur votre machine: vous passez de l'un à l'autre avec la séquence de touches ctrl+alt+F7 ou ctrl+alt+F8


Connaitre l'utilisateur d'un répertoire

Si vous n'arrivez pas à éjecter votre cdrom, c'est peut-être que celui-ci est encore utilisé par une application ou un utilisateur. Voila comment le savoir (exemple: qui a acces en ce moment au répertoire /mnt/cdrom/themes/):

     $ /bin/fuser -uv /mnt/cdrom/themes/
                              USER        PID ACCESS COMMAND
     /mnt/cdrom/themes/       admin       405 ..c..  gmc

A partir de là, vous pouvez maintenant tuer l'application, ou l'utilisateur (pas physiquement, bien sur!), et éjecter le cdrom.

     $ kill 405
     $eject /mnt/cdrom


Connaitre la place sur le disque dur

Pour la taille de vos données dans un de vos répertoire, voici comment faire, avec redirection dans un fichier pour une lecture ultérieure:

     $ du -ha --max-depth=4 | sort -n > essai.txt

cela donne par exemple pour mon répertoire temporaire:

     $ cd ~/tmp
     $ du -ha --max-depth=2 | sort -n > essai.txt
     $ less essai.txt

(je coupe ici, et ne montre que la fin du fichier)

     ..
     364k    ./tcputils-0.6.
     388k    ./povfront-1.3.5/povfron
     408k    ./ltmodem-6.00a1/DOC
     408k    ./povfront-1.3.5/povfront.
     440k    ./bandmin-0.8
     636k    ./ltmodem-6.00b1
     932k    ./flash_linux/libflashplayer.s
     960k    ./flash_linu
     essai.txt lines 111-166/166 byte 4834/4834 (END)   (press RETURN)


Disposer du pavé numérique sous X (même lors de la demande de login)

Ceci est valable pour la distribution Mandrake, pour les autres, je ne sais pas. Vous pouvez me faire part de votre expérience, je la placerai ici. Pour utiliser le pavé numérique dès la demande de login, vous pouvez utiliser cette méthode: éditer le fichier Xsetup_0, et demandez à exécuter le programme enable_X11_numlock:

     $ su
     Password:
     # vi /etc/X11/xdm/Xsetup_0

et ajouter:

     /usr/X11R6/bin/enable_X11_numlock
     :x (pour  sauver le tout)

C'est tout.


La même chose que ci dessus, mais en console

En root bien sûr, éditer le fichier /etc/rc.d/rc.local, sous Mandrake/Redheat, ou /etc/init.d/bootmisc.sh sous débian, et ajoutez ceci en fin de fichier:

     for tty in /dev/tty[1-9]*;
       do
         setleds -D +num < $tty > /dev/null
       done

Apparemment, sous la dernière version de Mandrake, ceci n'est plus nécésaire, mais je vous donne les commandes, sait-on jamais...

Accélération du démarrage sous Debian

Petite note tiré de ce [mail->http://lists.debian.org/debian-devel/2008/05/msg01119.html]

   # aptitude install dash
   # dpkg-reconfigure dash
     /* Répondre 'oui' */
   # aptitude install readahead
   # touch /etc/readahead/profile-once
   # aptitude install insserv
   # dpkg-reconfigure insserv
     /* Répondre 'oui' */
   # echo CONCURRENCY=startpar >> /etc/default/rcS
   # rm /etc/rcS.d/*hwclock*
       rm: détruire lien symbolique `/etc/rcS.d/S08hwclockfirst.sh'? y
       rm: détruire lien symbolique `/etc/rcS.d/S08hwclock.sh'? y



--admin 5 janvier 2009 à 18:04 (CET)