Le Site Officiel Debian

Tux, l'ami des petits et des grands
Bibliographie

Retour à la Home Page

Linux Story




Bon ce chapitre risque d'etre super long mais bon si il y a des bonnes volontées pour m'aider je ne dit pas non, le tout est de laisser de reposer César ... car je l'agonie de questions chaque jour .....
C'est parti !!!!

  1. Comment faire pour trouver la librairie : jpeglib6a
    là je pense avoir trouvé, enfin pas loin, puisqu'en réinstallant j'ai choisi l'option développeur et je n'ai plus le problème tout du moins avec cette librairie ...
  2. Une question plus dure, j'aimerais que quelqu'un m'explique plus en détail le partitionnement, je précise
    Imaginons que j'ai deux disques dur ( C: et D:) Sous Linux hda et hdb
    Sur le premier je met une partition /home, une /usr etc etc ..
    Sur le deuxiéme idem une /usr, une/tmp et une autre /home
    Je formate le premier pour par exemple réinstaller Liunx ..;
    Que se passe t'il pour les /usr /home du deuxième disque ? il les retrouve ?

    Non il trouve les partitions soit ex hda1, hda2, hda3, swap, hda5...hda4 devient une partition étendue ou se logent les autres partitions
    Sur le deuxième disque hdb1, hdb2,......


    Soyons plus clair, comment fait linux pour gérer deux /home ou deux /usr , comment savoir où est quoi !

    Le logiciel de gestion du disque dur diskdrake, fdisk ... nous donne le nom
    et la taille des partitions déja existantes hda1, hda2,swap... L'étiquette
    de la partition n'apparait pas (/,/home,/usr...) c'est à l'utisateur de
    connaître l'étiquette à mettre sur le nom de la partition.
    Mon disque IBM 15Go hda .
    hda1 avec point de montage / de la 1ère installation (ReiseFS) hda2 swap
    (commune aux deux installations) hda3 (détruite) restée libre donc vide
    pour la 1ère installation qui devient hda5 avec la 2éme installation avec
    point de montage / puis hda4 avec point de montage /archive (commune aux deux installations)
    MDK1 hda1 / hda2 swap hda5 /misc (MDK2) hda4 /archive
    MDK2 hda1 /misc (MDK1) hda2 swap hda5 / hda4 /archive
    A l'installation, il faut donner un nom aux partitions et il ne peux y
    avoir deux fois le même mais, si l'on désire deux partition /home, on
    peut nommer la deuxième /Home.
    Sous Unix tout est géré comme un fichier ainsi une partition hda2 /home
    est vue comme un fichier dans l'arborescence, on ne voie pas le disque
    dur comme sous Windows.
    Par exemple hdb a deux partitions / et /home alors, on va les monter
    (par ex) dans /misc/ et /misc/home ainsi le répertoire /misc
    représentera le disque hdb la partition swap est la même pour les deux
    installations donc si elle a été crée sur hda elle reste valable pour
    l'installation sur le disque hdb. Ainsi la distribution sur hda verras
    la distribution sur hdb. On peut avoir par ex le répertoire /home sur
    plusieurs disques, mais je n'ai pas étudié la question.

    Réponse de Gérald . Encore Merci !!!

    Et maintenant c'est au tour de
    Dimitri de m'avoir gentillement répondu , c'est long précis et cela pas mal de chose au point !

    Il faut d'abord garder en tête que sous Unix/Linux, tout est fichier. En effet, tes différentes partitions sur éventuellements plusieurs disques durs sont accessible directement par les fichiers de périphériques que tu trouves dans /dev. En cas d'accès à ces fichers, le noyau se débrouille pour utiliser le bon driver afin de gérer les écritures.
    Soyons un peu plus précis. Sur un PC tu peux brancher 4 HDD IDE à la fois.
    Tu pourras alors les trouver/manipuler sous linux en accédant aux fichiers /dev/hda pour le primary master /dev/hdb pour le primary slave /dev/hdc pour le secondary master /dev/hdd pour le secondary slave
    C'est pour cela que bien souvent les CDROMS IDE sont trouvés dans /dev/hdc.
    Dans le cas des HDD SCSI, on trouvera les fichiers /dev/sda /dev/sdb ... et là les lettres correspondent à la succession des items dans la chaîne scsi.
    Lorsque tu partitionnes tes disques, avec fdisk (ou une application qui va appeller fdisk ou faire le même travail), tu crées des espaces logiques pour répartir tes données. Là encore tes choix sont limités par le PC.
    Sur un PC tu ne peux créer que 4 partitions principales. (Le BIOS ne sait pas en gérer plus). Donc la solution utilisée consiste à créer une partition étendue dans laquelle on va faire ce que l'on veut, indépendemment du BIOS cette fois.
    Dans une partition étendue, on peut mettre autant de partitions logiques que souhaitées. Où va-t-on maintenant trouver les partitions ? Elles vont être accessibles via les fichiers de périphériques /dev/hda1 à /dev/hda4 pour les partitions primaires du premier HDD, /dev/hda5 est la partition étendue si les 4 primaires sont prises, et les partitions logiques prendront les numéros suivants.
    Ca marche pareil sur tous les disques, IDE ou SCSI.
    Maintenant, l'accès aux fichiers de périphériques permet simplement de gérer un seul fichier. Afin de bénéficier de fonctionnalités avancées, on va tout de même utiliser un système de fichier.
    Et c'est là que je vais enfin répondre à ta question.
    En effet, tu crées un système de fichier sur chacune de tes partitions, des systèmes éventuellement différents (linux native, linux swap ...), et pour les utiliser en voyant des répertoires et des fichiers avec des droits d'accès et tout, et bien tu *montes* le système de fichier dans ton arborescence principale. Donc par exemple tu vas decider que /dev/hda3 devra abriter tes données personnelles, et tu mount cette partition au point de montage /home.
    Cela ne veux pas dire que /dev/hda3 EST /home, mais simplement que tu as décidé de le voir comme ca. Si maintenant tu décides de le faire apparaitre comme /users, et bien tu crées ton répertoire cible et tu remonte /dev/hda3 dans /users :
             $ mkdir /users
             $ umount /home
             $ mount /dev/hda3 /users
    A ce moment là tu retrouves toutes les données de hda3 dans /users. Ce n'est qu'une facon d'organiser de manière logique des informations physiques. Sous Unix, les utilisateurs n'ont pas besoin de savoir qu'il existe des diques durs, combien sont présents sur la machine et quels noms le système leur donne. C'est l'administrateur qui se débrouille avec ca, et à la fin il n'y à qu'une grande arborescence pour tout le monde, comprenant éventuellement plusieurs disques, des CDs et disquettes, des zips ou que sais-je encore.
    Donc lorsque tu mets un 2e disque avec des données que tu voyais auparavant dans /home, rien ne t'empêche de les voir maintenant dans /mnt/home.

    Merci encore à lui .
  3. Une question plus simple comment changer l'heure Du système ?
    Cela aussi, j'ai trouvé, grace à César, il faut aller dans DrakConf et changer l'heure ...

    Là c'est encore Dimitri qui s'y colle:
    Quant au changement de l'heure on fait ca avec la commande date, donc tu peux lire man date pour les détails, ou directement taper :
             $ date mmjjHHMM
    en tant que root, avec mm le mois, jj de quantième de mois, HH l'heure courante et enfin MM les minutes.
  4. Une question plus compliquée , comment faire pour générer un fichier gnomeConf.sh ?
    La question n'est plus d'actualitée, je reste sous KDE à 99 % du temps.
  5. Si quelqu'un connait un truc pour faire marcher ma HP 815 C avec la Mdk 7.2 ... je suis preneur.

    Alors là c'est moi qui my' met tout seul :
    Il faut choisir le mode Brouillon ... Draft en anglais et ca marche !
    C'est le Monsieur de chez Mandrake qui me l'a expliqué .


Suite au plus long message jamais reçu sur mon livre d'or, j'ai eu l'autorisation d'Aurelien de publier les mutliples astuces qu'il m'a donné !

Si tu veux pouvoir exécuter ton script sans avoir à taper l'adresse complète du fichier, histoire d'avoir une
commande simple, comme 'grep', 'man', 'tar', etc.
Il faut savaoir que les commandes (ou les liens vers ces commandes) sont toutes contenues dans le répertoire /usr/bin/
(en tout cas, c'est comme ça sous la RedHat). Pour y écrire, il faut passer sous root
$ su
password : tonmotdepasse

(mais ça, tu connais déjà ;-)) )
tu vas dans le répertoire qui contient l'ensemble des commandes : /usr/bin/
$ cd /usr/bin/
$ ln -s /chemin_vers_le_script/nom_script /usr/bin/nom_lien
cette commande magique crée un lien symbolique vers le fichier '/chemin_vers_le_script/nom_script'
(mais ça, tu connais aussi ! (soi-dit en passant, tu peux mettre autant de liens que tu veux sur la même ligne de
commande, il t'en créera alors plusieurs))
Maintenant, quand tu voudras exécuter ton script, il te suffira de taper :
$ nom_lien
et ce, où que tu sois, au lieu de
$ /chemin_vers_le_script/nom_script
c'est bien pratique ... !
La commande tar, que tu connais déjà, permet d'archiver plusieurs répertoire, en gardant les droits utilisateurs des
différents fichiers...
$ tar -cvf nom_de_l_archive.tar dir1 dir2 dir3 dir4 ... dirN
(elle ne sert à rien pour un seul fichier... puisque l'intérêt de cette fonction est de reproduire l'arborescence)
et derrière, la compression :
$ gzip -9 nom_de_l_archive.tar
Si tu veux que des programmes soient lancés au démarrage de ta machine, je peux t'expliquer comment procéder.
Attention, accroche toi, ça risque de ne pas te paraître très clair au début, mais si tu relis deux ou trois fois, tu finiras
bien par comprendre ;-)
Tout d'abord, il faut savoir qu'au démarrage ou à l'arrêt, la machine exécute la commande 'init', avec un numéro : 0
pour l'arrêt, 6 pour le redémarrage... Cette commande démarre ou stoppe l'ensemble des processus.
(Attention ! n'exécute pas cette commande ! Seul root a les droits pour la lancer, et tu risquerais d'éteindre ta
machine, ou de la rebooter !)
Le numéro correspond à l'ordre d'importance des processus lancés (du plus important, 0, au moins important, 6).
En fait, cette commande va lire le contenu de certains répertoires, se trouvant dans /etc/rc.d/ (pour la RedHat, je ne
sais pas si c'est le même pour la Mandrake, mais ça ne doit pas varier beaucoup).
Ces répertoires sont :
/etc/rc.d/rc0.d/
/etc/rc.d/rc1.d/
/etc/rc.d/rc2.d/
/etc/rc.d/rc3.d/
/etc/rc.d/rc4.d/
/etc/rc.d/rc5.d/
/etc/rc.d/rc6.d/
Un répertoire rc#.d contient des liens vers des fichiers. Ces liens ont des noms de la forme 'S##nom_fichier' ou
'K##nom_fichier', et ils pointent vers le script 'nom_fichier' contenu dans le répertoire /etc/rc.d/init.d/. Ce script prend
un paramètre qui peut être 'start' ou 'stop' (pour lancer ou arrêter le processus).
Selon que le lien commence par un S ou un K, il sera appelé par la commande init pour démarrer (S pour Start) ou
arrêter (K pour Kill) le processus.
Ca va toujours jusque là ?
Le numéro du répertoire /etc/rc.d/rc#.d correspond à l'ordre d'importance du processus. La commande
$ init 0
aura pour effet d'exécuter les commandes contenues dans le répertoire rc0.d
$ init 3
--> rc3.d et, tu l'auras compris, >$ init 6
--> rc6.d
Donc, récapitulons, les liens des répertoires /etc/rc.d/rc#.d/ pointent vers des scripts du répertoire /etc/rc.d/init.d/, et
sont appelés par la commande init #, qui exécute les commandes contenues dans les répertoires dont le numéro est
compris entre 0 et #.
C'est clair ?
Bon, tu me diras : "c'est bien beau, tout ça, mais comment je fais pour lancer automatiquement une commande au
démarrage ?", et là je te répondrai : "si tu as suivi (et compris), rien de plus simple ..."
Tu crées un script (ou un lien vers un script), qui prend comme paramètre 'start' ou 'stop', dans le répertoire
/etc/rc.d/init.d/. Tu crées deux liens vers ce script dans /etc/rc.d/rc3.d (pas dans rc0.d, rc1.d ou rc2.d, car il risquerait
de manquer des processus nécessaires au lancement du script) : 'S##nom_du_lien', et 'K##nom_du_lien'. (##
correspond à l'ordre d'importance. Un conseil, donne lui le numéro le plus élevé, soit 99. Si 99 est déjà pris, tu peux
lui donner le numéro 991, et ainsi de suite, pour être sûr qu'il soit exécuté en dernier au démarrage... )
Une fois ces liens créés, tu as fini, et Ô joie, quand tu redémarreras ta machine, tu constateras que le processus a été
lancé ;-)
Donc, je récapitule une dernière fois, avec un exemple, pour être sûr que tu as bien compris. Imaginons que j'aie un
programme qui s'appelle toto dans les répertoire /usr/local/prog/toto.
Je veux qu'il se lance au démarrage. Je commence donc par créer un script comme celui ci-dessous, que j'appelle
/usr/local/prog/truc :

#!/usr/bin/sh
case $1 in
start) echo "démarrage de toto"
/usr/local/prog/toto;;
stop) echo "arrêt de toto"
kill -TERM `cat /usr/local/prog/toto.pid`;;
# /usr/local/prog/toto.pid est le fichier sensé contenir le
# numéro de processus du programme, numéro qui lui a été
# attribué par le système lorsqu'on l'a lancé
*) echo "Usage : $0 {start|stop}";;
esac
Je rends mon script exécutable :
$ chmod +x /usr/local/prog/truc
Je crée un lien vers le script dans /etc/rc.d/init.d (là, je dois être sous root)
$ ln -s /usr/local/prog/truc /etc/rc.d/init.d/lien_truc
(j'aurais pu me contenter de créer directement le script dans /etc/rc.d/init.d/, mais c'est plus "propre" de travailler avec des liens)
Je crée maintenant les liens dans /etc/rc.d/rc3.d
$ ln -s /etc/rc.d/init.d/lien_truc /etc/rc.d/rc3.d/S991truc
$ ln -s /etc/rc.d/init.d/lien_truc /etc/rc.d/rc3.d/K991truc
Et voilà, le tour est joué ;-)
Alors, c'était pas la mort, si ?
Un autre truc utile, puisque tu connais le principe du pipe |, c'est le "node" (noeud). C'est une espèce de fichier qui
ne contient rien du tout, mais que tu peux remplir momentanément. Ca a l'air compliqué, mais c'est simple :
$ mknot nom_de_mon-noeud p
crée un node de type pipe... c'est donc un pipe "en puissance", tu peux l'appeler pour faire passer un flux à travers ...
cela t'évite par exemple de créer momentanément un fichier, pour éviter de gaspiller de la mémoire ...
Prenons par exemple ta commande pour créer des mp3 :
$ cdparanoia -w numero_de_la_piste_à_extraire
$ lame numero_de_la_piste_extraite.wav nom_du morceau.mp3
tu crées d'abord un wave en entier(qui prend quand même pas mal de place, et du temps), puis tu crées un mp3
derrière, et ensuite il te faut supprimer le wave. Moralité : tu perds de l'espace et du temps.
Avec le node, tu n'as plus ce problème ...
Tu crées ton node
$ mknod num_piste.wav p
$ cdparanoia -w num_piste > num_piste.wav &
(n'oublie pas le & !!)
$ lame num_piste.wav nom_morceau.mp3
Il ne faut surtout pas oublier le &, car le node fonctionne de la façon suivante : Quand tu le crées, il est inactif, mais
dès que tu lui envoies quelque chose ( par la redirection > de la commande cdparanoia), il se bloque jusquèà ce qu'on
le lise ... En fait c'est le principe d'un tuyau ... tu as ouvert l'entrée, mais pas encore la sortie, alors tant qu'il reste
bouché d'un côté, tu es bloqué. Le & permet de donner son autonomie au processus, et de reprendre la main dans la
console. Si tu ne le mettais pas, il te faidrait lancer la deuxième commande dans une autre console... Une fois cette
deuxième commande lancée, la sortie du tuyau est bouchée, et au lieu de passer par un fichier intermédiaire (le
wave), le résultat de cdparanoia ets directement envoyé à lame... C'est le principe du flux tendu, quoi ...
après, tu peux te créer un script, qui crée lui-même ton mp3 :

#!/usr/bin/sh
if [ $ # -ne 2 ] then
mknod .$1.wav p
cdparanoia -w $1 > .$1.wav &
lame .$1 $2
rm -f .$1.wav
else
echo "Usage : $0 num_piste nom_fichier_mp3"
fi
Merci à lui ! La mise en forme n'est pas encore faite pour cette longue suite d'astuces !




Crée avec Bluefish


Ayo Web Site


Debian : Forum Francophone :)

Lolica

/home/alex

Tomy Morel

Open Web Group Valid HTML 4.01!

coucou et

Les logiciels qui vont bien et où trouver de l'information !
Et j'en suis fier

Le Petit Journal FR linux P'tit Lu
Yellow Spoon

The Free Internet Chess Server

Desintgr