Exploration de la configuration

De Lea Linux
Révision datée du 2 septembre 2005 à 18:06 par PingouinMigrateur (discussion | contributions) (conversion de la documentation originale de Léa par HTML::WikiConverter)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Exploration de la configuration

Exploration de la configuration
par Jonesy
Avec les remarques et conseils de Marck, Piem et Erwann. Et Anne pour le couteau suisse.
Ou lorsque le pingouin répond à toutes vos questions sur votre système.
(v.4)

Avant propos

Ce document va essayer de répondre le mieux possible à ces deux questions :

  • Quelle est ma configuration matérielle ?
  • Quelle est ma configuration système et logicielle ?

Ce document peut être, d'une certaine façon, considéré comme une suite de Trucs & Astuces, car il vous fournit seulement une liste de commandes vous permettant de répondre aux deux questions ci-dessus. Par ailleurs, notez que la liste des commandes fournies n'est pas exhaustive.

Points de détail

Il vous est vivement recommandé, de faire un man sur les commandes avant de les lancer, ceci afin de connaître leurs fonctions et leurs options.

Absolument rien ne garantit que votre distribution fournisse et/ou installe toutes les commandes utilisées dans ce document.
Presque toutes les commandes citées ici sont des commandes en ligne, à exécuter en init 3 ou dans un terminal. Il existe aussi de nombreux outils graphiques pour décortiquer le système mais je ne les aborderais pas.
Enfin, il s'avère qu'en fonction de votre distribution et de la configuration générale du système, les commandes suivantes peuvent être lancées avec un utilisateur normal, dans le cas contraire utilisez le root. A vous de voir et de tester.

Mise en garde

Ce document aborde un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde. Les commandes ne sont pas compliquées mais l'interprétation de leur résultats peuvent l'être.

Mon matériel

Avec quelles options ?

Pour savoir avec quelles options noyau votre système a démarré, faire :

$ cat /proc/cmdline

Ce qui retourne par exemple :

BOOT_IMAGE=Slackware ro root=305 hdc=ide-scsi hdd=ide-scsi max_scsi_luns=4 devfs=mount

Cela pourra être utile pour comprendre pourquoi le système fait ou supporte ceci ou cela alors que nous ne lui avons dit nulle part. Normallement vous devriez retrouver ces options dans la configuration de votre loader.

Le matériel installé

Pour avoir une vue générale du matériel installé :

$ lsdev


Ce qui retourne quelque chose comme ça:

Device            DMA   IRQ  I/O Ports
------------------------------------------------
3Com                         a400-a47f
8139too                      9400-94ff
cascade             4     2 
Creative                     9800-9807 a000-a01f
dma                          0080-008f
dma1                         0000-001f
dma2                         00c0-00df
EMU10K1                   5  a000-a01f
eth0                     10 
fpu                          00f0-00ff
ide0                     14  01f0-01f7 03f6-03f6   d800-d807
ide1                     15  0170-0177 0376-0376   d808-d80f
keyboard                  1  0060-006f
Mouse                    12 
parport0                     0378-037a
PCI                          0cf8-0cff 9400-94ff
pic1                         0020-003f
pic2                         00a0-00bf
rtc                       8  0070-007f
serial                       02f8-02ff 03f8-03ff
timer                     0  0040-005f
usb-uhci                 11  d000-d01f   d400-d41f
vesafb                       03c0-03df
VIA                          d000-d01f d400-d41f d800-d80f e400-e4ff e800-e80f

Si la commande lsdev n'est pas fournie par votre distribution, essayez :

$ more /proc/devices

et les autres commandes de cet article.

Le processeur

Afin de connaître les caractéristiques de votre processeur :

$ more /proc/cpuinfo

Par exemple cela renvoie :

 processor     : 0
 vendor_id     : AuthenticAMD
 cpu family    : 6
 model         : 4
 model name    : AMD Athlon(tm) Processor
 stepping      : 2
 cpu MHz       : 900.044
 cache size    : 256 KB
 fdiv_bug      : no
 hlt_bug       : no
 f00f_bug      : no
 coma_bug      : no
 fpu           : yes
 fpu_exception: yes
 cpuid level   : 1
 wp            : yes
 flags         : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
 bogomips      : 1795.68

Pour connaître le pourcentage d'utilisation du processeur :

$ top

Et enfin depuis combien de temps la machine n'a pas redémarré :

$ uptime

Les IRQs

Quels sont les IRQs utilisés :

$ procinfo

Voici la partie du résultat qui nous intéresse :

 [ ... ]
 irq 0: 387420 timer         irq 10:      0 eth0
 irq 1:     9396 keyboard    irq 11:   9366 usb-uhci, usb-uhci
 irq 2:      0 cascade [4]   irq 12: 113603 PS/2 Mouse
 irq 6:      2               irq 14:   6555 ide0
 irq 8:      1 rtc           irq 15:      2 ide1

Ou pour tous les IRQs possibles :

$ procinfo -i

Par exemple, cela affiche, en plus, les IRQs 3 et 4, les ports série, qui ne sont pas utilisés ici.

La commande procinfo peut servir pour la mémoire, l'occupation du processeur... Bref, faites man procinfo pour en savoir plus.

Comme pour lsdev, la commande procinfo peut être manquante, alors faites aussi :

$ more /proc/interrupts

La RAM et la SWAP

Pour afficher la RAM et la SWAP disponibles en Mo :

$ free -mt

Ce qui donne :

               total  used  free  shared  buffers  cached
Mem:             501   118   382       0        2      76
-/+ buffers/cache:      38   462
Swap:            509     0   509
Total:          1011   118   892

Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le Trucs & Astuces : Aide mémoire sur la mémoire.

Les cartes PCI et AGP

Avoir une première idée des cartes PCI et AGP installées :

# scanpci

Personnellement, je préfère :

$ /sbin/lspci

Ce qui retourne :

00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device 8305
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
00:09.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 11)
00:09.1 Multimedia controller: Brooktree Corporation Bt878 (rev 11)
00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10000 (rev 07)
00:0a.1 Input device controller: Creative Labs SB Live! (rev 07)
00:0b.0 Ethernet controller: Unknown device 0001:8139 (rev 10)
01:00.0 VGA compatible controller: nVidia Corporation NV11 (rev a1)

Malgré le nom de la commande, nous pouvons voir que la dernière ligne est ma carte vidéo AGP.

Interrogation : est-ce dépendant de la carte mère et de sa façon de gérer les IRQ ?


Pour avoir plus d'informations sur les cartes :

$ /sbin/lspci -v

Encore plus d'informations sur les cartes ?

$ /sbin/lspci -vv


Pour savoir quelles cartes sont Plug and Play :

$ lspnp

NDR : Cette commande fait partie du paquet pcmcia-cs qui contient aussi d'autres commandes pour le matériel pcmcia. N'ayant pas de tel matériel, je ne les ai pas testées.

Les disques durs

La première chose, combien de partitions avez-vous sur chaque disque dur, de quel type sont-elles et comment s'appellent-t-elles ?

# /sbin/fdisk -l

Ce qui affiche, par exemple :

Disque /dev/ide/host0/bus0/target1/lun0/disc : 255 têtes, 63 secteurs, 4865 cylindres
Unités = cylindres sur 16065 * 512 octets

                          Périphérique Amorce  Début   Fin  Blocs    Id Système
/dev/ide/host0/bus0/target1/lun0/part1 *           1    62 497983+   82 Echange Linux
/dev/ide/host0/bus0/target1/lun0/part2            63   548 3903795   83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part3           549  1156 4883760   83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part4          1157  4865 29792542+  5 Etendue
/dev/ide/host0/bus0/target1/lun0/part5          1157  1764 4883728+  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part6          1765  2250 3903763+  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part7          2251  2736 3903763+  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part8          2737  3222 3903763+  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part9          3223  4865 13197366  83 Linux natif

C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs. La vieille norme de nommage est conservée par des liens symboliques, faites donc :

$ ls -l /dev/hda* /dev/hdb* /dev/sda* /dev/sdb*


afin de voir la correspondance entre /dev/ide/host0/bus0/target1/lun0/part9 et /dev/hdb9, par exemple.

Pour vérifier si le DMA est activé pour votre disque dur :

# /usr/sbin/hdparm -d /dev/hda

Ce qui retourne :

/dev/hda:
 using_dma    =  1 (on)


Pour tester les performances de votre cache et de votre disque dur :

# /usr/sbin/hdparm -Tt /dev/hda

Ce qui retourne :

/dev/hda:
 Timing buffer-cache reads:   128 MB in  0.74 seconds =172.97 MB/sec
 Timing buffered disk reads:  64 MB in   2.27 seconds = 28.19 MB/sec


Modifiez /dev/hda en fonction de votre disque dur.

NDR : Pour information, le fichier correspondant aux partitions est /proc/partitions.

Les systèmes de fichiers supportés

Pour connaître la liste des systèmes de fichiers supportés par votre noyau, faites :

$ more /proc/filesystems

Ce qui renvoie :

nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   tmpfs
nodev   shm
nodev   pipefs
        ext3
        ext2
nodev   ramfs
        umsdos
        msdos
        vfat
        iso9660
nodev   nfs
        reiserfs
nodev   devpts
nodev   usbdevfs
nodev   usbfs


NDR : Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon... :-)

Les CDROMs, graveurs et DVDROMs

Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs. Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel dev il faut monter pour pouvoir utiliser ces lecteurs et graveurs.

Sous /proc/ide pour les IDE, sinon ce sera /proc/scsi, vous trouverez un ide1 et un ide2. Sous ces répertoires vous retrouverez hda, hdb, hdc et/ou hdd. Et enfin, là, vous trouverez :

  • un fichier media qui indique si c'est un cdrom, un disque dur ou autre
    Résultat de la commande cat media : cdrom
  • un fichier model qui donne le modèle du média installé
    Résultat de la commande cat model : SONY CD-RW CRX140E
/proc/ide/-+-ide1/-+-hda/
           |       |
           |       `-hdb/
           |
           `-ide2/-+-hdc/-+-media
                   |      `-model
                   `-hdd/

Pour voir en une seule fois vos périphériques IDE, faites :

$ find /proc/ide -type d -print

Ce qui renvoie :

/proc/ide
/proc/ide/ide1
/proc/ide/ide1/hdd
/proc/ide/ide1/hdc
/proc/ide/ide0
/proc/ide/ide0/hdb
/proc/ide/ide0/hda

Ou

$ find /proc/ide -iname "media" -type f -print


Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en root) :
Spécifique au noyau 2.4.x :

# cdrecord -scanbus
NDR : Pensez à l'[#modules émulation SCSI] pour un graveur IDE.


Spécifique au noyau 2.6.x :

# cdrecord dev=ATA -scanbus
NDR : L'émulation SCSI n'est pas nécessaire avec un noyau 2.6.x.

L'USB

Afin de connaitre vos périphériques USB, vous avez la commande lsusb :

$ /sbin/lsusb

Retourne :

Bus 002 Device 001: ID 0000:0000
Bus 002 Device 002: ID 04e1:0201 Iiyama North America, Inc. Monitor Hub
Bus 002 Device 003: ID 05dc:a400 Lexar Media, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 058f:9360 Alcor Micro Corp.


Pour avoir plus de détail, vous pouvez faire :

$ /sbin/lsusb -v

Hormis cela, vous pouvez consulter le répertoire /proc/bus/usb.

Tout le reste

Enfin, pour tout ce que l'on vient de voir et plus encore, il y a :

$ dmesg | more

Cette commande retourne trop d'informations pour les restituer ici. Mais par exemple, pour savoir comment monter une clé USB, cela aide lorsque vous tombez sur ce genre d'informations :

Spécifique au noyau 2.4.x :

[...]
scsi2 : SCSI emulation for USB Mass Storage devices
  Vendor: LEXAR     Model: JUMPDRIVE ELITE   Rev: 1000
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sde at scsi2, channel 0, id 0, lun 0
SCSI device sde: 502880 512-byte hdwr sectors (257 MB)
sde: Write Protect is off  sde: sde1 [...]
Comme vous pouvez le deviner, la clé USB en question ici est une Lexar JumpDrive Elite de 256 Mo.


Spécifique au noyau 2.6.x :

usb 2-1.2: new full speed USB device using uhci_hcd and address 3
ubb: device 3 capacity nsec 502880 bsize 512
ubb: device 3 capacity nsec 502880 bsize 512
 ubb: ubb1

J'ai mis ici en gras le block special device (/dev/sde1 ou ubb1) à utiliser pour la commande mount.

Mini-conclusion

Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.

Comme vous l'avez sûrement remarqué, le répertoire /proc est très utile ! Sachez que, généralement, les outils s'appuient sur ce répertoire pour vous retourner les informations. Vous ne risquez rien à le parcourir et à faire des less des fichiers que vous y rencontrerez. En plus, c'est la seule méthode qui marchera sur toutes les distributions.

lshw : le couteau suisse de l'information système

Votre distribution vous fournit peut être maintenant un outil à tout faire pour explorer votre configuration matérielle : lshw. Cet outil va vous permettre de synthétiser des informations concernant la mémoire, la version du firmware, la configuration de la carte mère, la version du CPU et sa vitesse, la configuration du cache, la vitesse du bus...

lshw va en fait lire dans tous les fichiers nécessaires (fichiers listés dans le man de l'outil) pour en récupérer les informations nécessaires. Le résultat peut être extrait au format texte, XML ou HTML.

Affichage court

Une des sorties écran le plus simple reprend le modèle de la commande ioscan qu'on retrouve sur les systèmes HP-UX.

# lshw -short
 H/W path              Device    Class       Description
=======================================================
                                system      MS-6590
/0                              bus         MS-6590
/0/0                            memory      BIOS
/0/4                            processor   AMD Athlon(tm) XP 2000+
/0/4/5                          memory      L1 cache
/0/4/6                          memory      L2 cache
/0/1                            memory      System memory
/0/e0000000                     bridge      VT8377 [KT400/KT600 AGP] Host Bridge
/0/e0000000/1                   bridge      VT8235 PCI Bridge
/0/e0000000/1/0       /dev/fb0  display     NV17 [GeForce4 MX 440]
/0/e0000000/6         eth1      network     VT6102 [Rhine-II]
/0/e0000000/8         eth0      network     RTL-8029(AS) 

  • H/W path est le chemin matériel
  • Device est le nom du périphérique
  • Class est la catégorie de périphérique
  • Description donne une description en quelques mots du périphérique

Affichage texte

Vous avez également la possibilité d'obtenir une description complète de votre configuration matérielle. Par défaut, le résultat est affiché sur la sortie standard. Pour la conserver il suffit donc de faire une redirection dans un fichier

# lshw > lshw.txt
# cat lshw.txt
pingu
    description: Desktop Computer
    product: MS-6590
    vendor: MSI
    version: 1.0
    serial: 00000000
    capabilities: smbios-2.3 dmi-2.3
    configuration: chassis=desktop
  *-core
       description: Motherboard
       product: MS-6590
       vendor: MSI
       physical id: 0
       version: 1.0
       serial: 00000000
       slot: PCI2
     *-firmware
          description: BIOS
          vendor: American Megatrends Inc.
          physical id: 0
          version: 07.00T (04/02/01)
          size: 64KB
          capacity: 192KB
[...]

Affichage XML / HTML

Enfin lshw propose une option permettant une récupération des informations au format XML et/ou HTML. La commande est simple :

# lshw -html > lshw.html

Il vous suffit alors d'un navigateur pour en visualiser le contenu.

Mon système GNU/Linux

La distribution

Afin de connaître la version, voire le nom, de votre distribution, sachez qu'il existe souvent un fichier :

/etc/nom-distribution


Il suffit donc de faire un cat de ce fichier.

Par exemple, pour la Mandrake c'est /etc/mandrake-release et pour la Slackware, /etc/slackware-version.

Le nom de ma machine

Pour connaître le nom de votre machine :

$ hostname


Le nom de la machine, ou hostname, fait partie du paramétrage réseau d'une machine. Je ne peux donc que vous conseiller la lecture de l'Exploration de la configuration réseau afin d'en savoir plus.

Le noyau Linux

La version de votre noyau actuel est obtenue ainsi :

$ uname -r

Pour connaître la configuration actuelle du noyau :

Maintenant, vous avez deux solutions pour lire la configuration de votre noyau :

  • Avec l'éditeur de votre choix.
  • Sous X avec : # make xconfig
    ou alors avec : # make menuconfig, le tout en étant sous /usr/src/linux.
    Attention à ne pas sauver !

Les modules du noyau

Tout d'abord, tous les modules se trouvent sous :

/lib/modules/version-du-noyau

Pour avoir une idée des modules à charger, vous pouvez utiliser les commandes sur les périphériques expliquées dans ce document. Sinon allez dans le répertoire :

/usr/src/linux/Documentation

et cherchez sans oublier les sous-répertoires. En particulier, lisez le fichier modules.txt.

Pour avoir de plus amples informations sur un module particulier, et donc sur un driver, faites :

$ /sbin/modinfo nom-module

Pour savoir quels sont les modules chargés en mémoire :

$ /sbin/lsmod


Exemple concret, pour savoir si le module d'émulation SCSI du graveur est chargé :

$ /sbin/lsmod | grep ide-scsi

Pour savoir si vous avez besoin de recompiler les modules du noyau afin d'avoir l'émulation :

$ find /lib/modules/`uname -r` -iname "ide-scsi*" -print
Cet exemple concret concerne les noyaux 2.4.x, mais la méthode est bien entendue toujours valide avec un noyau 2.6.x.

Les services (ou daemons)

Il existe de nombreux outils pour gérer les services sur un système GNU/Linux. Mais ces outils dépendent beaucoup de la distribution, si elle est SysV ou BSD-like et si elle utilise inetd ou xinetd.
Aujourd'hui les principales distributions sont SysV et utilisent xinetd sauf la Slackware.

Vous trouverez de l'aide et des articles sur le sujet ici-même.
Entre autres :

Mais pour savoir rapidement si votre distribution utilise xinetd, faites simplement :

$ ps -ef | grep -i inetd

Cela vous sortira soit :

root        87     1  0 22:13 ?        00:00:00 /usr/sbin/inetd

Soit :

root        88     1  0 22:22 ?        00:00:00 /usr/sbin/xinetd


Et vous saurez si c'est inetd ou xinetd qui est utilisé.

De plus pour savoir si le système d'initialisation (aussi dit d'init) est SysV (dit Système 5), vérifier dans le répertoire /etc/rc.d qu'il existe les répertoires : init.d, rc1.d, rc2.d,... , rc6.d. Sinon la distribution (ex: BSD, Slackware, Sourcemage, Nasgaïa) utilise un autre système d'init.

Les processus

Pour savoir quel processus est le processus père de quel(s) autre(s) :

$ pstree -ph

Ce qui affiche cet arbre :

init(1)-+-agetty(96)
       |-devfsd(14)
       |-eth0(73)
       |-gvim(319)
       |-inetd(85)
       |-kapmd(3)
       |-kdm(97)-+-X(99)
       |           `-kdm(100)--icewm(111)-+-rxvt.bin(125)--bash(127)--pstree(349)
       |                                      `-sylpheed(205)
       |-keventd(2)
       |-khubd(52)
       |-klogd(83)
       |-mdrecoveryd(9)
       |-modem_run(158)
       |-pppd(160)---pppoa2(162)---pppoa2(165)
       `-syslogd(80)


Nous avons donc sous les yeux tous les processus du système avec leur PID (Process Identifier) sous une forme nous permettant de comprendre qui est dépendant de qui. En conséquence, cela permet aussi de mieux comprendre le système et de voir ce qui tourne.

Le serveur graphique X

Spécifique à XFree86 :

Pour connaître la version :
$ XFree86 -version
Afin de mieux connaître votre configuration graphique, éditez en lecture le fichier :
/etc/X11/XF86Config-4
Si vous ne possédez pas ce fichier, ou pour une version de XFree86 antérieure aux versions 4 :
/etc/X11/XF86Config


Spécifique à Xorg :

Pour connaître la version :
$ Xorg -version
Afin de mieux connaître votre configuration graphique, éditez en lecture le fichier :
/etc/X11/xorg.conf


Pour connaitre la résolution actuelle :

$ xvidtune -show

Ce qui retourne :

"1152x864"     85.00   1152 1216 1344 1600    864  865  868  900 -hsync -vsync

Cette commande, sans arguments, vous permettra aussi d'affiner votre résolution.
Pour en savoir plus sur la configuration du serveur X :

$ xdpyinfo

Ce qui retourne :

name of display:    :0.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    60801000
X.Org version: 6.8.1
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
[...]

J'ai coupé car cela renvoie trop d'informations pour être affichées ici.

Les bibliothèques

Pour avoir la liste des bibliothèques installées figurant dans les répertoires :

  • /usr/lib
  • /lib
  • Et les répertoires contenus dans le fichier /etc/ld.so.conf

Faites :

# ldconfig -p

Mais pour savoir si la bibliothèque libc.so est installée, faites plutôt :

# ldconfig -p | grep -i libc.so

Ce qui a pour résultat :

libc.so.6 (libc6, OS ABI: Linux 2.0.0) => /lib/libc.so.6

Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...
Voici quelques méthodes que je connais :

  • Faire : $ cd / && find . -iname "*config*" -type f -print | grep -i bin, vous retournera une liste d'exécutables de configuration. Il ne reste plus qu'à trouver celui qui semble correspondre, faire un man et à essayer : exécutable --version
  • Avec de la chance la version figure dans le nom du .so (cherchez le véritable .so, pas le lien symbolique).
  • Essayer d'exécuter la bibliothèque comme un exécutable.
  • Cherchez dans le gestionnaire de paquets de votre distribution.
  • Voir la release-note de la version de votre distribution, si elle existe.
  • Allez sur le site DistroWatch et consultez la page de votre distribution.
  • La commande : $ ldd -v nom-exécutable ou nom-bibliothèque donne des informations de version mais je ne suis pas sûr de les comprendre...

NDR : Le terme library est souvent abusivement traduit par "librairie" au lieu de "bibliothèque". Je lui préfère ce dernier, sachez simplement qu'il s'agit de la même chose.

Les logiciels en général

Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de paquet utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus. Donc les solutions universelles sont :

$ cd / && find . -iname "*nom-du-logiciel*" -type f -print

Ou

$ locate nom-du-logiciel

En général, pour connaître la version d'un logiciel, il suffit de faire :

$ exécutable-du-logiciel --version

Ou

$ exécutable-du-logiciel -v

Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin :

$ ldd exécutable

Par exemple :
div class="code">$ ldd `which sylpheed` Retourne :

       libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x40017000)
       libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x4001a000)
       libdl.so.2 => /lib/libdl.so.2 (0x40046000)
       libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4004a000)
       libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40058000)
       libm.so.6 => /lib/libm.so.6 (0x40131000)
       libgdk_pixbuf.so.2 => /opt/gnome/lib/libgdk_pixbuf.so.2 (0x40154000)
       libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40168000)
       libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x4028d000)
       libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x402bf000)
       libssl.so.0 => /usr/lib/libssl.so.0 (0x402d5000)
       libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4038b000)
       libc.so.6 => /lib/libc.so.6 (0x4044b000)
       /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


NDR : J'ai utilisé la commande ldd `which sylpheed` car ldd n'utilise pas le PATH, donc il faut lui donner le chemin d'accès de l'exécutable. Ce que fait which sylpheed pour l'exemple.

Déterminer quelques versions

Le composant La commande
Le noyau Linux uname -r
GCC, le compilateur gcc --version
XFree86, le serveur X XFree86 -version
Xorg, l'autre serveur X Xorg -version
KDE (qt, kde, kde-config) kde-config --version
Gnome et ses bibliothèques gnome-config --version

glib-config --version

gtk-config --version

gtkmm-config --version
WindowMaker wmaker --version
Fluxbox fluxbox -version
Enlightenment enlightenment --version
La bibliothèque Glibc /lib/libc.so.6
OpenSSL openssl version
GnuPG (Gnu Privacy Guard) gpg --version
La bibliothèque GPGme (GnuPG Made Easy) gpgme-config --version
L'éditeur Vi (ou Vim) vi --version
...  

A compléter vous-même... ;-)

Mini-conclusion

Comme pour le matériel, ce qui précède peut vous aider... Mais pour les logiciels la tâche est plus compliquée car beaucoup d'éléments entrent en considération comme : la distribution, le système de paquetage, la hiérarchie du système de fichiers...

Mot de la fin

J'espère que vous avez appris quelque chose et que cela vous sera utile.

N'hésitez pas à m'envoyer vos remarques.

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jonesy le 09/09/2002.