Les astuces pratiques



Obtenir des informations sur des paquetages dispos ou installés sur votre CentOS Linux

  • Un doute sur la disponibilité du paquet xxx sur les dépôts ?
  • Besoin de précisions sur le dépôt qui contient le paquet que vous recherchez (parmis les repo installés of course) ?
  • Savoir quelle version est disponible et quelle version est installée ?

Poussez la petite commande qui va bien (en root, xxxx étant à remplacer par le nom du paquet) :

# yum info xxxx



Si vous n'avez pas le nom du paquet, commencez par une petite recherche avec un partiel du nom :

# yum search  xx







Connaitre quelques détails sur la CentOS (ou Redhat) et sur votre machine

  • Pour la version de CentOS :
# cat /etc/redhat-release


  • Pour savoir s'il s'agit d'une 32 ou d'une 64 bits, avoir l'info kernel et le nom complet de la machine :
# uname -a


  • Pour récupérer en une ligne les infos mémoire vive et swap (en couleur s'il vous plait) :
# egrep --color 'Mem|Cache|Swap' /proc/meminfo
MemTotal:        3236092 kB
MemFree:          139136 kB
Cached:          2218536 kB
SwapCached:            0 kB
SwapTotal:       2097144 kB
SwapFree:        2097144 kB


  • Savoir si votre cpu supporte la virtualisation (Intel ou AMD) :
# egrep --color  "(vmx|svm)" /proc/cpuinfo







Changer le nom d'une machine (Hostname) sous RedHat / CentOS



  • Pour changer tout ou partie du nom de votre machine sous CentOS (ou toute autre Redhat Like), éditez simplement le fichier suivant (en root) :
# vi /etc/sysconfig/network


  • Corrigez le nom et/ou le domaine dans la ligne " HOSTNAME = " :
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=pc-test.duchnoc.priv


  • Vérifiez et corrigez, s'il est présent, le nom indiqué dans " /etc/hosts " (s'il est absent, ne modifiez pas ce fichier).
  • Enfin, redémarrez :
# reboot




  • Après redémarrage, vous pourrez vérifier la prise en compte de votre modification via l'une des lignes suivantes :
# cat /proc/sys/kernel/hostname
# hostname
# uname -a







Installer CentOS 5.8 (ou 5.9) Desktop avec le premier DVD seulement



Démarrez sur le premier DVD et pendant l'installation, opérez comme ci-dessous.

  • Vérifiez que "Desktop" est bien coché par défaut et choisissez " personnaliser maintenant " puis bouton " suivant ":


capture_centos_install_dvd_1



  • Mettez en surbrillance le sous-menu " Bureau/productivité " et cliquez sur le bouton " paquetages optionnels " :


capture_centos_install_dvd_2



  • Décochez toutes les lignes relatives à " OpenOffice " puis le bouton " fermer " :


capture_centos_install_dvd_3




Et c'est tout.. ne reste qu'à poursuivre et l'installateur ne devrait plus avoir besoin du second DVD.. Et vous pourrez installer OpenOffice plus tard, depuis votre bureau Gnome..





Désactiver l'interface graphique au démarrage de votre CentOS ou RedHat

  • Editez le fichier " /etc/inittab " (en root) :
# vi  /etc/inittab
  • Et remplacez la ligne " id:5:initdefault: " par " id:3:initdefault: " avant de redémarrer


  • Pour rappel, en cas besoin, vous pouvez toujours la lancer ponctuellement avec la commande :
# startx







Effectuer un reset du mot de passe root sur une CentOS / RedHat


Pas de piratage sur Mgroup.fr. Cette astuce suppose un accès physique au serveur ou à la machine concernée.
La source de cette astuce (en Anglais) sur le wiki officiel CentOS

  • Démarrez le serveur (ou la workstation) et accédez au menu Grub (touches flèche haute ou flèche basse avant le start CentOS)
  • Le système met la ligne du kernel le plus récent en surbrillance, appuyez sur la touche "e" pour l'éditer
  • Dans la nouvelle fenêtre qui s'affiche, déplacez vous sur la ligne " kernel " (mettez en surbrillance) et appuyez à nouveau sur "e"
  • Le curseur vous place automatiquement à la fin (souvent après le mot " quiet "), ajoutez un espace suivi du chiffre 1 (gaffe au qwerty) puis appuyez sur la touche "enter"
  • Le système vous ramène au menu précédent, appuyez simplement sur la touche "b" pour démarrer
  • Votre CentOS vous emmène directement dans une console en "root", ne vous reste qu'à taper la commande " passwd " pour affecter le nouveau mot de passe
  • Redémarrez normalement et c'est fini..







Résoudre les problèmes de dépendance(s) ou librairie(s) manquantes avec Yum



Si vous êtes de ceux qui conservent bien au chaud quelques fichiers " rpm ", vous aurez sans doute déjà croisé le chemin de ce message (agaçant) vous signalant une dépendance manquante, bloquant ainsi l'installation..

Bien entendu, le nom de la librairie n'est pas toujours parlant, la question est donc : Mais où est ma librairie ? Dans quel paquet ?

paquets_400


Avant de vous jeter sur la première fenêtre de recherche Internet à portée de main, vérifiez d'abord la présence de la wilaine librairie dans les paquets de vos dépôts via la commande " yum " et son option " whatprovides ".

Par exemple, pour plus de compréhension, admettons que le système vous signale l'absence de la librairie " libasound.so.2 ".

La commande serait alors (notez le " */nom_de_librairie ") :

# yum whatprovides */libasound.so.2

Ce qui vous renvoie :

Loaded plugins: fastestmirror, priorities, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.crazyfrogs.org
 * extras: centos.crazyfrogs.org
 * updates: centos.mirror.fr.planethoster.net

alsa-lib-1.0.22-3.el6.i686 : The Advanced Linux Sound Architecture (ALSA) library
Repo        : base
Matched from:
Filename    : /lib/libasound.so.2



La ligne " Repo " vous indique le dépôt sur lequel trouver votre librairie, tandis que celle juste au dessus vous donne le nom du paquet et la description de celui-ci.

Voila, ne vous reste plus qu'à installer le paquet indiqué :

# yum install alsa-lib







Configurer temporairement une ip réseau sur votre CentOS Redhat



Votre serveur dhcp n'a pas attribué une ip à la machine nouvellement installée ?
Besoin de fixer temporairement une ip particulière à votre CentOS Redhat ?

  • Vérifiez la bonne connexion de votre câblage, puis dans un terminal root, utilisez la commande suivante (nous supposons que eth0 est l'interface réseau, corrigez au besoin et remplacez "ip_souhaitée" par l'ip qui doit être temporairement affectée) :
# ifconfig add eth0  ip_souhaitée  netmask 255.255.255.0




Si vous avez besoin d'accéder à Internet, pensez à définir la route par défaut et le serveur dns qui renseignera votre machine.

  • Définition temporaire de la route par défaut (remplacez ip_de_la_gateway par l'ip de votre routeur ou passerelle) :
# route add -net 0.0.0.0  gw  ip_de_la_gateway



  • Vérifiez qu'un serveur dns figure bien dans le fichier " /etc/resolv.conf " (à défaut, corrigez ou indiquez celui de google comme suit) :
# vi /etc/resolv.conf
nameserver 8.8.8.8



Note : Sauf si géré par NetworkManager, le fichier "/etc/resolv.conf" gardera la valeur que vous aurez indiqué, pensez à le corriger au besoin après le redémarrage du serveur.





Supprimer les anciens Kernels inutiles de vos CentOS ou Redhat



Les noyaux sous Linux, et plus précisément sous CentOS / Redhat, sont mis à jour régulièrement.
Sauf cas particuliers donc, on se retrouve avec une liste assez impressionnante (voir votre menu Grub pour plus de détails) de versions "kernels" possibles au démarrage.

Pour supprimer les plus anciens, il existe un petit outil sympa et pas cher baptisé "package-cleanup", lequel fait partie des "yum-utils", ensemble de paquets complémentaires à yum.



Pour plus de détails sur les "yum-utils", une commande :


# yum info yum-utils


Qui renvoie, dans la partie description (à cet instant et pour une CentOS 6.x) :

Description : yum-utils is a collection of utilities and examples for the yum package
            : manager. It includes utilities by different authors that make yum easier and
            : more powerful to use. These tools include: debuginfo-install,
            : find-repos-of-install, needs-restarting, package-cleanup, repoclosure,
            : repodiff, repo-graph, repomanage, repoquery, repo-rss, reposync,
            : repotrack, show-installed, show-changed-rco, verifytree, yumdownloader,
            : yum-builddep, yum-complete-transaction, yum-config-manager, yum-debug-dump,
            : yum-debug-restore and yum-groups-manager.




Si les "yum-utils" ne sont pas installés sur votre système :

# yum install yum-utils




Enfin, pour supprimer les noyaux les plus anciens (dans cet exemple on ne gardera que les deux derniers, au cas où.. via la valeur de l'option "count="), passez en root et tapez la commande ci dessous :

# package-cleanup --oldkernels --count=2




Note : Même si "package-cleanup" ne vous laissera pas supprimer le kernel en cours d'utilisation, il est vivement conseillé de garder, à minima, l'actuel et le précédent noyau.





Les additionnels et les inutiles, donc indispensables



Créer une image .iso à partir d'un CD, DVD ou même d'un dossier, sous Linux


"dd" est une commande Linux permettant beaucoup de choses. Entre autres, d'effectuer des copies partielles ou completes de données, avec ou sans conversions.

L'important, comme pour le yin et le yang, c'est de ne pas mélanger l'entrée ( valeur if=) et la sortie (valeur of=).

Attention aux fausses manips ! "dd" ne vous alerte pas avant d'effacer fichiers et dossiers.


Pour convertir un CD ou un DVD


  • Placez vous dans le répertoire de destination de votre ".iso" :
# cd /le_repertoire_ki_va_bien


  • Repérez le lecteur qui contient votre galette (/dev/cdrom ou /dev/dvd, etc..) et lancez la conversion :
# dd if=/dev/cdrom of=mon_image.iso
# dd if=/dev/dvd of=mon_image.iso


  • Si probleme (erreur en cours de convertion), vérifiez que le cdrom n'est pas en cours de lecture (par une appli ou nautilus) puis essayez avec l'option " bs= " en affectant une valeur de 1024, voire 512 si besoin :
# dd if=/dev/cdrom  of=mon_image.iso  bs=1024




Pour les fichiers et/ou dossiers présents sur un disque dur


  • Installez le paquet "genisoimage" :
# yum install genisoimage


  • Prenons un exemple simple, faire une image "mon_image.iso" du contenu du dossier "/tmp/duchnoc/" :
# mkisofs -o /tmp/mon_image.iso  /tmp/duchnoc/







Faire une capture d'écran (Screenshot) sous Linux (et donc sous CentOS / RHEL)



Capture directe


  • Pour capturer la totalité de votre affichage, sous Gnome, appuyez simplement sur la touche "impr écran" (ou print screen) de votre clavier. Après un joli bruit d'appareil photo, le système vous ouvrira la fenêtre d'enregistrement de capture afin d'enregistrer celle-ci dans le dossier qui vous conviendra.



capture_scrennshot_howto


Tips : Pour limiter la capture à la fenêtre en cours, maintenez simplement la touche "Alt" appuyée lorsque vous poussez "impr écran"


Capture à l'aide de l'outil dédié sur Gnome


  • Pour effectuer des captures plus spécifiques, notamment avec des fenêtres actives ou des sous-menus, vous pouvez utiliser l'outil de capture (menu Applications/accessoires). Il dispose de quelques options intéressantes dont un retardateur.



capture_outil


Redimensionnez, cadrez ou retouchez vos captures


  • Pour retravailler vos captures d'écran, utilisez un logiciel de traitement d'images, comme par exemple showfoto (page dédiée sur Mgroup.fr) qui vous permettra, entre autres, de redimensionner, de corriger voire de greffer du texte sur vos screenshots.



capture_screenshot_showfoto






Commandes pour ouvrir et refermer un lecteur CD ou DVD depuis un terminal


Je dois l'avouer, il s'agit de l'une de mes petites plaisanteries favorites sous Linux (oui, c'est vrai c'est vilain..). Elle fonctionne aussi bien depuis un compte standard que root (sauf si droits vraiment très limités).

  • Pour ouvrir :
# eject cdrom
  • Pour le refermer (sauf portables hélas) :
# eject -t cdrom


  • Alternative si ça ne marche pas, vérifiez que le lecteur CD/DVD est bien en " /dev/cdrom " ou adaptez avec votre configuration :
# eject /dev/cdrom


  • Enfin, notez que l'option " -T " ouvre s'il est fermé, et le referme s'il est ouvert (Sauf portables encore une fois, ils ne sont pas motorisés).
# eject -T /dev/cdrom








Connaitre la taille et la position (géométrie) des fenêtres ouvertes avec xwininfo sous RHEL / CentOS Linux


  • L'outil "xwininfo" est disponible par défaut sur toutes les CentOS (hors minimales). S'il n'est pas présent, il suffit de l'installer (pas de dépôts tiers requis) :
# yum install xwininfo



  • L'idée, pour comprendre le fonctionnement, c'est de lancer la commande "xwininfo" dans un terminal, puis de cliquer (simple gauche) sur la fenêtre (barre de titre) dont on souhaite connaitre les informations. A noter qu'il faut que le terminal et la fenêtre soient sur un même bureau, sinon la commande va vous renvoyer la taille de la barre de Gnome..
# xwininfo
xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.



  • Pour l'exemple, un navigateur Opera ouvert sur mgroup.fr (pas de plein écran) donne comme retour complet :
xwininfo: Window id: 0x4400008 "mgroup.fr - Opera"

  Absolute upper-left X:  142
  Absolute upper-left Y:  63
  Relative upper-left X:  5
  Relative upper-left Y:  19
  Width: 1394
  Height: 917
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +142+63  -144+63  -144-70  +142-70
  -geometry 1394x917+137+44



  • On peut, bien entendu, se limiter à la seule information relative à la taille de la fenêtre :
# xwininfo | grep geometry
  -geometry 1394x917+137+44