<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Misc</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Misc"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Misc"/>
	<updated>2026-04-12T06:41:45Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Dimensionnement_m%C3%A9moire_d%27un_serveur_web_Apache&amp;diff=14021</id>
		<title>Dimensionnement mémoire d&#039;un serveur web Apache</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Dimensionnement_m%C3%A9moire_d%27un_serveur_web_Apache&amp;diff=14021"/>
		<updated>2006-12-05T21:35:05Z</updated>

		<summary type="html">&lt;p&gt;Misc : ajout de MaxClient que j&amp;#039;ai oublié ( merci yanntech )&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dimensionnement d&#039;un serveur web apache ==&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
De nos jours, mettre en place un serveur web est une tache relativement facile.&lt;br /&gt;
La plupart des sites n&#039;ayant pas pour vocation de remplacer yahoo et google, et&lt;br /&gt;
la capacité des machines étant en hausse constante, une installation de base de&lt;br /&gt;
apache suffit pour la plupart des particuliers.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans un contexte professionnel, ça ne suffit généralement pas.&lt;br /&gt;
Nous allons donc voir une méthode pour déterminer comment régler apache.&lt;br /&gt;
Ce guide ne prétend pas permettre de répondre à tout les problémes, mais peut&lt;br /&gt;
servir de base à des changements en finesse.&lt;br /&gt;
&lt;br /&gt;
== Présentation de la machine et des besoins ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre exemple est tiré d&#039;un cas réel.&lt;br /&gt;
Le serveur en question tourne sur un noyau 2.6.16, avec un bi-xeon 2,8 Ghz,&lt;br /&gt;
1 Go de ram, et 2 Go de swap.&lt;br /&gt;
La version d&#039;apache est une version 2.0.54.&lt;br /&gt;
Le serveur a une tache trés simple, c&#039;est de servir de portail pour authentifier&lt;br /&gt;
les utilisateurs en dehors du réseau intranet. Chaque utilisateur se connecte, reçoit un&lt;br /&gt;
cookie, et surfe sur les pages du site.&lt;br /&gt;
Les utilisateurs sont dans une base ldap, les cookies dans une base postgresql, et le&lt;br /&gt;
portail est écrit en mod_python.&lt;br /&gt;
Pour diverses raisons, apache utilise le module prefork, sans thread, car les tests ont montré&lt;br /&gt;
des erreurs dûes au code non multithread du portail ( ou d&#039;une bibliothèque associée ). Ça tombe bien, car cela simplifie le calcul de dimensionnement.&lt;br /&gt;
&lt;br /&gt;
== Principes généraux sur l&#039;optimisation d&#039;apache ==&lt;br /&gt;
&lt;br /&gt;
De nombreux documents existent sur le sujet, comme :&lt;br /&gt;
http://httpd.apache.org/docs/2.0/misc/perf-tuning.html&lt;br /&gt;
http://www.jacobian.org/writing/2005/dec/12/django-performance-tips/&lt;br /&gt;
http://virtualthreads.blogspot.com/2006/01/tuning-apache-part-1.html&lt;br /&gt;
&lt;br /&gt;
Je vous conseille de les lire en entier, et d&#039;essayer de les comprendre.&lt;br /&gt;
&lt;br /&gt;
Pour résumer, le principe général de l&#039;optimisation est le suivant : pour chaque serveur, il&lt;br /&gt;
y a 4 ressources ( ou plus ) :&lt;br /&gt;
* la ram&lt;br /&gt;
* le disque&lt;br /&gt;
* le processeur&lt;br /&gt;
* la bande passante&lt;br /&gt;
&lt;br /&gt;
Il faut identifier la ressource qui coincera la première, et si besoin, agir à ce niveau.&lt;br /&gt;
Dans le cas d&#039;apache, ça dépend de ce qui est servi. Un site avec des pages complexes en php va utiliser du cpu, ou de la ram. Un site proposant des films ou des vidéos va surtout utiliser le disque ou la bande passante.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de notre exemple, le site n&#039;utilise pas le disque, ne fait pas d&#039;opération coûteuse en temps CPU, et n&#039;est pas limité par le réseau.&lt;br /&gt;
&lt;br /&gt;
Pour le savoir, c&#039;est trés simple, il suffit d&#039;utiliser ab ( apache benchmark ), et de surveiller&lt;br /&gt;
les ressources, avec htop, iostat, ntop, etc. Je vous conseille de lire cette article pour avoir une vue rapide des outils utilisés : http://www.redhat.com/magazine/011sep05/features/tools/&lt;br /&gt;
( ou le début de ce document http://www.lemis.com/grog/Papers/Debug-tutorial/tutorial.pdf )&lt;br /&gt;
&lt;br /&gt;
Dans notre exemple, la supervision des ressources vient de munin, et le benchmark d&#039;un moteur de recherche interne mal réglé, poussant le serveur au delà des limites de la configuration par défaut.&lt;br /&gt;
&lt;br /&gt;
Donc, après &amp;quot;benchmark&amp;quot;, nous avons constaté que la limitation principal, ce fut le nombre de processus. &lt;br /&gt;
&lt;br /&gt;
La configuration, quasiment par défaut, contient :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule prefork.c&amp;gt;&lt;br /&gt;
  # nombre maximum de processus au repos&lt;br /&gt;
  MaxSpareServers     10&lt;br /&gt;
&lt;br /&gt;
  # nombre minimum de processus au repos&lt;br /&gt;
  MinSpareServers      5&lt;br /&gt;
&lt;br /&gt;
  # nombre maximum de processus&lt;br /&gt;
  MaxClients          20&lt;br /&gt;
&lt;br /&gt;
 # nombre de requêtes avant de relancer le processus&lt;br /&gt;
  MaxRequestsPerChild  1000&lt;br /&gt;
&lt;br /&gt;
  # nombre de serveurs lancés au démarrage&lt;br /&gt;
  StartServers         5&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous limite à 20 processus simultanés.&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la documentation d&#039;apache, c&#039;est un protection. Permettre de lancer un nombre illimité de serveur ne sert à rien, car il y a toujours une ressource qui va manquer. Donc, cela permet de ménager la machine, pour intervenir en cas de probléme.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, ces valeurs ne sont pas optimales, et nous allons voir comment les augmenter, et de combien.&lt;br /&gt;
&lt;br /&gt;
== Un peu de calcul ==&lt;br /&gt;
&lt;br /&gt;
La mémoire, sous linux et sans doute sous d&#039;autres unix, voir d&#039;autres OS, est toujours occupé au maximum. Soit les processus qui tournent l&#039;utilisent, soit le noyau se sert de ceci comme cache.&lt;br /&gt;
&lt;br /&gt;
Notre première étape va donc être de calculer quel part est prise par le cache, via la commande free :&lt;br /&gt;
&lt;br /&gt;
  misc@teferi# free&lt;br /&gt;
               total       used       free     shared    buffers     cached&lt;br /&gt;
  Mem:       1033980     978420      55560          0      83672     729744&lt;br /&gt;
  -/+ buffers/cache:     165004     868976&lt;br /&gt;
  Swap:      1999192        284    1998908&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soit, ~ 730 Mo de cache ( en dessous de cached ), sur un total de 1000 Mo. Parmi les 730 Mo, j&#039;ai décidé d&#039;en mettre la moitié pour apache, soit ~ 360 Mo. On peut en mettre plus, si le serveur ne fait que ça, mais je préfère laisser de la place pour d&#039;autres taches, et 360 Mo seront largement suffisant, comme nous verrons par la suite.&lt;br /&gt;
&lt;br /&gt;
La deuxiéme partie, c&#039;est de savoir combien de serveur en plus peut on mettre dans 360 Mo. Le calcul est simple, on prends la mémoire prise par un serveur, et on divise.&lt;br /&gt;
Jusqu&#039;ici, tout va bien, mais ça ne va pas durer.&lt;br /&gt;
&lt;br /&gt;
La gestion de la mémoire sous linux est assez complexe. Les zones mémoires sont partagées entre les processus si elles sont identiques, les zones peuvent être en swap ou en mémoire, et d&#039;une maniére général, les outils sont verbeux.&lt;br /&gt;
&lt;br /&gt;
Pour déterminer la taille utilisée par un client, le premier pas est d&#039;utiliser ps, pour voir les processus. C&#039;est ainsi que j&#039;ai vu que chaque serveur apache se connecte directement à postgresql, il faut donc déterminer la taille des 2 processus.&lt;br /&gt;
&lt;br /&gt;
Je me suis basé sur ce guide ( http://www.kdedevelopers.org/node/1445 ), et j&#039;ai obtenu les chiffres suivants grâce à &#039;top&#039; :&lt;br /&gt;
&lt;br /&gt;
Un processus apache prends en moyenne :&lt;br /&gt;
data(DATA) 7000, shared(SHR) 3500, resident(RES) 10000, virtual(VIRT) 16000&lt;br /&gt;
&lt;br /&gt;
Un processus postgresql prends :&lt;br /&gt;
data(DATA) 1500, shared(SHR) 2800, resident(RES) 4000, virtual(VIRT) 17000&lt;br /&gt;
&lt;br /&gt;
VIRT n&#039;est pas utile dans notre calcul, c&#039;est la mémoire demandé, pas la mémoire alloué.&lt;br /&gt;
&lt;br /&gt;
SHR, c&#039;est de la mémoire partagée. Comme nos processus sont identiques, c&#039;est de la mémoire qui ne compte que pour le premier processus. Donc non utile pour notre calcul, ou du moins négligeable.&lt;br /&gt;
&lt;br /&gt;
RES est la mémoire utilisée par le processus, mais ça compte aussi la mémoire qui est potentiellement partagée.&lt;br /&gt;
&lt;br /&gt;
Il ne reste que DATA, obtenu via la touche &#039;f&#039; dans top.&lt;br /&gt;
DATA, c&#039;est la mémoire non partagée du processus, c&#039;est donc ce qu&#039;on cherche, dans notre cas.&lt;br /&gt;
&lt;br /&gt;
Donc apache + postgresql, ça fait 9000 ko de DATA, soit à peu prés 9 mo par paire,&lt;br /&gt;
non partagés avec les processus déjà en mémoire.&lt;br /&gt;
&lt;br /&gt;
Nous pouvons donc, sur les 360 Mo, mettre 360 / 9 = 40 paires en plus, donc 40 serveurs.&lt;br /&gt;
&lt;br /&gt;
La configuration d&#039;apache devient donc :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;IfModule prefork.c&amp;gt;&lt;br /&gt;
    # 20 de base + les 40 plus haut &lt;br /&gt;
    # ce qui fait 60 clients     &lt;br /&gt;
    MaxClient 60&lt;br /&gt;
&lt;br /&gt;
    # nombre maximum de processus au repos&lt;br /&gt;
    # moitié de MaxClients, mais c&#039;est plus au feeling&lt;br /&gt;
    MaxSpareServers     30&lt;br /&gt;
&lt;br /&gt;
    # nombre minimum de processus au repos&lt;br /&gt;
&lt;br /&gt;
    MinSpareServers      5&lt;br /&gt;
    # nombre de requêtes avant de relancer le processus&lt;br /&gt;
    MaxRequestsPerChild  1000&lt;br /&gt;
&lt;br /&gt;
    # nombre de serveurs lancés au démarrage&lt;br /&gt;
    StartServers         5&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pourquoi ne pas avoir pris la swap en compte dans le calcul ? ==&lt;br /&gt;
&lt;br /&gt;
En effet, il y a une partition de swap de 2 Go, et nous aurions pu la prendre&lt;br /&gt;
en compte. Mais j&#039;estime qu&#039;un serveur qui commence à utiliser la swap est un serveur&lt;br /&gt;
trop chargé.  Utiliser la swap implique d&#039;écrire sur le disque, ce qui est&lt;br /&gt;
plus lent, ce qui ralenti les lectures ( donc le lancement d&#039;autres processus,&lt;br /&gt;
ou des données ), les écritures ( les logs ), et doit donc être évité en temps&lt;br /&gt;
normal.&lt;br /&gt;
&lt;br /&gt;
De plus, il existe des serveurs utilisant le disque de façon bien plus intensive que apache,&lt;br /&gt;
et vous devez autant que possible séparer les ressources dans ce cas. Postfix et postgresql sont deux exemples de serveurs dépendants du disque, et il vaut mieux refuser une partie des clients en cas de pic, que de rendre la machine inutilisable.&lt;br /&gt;
&lt;br /&gt;
Prenons un exemple :&lt;br /&gt;
vous avez, malgré ce document, décidé de mettre plus de clients qu&#039;il est possible de faire tenir en mémoire. Et aujourd&#039;hui, c&#039;est la gloire, vous passez sur cnn, pour votre papier sur les camps de tortures illégaux au sud de la floride. &lt;br /&gt;
&lt;br /&gt;
Vos premiers clients arrivent, puis, le serveur commence à placer des processus dans le swap. La charge continue de monter, et le serveur devient plus lent à répondre. Les clients s&#039;accumulent, et les processus, mettant plus de temps à traiter les requêtes, sont de moins en moins nombreux à être disponible, et apache est donc obligé de mettre les requêtes dans une file.&lt;br /&gt;
&lt;br /&gt;
Le serveur, croulant sous la charge, ne répond plus au ssh, ni à la majorité des requêtes, et vous ne pouvez pas vous connecter, afin de mettre une redirection, ou de placer le document autre part. Fin de la partie. Et bien sûr, tout les autres services de la machine en pâtissent.&lt;br /&gt;
&lt;br /&gt;
Avec une limitation des clients, le serveur reste en place. Vous avez tout le loisir de modifier les pages, de rediriger les autres services ailleurs, ou de libérer la mémoire des taches non essentielles ( par exemple, basculer un serveur mysql ailleurs ).&lt;br /&gt;
Et vous continuez à servir une partie des clients web.&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|Michael Scherer|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Dimensionnement_m%C3%A9moire_d%27un_serveur_web_Apache&amp;diff=13925</id>
		<title>Dimensionnement mémoire d&#039;un serveur web Apache</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Dimensionnement_m%C3%A9moire_d%27un_serveur_web_Apache&amp;diff=13925"/>
		<updated>2006-11-02T12:46:12Z</updated>

		<summary type="html">&lt;p&gt;Misc : Ajout de la doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dimensionnement d&#039;un serveur web apache ==&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
De nos jours, mettre en place un serveur web est une tache relativement facile.&lt;br /&gt;
La plupart des sites n&#039;ayant pas pour vocation de remplacer yahoo et google, et&lt;br /&gt;
la capacité des machines étant en hausse constante, une installation de base de&lt;br /&gt;
apache suffit pour la plupart des particuliers.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans un contexte professionnel, ça ne suffit généralement pas.&lt;br /&gt;
Nous allons donc voir une méthode pour déterminer comment régler apache.&lt;br /&gt;
Ce guide ne prétend pas permettre de répondre à tout les problémes, mais peut&lt;br /&gt;
servir de base à des changements en finesse.&lt;br /&gt;
&lt;br /&gt;
== Présentation de la machine et des besoins ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre exemple est tiré d&#039;un cas réel.&lt;br /&gt;
Le serveur en question tourne sur un noyau 2.6.16, avec un bi-xeon 2,8 Ghz,&lt;br /&gt;
1 Go de ram, et 2 Go de swap.&lt;br /&gt;
La version d&#039;apache est une version 2.0.54.&lt;br /&gt;
Le serveur a une tache trés simple, c&#039;est de servir de portail pour authentifier&lt;br /&gt;
les utilisateurs en dehors du réseau intranet. Chaque utilisateur se connecte, reçoit un&lt;br /&gt;
cookie, et surfe sur les pages du site.&lt;br /&gt;
Les utilisateurs sont dans une base ldap, les cookies dans une base postgresql, et le&lt;br /&gt;
portail est écrit en mod_python.&lt;br /&gt;
Pour diverses raisons, apache utilise le module prefork, sans thread, car les tests ont montré&lt;br /&gt;
des erreurs dûes au code non multithread du portail ( ou d&#039;une bibliothèque associée ). Ça tombe bien, car cela simplifie le calcul de dimensionnement.&lt;br /&gt;
&lt;br /&gt;
== Principes généraux sur l&#039;optimisation d&#039;apache ==&lt;br /&gt;
&lt;br /&gt;
De nombreux documents existent sur le sujet, comme :&lt;br /&gt;
http://httpd.apache.org/docs/2.0/misc/perf-tuning.html&lt;br /&gt;
http://www.jacobian.org/writing/2005/dec/12/django-performance-tips/&lt;br /&gt;
http://virtualthreads.blogspot.com/2006/01/tuning-apache-part-1.html&lt;br /&gt;
&lt;br /&gt;
Je vous conseille de les lire en entier, et d&#039;essayer de les comprendre.&lt;br /&gt;
&lt;br /&gt;
Pour résumer, le principe général de l&#039;optimisation est le suivant : pour chaque serveur, il&lt;br /&gt;
y a 4 ressources ( ou plus ) :&lt;br /&gt;
* la ram&lt;br /&gt;
* le disque&lt;br /&gt;
* le processeur&lt;br /&gt;
* la bande passante&lt;br /&gt;
&lt;br /&gt;
Il faut identifier la ressource qui coincera la première, et si besoin, agir à ce niveau.&lt;br /&gt;
Dans le cas d&#039;apache, ça dépend de ce qui est servi. Un site avec des pages complexes en php va utiliser du cpu, ou de la ram. Un site proposant des films ou des vidéos va surtout utiliser le disque ou la bande passante.&lt;br /&gt;
&lt;br /&gt;
Dans le cas de notre exemple, le site n&#039;utilise pas le disque, ne fait pas d&#039;opération coûteuse en temps CPU, et n&#039;est pas limité par le réseau.&lt;br /&gt;
&lt;br /&gt;
Pour le savoir, c&#039;est trés simple, il suffit d&#039;utiliser ab ( apache benchmark ), et de surveiller&lt;br /&gt;
les ressources, avec htop, iostat, ntop, etc. Je vous conseille de lire cette article pour avoir une vue rapide des outils utilisés : http://www.redhat.com/magazine/011sep05/features/tools/&lt;br /&gt;
( ou le début de ce document http://www.lemis.com/grog/Papers/Debug-tutorial/tutorial.pdf )&lt;br /&gt;
&lt;br /&gt;
Dans notre exemple, la supervision des ressources vient de munin, et le benchmark d&#039;un moteur de recherche interne mal réglé, poussant le serveur au delà des limites de la configuration par défaut.&lt;br /&gt;
&lt;br /&gt;
Donc, après &amp;quot;benchmark&amp;quot;, nous avons constaté que la limitation principal, ce fut le nombre de processus. &lt;br /&gt;
&lt;br /&gt;
La configuration, quasiment par défaut, contient :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  &amp;lt;IfModule prefork.c&amp;gt;&lt;br /&gt;
  # nombre maximum de processus au repos&lt;br /&gt;
  MaxSpareServers     10&lt;br /&gt;
&lt;br /&gt;
  # nombre minimum de processus au repos&lt;br /&gt;
  MinSpareServers      5&lt;br /&gt;
&lt;br /&gt;
  # nombre maximum de processus&lt;br /&gt;
  MaxClients          20&lt;br /&gt;
&lt;br /&gt;
 # nombre de requêtes avant de relancer le processus&lt;br /&gt;
  MaxRequestsPerChild  1000&lt;br /&gt;
&lt;br /&gt;
  # nombre de serveurs lancés au démarrage&lt;br /&gt;
  StartServers         5&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce qui nous limite à 20 processus simultanés.&lt;br /&gt;
&lt;br /&gt;
Comme indiqué dans la documentation d&#039;apache, c&#039;est un protection. Permettre de lancer un nombre illimité de serveur ne sert à rien, car il y a toujours une ressource qui va manquer. Donc, cela permet de ménager la machine, pour intervenir en cas de probléme.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, ces valeurs ne sont pas optimales, et nous allons voir comment les augmenter, et de combien.&lt;br /&gt;
&lt;br /&gt;
== Un peu de calcul ==&lt;br /&gt;
&lt;br /&gt;
La mémoire, sous linux et sans doute sous d&#039;autres unix, voir d&#039;autres OS, est toujours occupé au maximum. Soit les processus qui tournent l&#039;utilisent, soit le noyau se sert de ceci comme cache.&lt;br /&gt;
&lt;br /&gt;
Notre première étape va donc être de calculer quel part est prise par le cache, via la commande free :&lt;br /&gt;
&lt;br /&gt;
  misc@teferi# free&lt;br /&gt;
               total       used       free     shared    buffers     cached&lt;br /&gt;
  Mem:       1033980     978420      55560          0      83672     729744&lt;br /&gt;
  -/+ buffers/cache:     165004     868976&lt;br /&gt;
  Swap:      1999192        284    1998908&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soit, ~ 730 Mo de cache ( en dessous de cached ), sur un total de 1000 Mo. Parmi les 730 Mo, j&#039;ai décidé d&#039;en mettre la moitié pour apache, soit ~ 360 Mo. On peut en mettre plus, si le serveur ne fait que ça, mais je préfère laisser de la place pour d&#039;autres taches, et 360 Mo seront largement suffisant, comme nous verrons par la suite.&lt;br /&gt;
&lt;br /&gt;
La deuxiéme partie, c&#039;est de savoir combien de serveur en plus peut on mettre dans 360 Mo. Le calcul est simple, on prends la mémoire prise par un serveur, et on divise.&lt;br /&gt;
Jusqu&#039;ici, tout va bien, mais ça ne va pas durer.&lt;br /&gt;
&lt;br /&gt;
La gestion de la mémoire sous linux est assez complexe. Les zones mémoires sont partagées entre les processus si elles sont identiques, les zones peuvent être en swap ou en mémoire, et d&#039;une maniére général, les outils sont verbeux.&lt;br /&gt;
&lt;br /&gt;
Pour déterminer la taille utilisée par un client, le premier pas est d&#039;utiliser ps, pour voir les processus. C&#039;est ainsi que j&#039;ai vu que chaque serveur apache se connecte directement à postgresql, il faut donc déterminer la taille des 2 processus.&lt;br /&gt;
&lt;br /&gt;
Je me suis basé sur ce guide ( http://www.kdedevelopers.org/node/1445 ), et j&#039;ai obtenu les chiffres suivants grâce à &#039;top&#039; :&lt;br /&gt;
&lt;br /&gt;
Un processus apache prends en moyenne :&lt;br /&gt;
data(DATA) 7000, shared(SHR) 3500, resident(RES) 10000, virtual(VIRT) 16000&lt;br /&gt;
&lt;br /&gt;
Un processus postgresql prends :&lt;br /&gt;
data(DATA) 1500, shared(SHR) 2800, resident(RES) 4000, virtual(VIRT) 17000&lt;br /&gt;
&lt;br /&gt;
VIRT n&#039;est pas utile dans notre calcul, c&#039;est la mémoire demandé, pas la mémoire alloué.&lt;br /&gt;
&lt;br /&gt;
SHR, c&#039;est de la mémoire partagée. Comme nos processus sont identiques, c&#039;est de la mémoire qui ne compte que pour le premier processus. Donc non utile pour notre calcul, ou du moins négligeable.&lt;br /&gt;
&lt;br /&gt;
RES est la mémoire utilisée par le processus, mais ça compte aussi la mémoire qui est potentiellement partagée.&lt;br /&gt;
&lt;br /&gt;
Il ne reste que DATA, obtenu via la touche &#039;f&#039; dans top.&lt;br /&gt;
DATA, c&#039;est la mémoire non partagée du processus, c&#039;est donc ce qu&#039;on cherche, dans notre cas.&lt;br /&gt;
&lt;br /&gt;
Donc apache + postgresql, ça fait 9000 ko de DATA, soit à peu prés 9 mo par paire,&lt;br /&gt;
non partagés avec les processus déjà en mémoire.&lt;br /&gt;
&lt;br /&gt;
Nous pouvons donc, sur les 360 Mo, mettre 360 / 9 = 40 paires en plus, donc 40 serveurs.&lt;br /&gt;
&lt;br /&gt;
La configuration d&#039;apache devient donc :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;IfModule prefork.c&amp;gt;&lt;br /&gt;
    # nombre maximum de processus au repos&lt;br /&gt;
    # moitié de MaxClients, mais c&#039;est plus au feeling&lt;br /&gt;
    MaxSpareServers     30&lt;br /&gt;
&lt;br /&gt;
    # nombre minimum de processus au repos&lt;br /&gt;
    MinSpareServers      5&lt;br /&gt;
    # nombre de requêtes avant de relancer le processus&lt;br /&gt;
    MaxRequestsPerChild  1000&lt;br /&gt;
&lt;br /&gt;
    # nombre de serveurs lancés au démarrage&lt;br /&gt;
    StartServers         5&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pourquoi ne pas avoir pris la swap en compte dans le calcul ? ==&lt;br /&gt;
&lt;br /&gt;
En effet, il y a une partition de swap de 2 Go, et nous aurions pu la prendre&lt;br /&gt;
en compte. Mais j&#039;estime qu&#039;un serveur qui commence à utiliser la swap est un serveur&lt;br /&gt;
trop chargé.  Utiliser la swap implique d&#039;écrire sur le disque, ce qui est&lt;br /&gt;
plus lent, ce qui ralenti les lectures ( donc le lancement d&#039;autres processus,&lt;br /&gt;
ou des données ), les écritures ( les logs ), et doit donc être évité en temps&lt;br /&gt;
normal.&lt;br /&gt;
&lt;br /&gt;
De plus, il existe des serveurs utilisant le disque de façon bien plus intensive que apache,&lt;br /&gt;
et vous devez autant que possible séparer les ressources dans ce cas. Postfix et postgresql sont deux exemples de serveurs dépendants du disque, et il vaut mieux refuser une partie des clients en cas de pic, que de rendre la machine inutilisable.&lt;br /&gt;
&lt;br /&gt;
Prenons un exemple :&lt;br /&gt;
vous avez, malgré ce document, décidé de mettre plus de clients qu&#039;il est possible de faire tenir en mémoire. Et aujourd&#039;hui, c&#039;est la gloire, vous passez sur cnn, pour votre papier sur les camps de tortures illégaux au sud de la floride. &lt;br /&gt;
&lt;br /&gt;
Vos premiers clients arrivent, puis, le serveur commence à placer des processus dans le swap. La charge continue de monter, et le serveur devient plus lent à répondre. Les clients s&#039;accumulent, et les processus, mettant plus de temps à traiter les requêtes, sont de moins en moins nombreux à être disponible, et apache est donc obligé de mettre les requêtes dans une file.&lt;br /&gt;
&lt;br /&gt;
Le serveur, croulant sous la charge, ne répond plus au ssh, ni à la majorité des requêtes, et vous ne pouvez pas vous connecter, afin de mettre une redirection, ou de placer le document autre part. Fin de la partie. Et bien sûr, tout les autres services de la machine en pâtissent.&lt;br /&gt;
&lt;br /&gt;
Avec une limitation des clients, le serveur reste en place. Vous avez tout le loisir de modifier les pages, de rediriger les autres services ailleurs, ou de libérer la mémoire des taches non essentielles ( par exemple, basculer un serveur mysql ailleurs ).&lt;br /&gt;
Et vous continuez à servir une partie des clients web.&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|Michael Scherer|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Mod%C3%A8le:Plan-leapro-pro_sys&amp;diff=13924</id>
		<title>Modèle:Plan-leapro-pro sys</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Mod%C3%A8le:Plan-leapro-pro_sys&amp;diff=13924"/>
		<updated>2006-11-02T11:12:54Z</updated>

		<summary type="html">&lt;p&gt;Misc : Ajout de l&amp;#039;article sur la configuration pache, vis à vis de la ram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Administration système ==&lt;br /&gt;
*[[leapro-pro_sys-dispo|La Haute Disponibilité]]&lt;br /&gt;
*[[leapro-pro_sys-lvm|Le LVM (Logical Volume Manager)]]&lt;br /&gt;
*[[leapro-pro_sys-cryptofs|Crypter un système de fichiers]]&lt;br /&gt;
*[[Gestion des ACL]]&lt;br /&gt;
*[[leapro-pro_sys-dimensionnement-apache|Configurer apache par rapport à sa mémoire]]&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11663</id>
		<title>Tunnels ethernet avec OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11663"/>
		<updated>2006-02-12T12:42:37Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Depuis la version 4.3 de Openssh, l&#039;option pour faire des tunnels ip a été ajoutée, mais la doc sur internet est plutot rare sur le sujet.&lt;br /&gt;
&lt;br /&gt;
Avant tout, il faut vérifier la version d&#039;openssh sur le serveur et le client.&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
~ $ rpm -q openssh&lt;br /&gt;
openssh-4.3p1-3mdk&lt;br /&gt;
~ $ ssh sisay rpm -q openssh&lt;br /&gt;
openssh-4.3p1-0.1.20060mdk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple ici a été fait à partir de 2 mandriva, mais ça doit marcher sans modification&lt;br /&gt;
sur un autre linux ou *bsd.&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il faut les droits root sur les 2 machines. En effet, il y a quelques opérations à faire, aussi bien au niveau de la configuration que du réseau.&lt;br /&gt;
&lt;br /&gt;
== Sur le serveur ==&lt;br /&gt;
&lt;br /&gt;
La première chose à faire est de dire à openssh d&#039;autoriser les tunnels, en rajoutant cette directive :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PermitTunnel yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi retirer la séparation des priviléges, ou jouer sur les permissions de /dev/tun  .&lt;br /&gt;
J&#039;ai pris la facilité pour le moment, j&#039;ai rajouté&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UsePrivilegeSeparation no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre solution est de donner les permissions en lecture écriture à un groupe particulier&lt;br /&gt;
sur /dev/tun, ce qui est bien plus simple et sûr.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod :mongroupe /dev/tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et bien sur, être dans le groupe en question.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite charger le module tun :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modprobe tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le rajouter dans /etc/modprobe.preload&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo tun &amp;gt;&amp;gt; /etc/modprobe.preload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour le charger au prochain démarrage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sur le client ==&lt;br /&gt;
&lt;br /&gt;
Il faut simplement les droits sur /dev/tun, donc soit tourner en root, ou avoir la permission&lt;br /&gt;
d&#039;écrire sur /dev/tun, comme plus haut, puis faire ( sisay etant le serveur ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -w any:any sisay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez jeter une oeil sur les options -f et -N pour ne pas lancer de shell sur la machine distante. Et bien sur, les options habituels marchent encore ( clé, tunnel, master/slave ).&lt;br /&gt;
&lt;br /&gt;
Puis, en root, vous pourrez changer l&#039;ip de la nouvelle interface tun0 sur le serveur&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et faire pareil sur le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et finalement, vous pouvez maintenant tester le ping depuis le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ping 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le reste, c&#039;est de la configuration normale pour les interfaces. Vous pouvez rajouter des routes, un firewall, n&#039;importe quoi.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, il faut savoir que les connexions tcp par dessus tcp ( comme c&#039;est le cas avec ssh ) sont déconseillées, de par la nature de tcp ( http://docs.mandragor.org/files/Misc/GLFM/lm31/TCP_over_TCP_mauvaise_iD.html ).&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11662</id>
		<title>Tunnels ethernet avec OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11662"/>
		<updated>2006-02-12T12:41:20Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Depuis la version 4.3 de Openssh, l&#039;option pour faire des tunnels ip a été ajouté, mais la doc sur internet est plutot rare sur le sujet.&lt;br /&gt;
&lt;br /&gt;
Avant tout, il faut vérifier la version d&#039;openssh sur le serveur et le client.&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
~ $ rpm -q openssh&lt;br /&gt;
openssh-4.3p1-3mdk&lt;br /&gt;
~ $ ssh sisay rpm -q openssh&lt;br /&gt;
openssh-4.3p1-0.1.20060mdk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple ici a été fait à partir de 2 mandriva, mais ça doit marcher sans modification&lt;br /&gt;
sur un autre linux ou *bsd.&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il faut les droits root sur les 2 machines. En effet, il y a quelques opérations à faire, aussi bien au niveau de la configuration que du réseau.&lt;br /&gt;
&lt;br /&gt;
== Sur le serveur ==&lt;br /&gt;
&lt;br /&gt;
La première chose à faire est de dire à openssh d&#039;autoriser les tunnels, en rajoutant cette directive :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PermitTunnel yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi retirer la séparation des priviléges, ou jouer sur les permissions de /dev/tun  .&lt;br /&gt;
J&#039;ai pris la facilité pour le moment, j&#039;ai rajouté&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UsePrivilegeSeparation no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre solution est de donner les permissions en lecture écriture à un groupe particulier&lt;br /&gt;
sur /dev/tun, ce qui est bien plus simple et sûr.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod :mongroupe /dev/tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et bien sur, être dans le groupe en question.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite charger le module tun :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modprobe tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le rajouter dans /etc/modprobe.preload&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo tun &amp;gt;&amp;gt; /etc/modprobe.preload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour le charger au prochain démarrage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sur le client ==&lt;br /&gt;
&lt;br /&gt;
Il faut simplement les droits sur /dev/tun, donc soit tourner en root, ou avoir la permission&lt;br /&gt;
d&#039;écrire sur /dev/tun, comme plus haut, puis faire ( sisay etant le serveur ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -w any:any sisay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez jeter une oeil sur les options -f et -N pour ne pas lancer de shell sur la machine distante. Et bien sur, les options habituels marchent encore ( clé, tunnel, master/slave ).&lt;br /&gt;
&lt;br /&gt;
Puis, en root, vous pourrez changer l&#039;ip de la nouvelle interface tun0 sur le serveur&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et faire pareil sur le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et finalement, vous pouvez maintenant tester le ping depuis le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ping 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le reste, c&#039;est de la configuration normale pour les interfaces. Vous pouvez rajouter des routes, un firewall, n&#039;importe quoi.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, il faut savoir que les connexions tcp par dessus tcp ( comme c&#039;est le cas avec ssh ) sont déconseillées, de par la nature de tcp ( http://docs.mandragor.org/files/Misc/GLFM/lm31/TCP_over_TCP_mauvaise_iD.html ).&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11661</id>
		<title>Tunnels ethernet avec OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11661"/>
		<updated>2006-02-12T12:40:44Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Depuis la version 4.3 de Openssh, l&#039;option pour faire des tunnels ip a été ajouté, mais la doc sur internet est plutot rare sur le sujet.&lt;br /&gt;
&lt;br /&gt;
Avant tout, il faut vérifier la version d&#039;openssh sur le serveur et le client.&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
~ $ rpm -q openssh&lt;br /&gt;
openssh-4.3p1-3mdk&lt;br /&gt;
~ $ ssh sisay rpm -q openssh&lt;br /&gt;
openssh-4.3p1-0.1.20060mdk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple ici a été fait à partir de 2 mandriva, mais ça doit marcher sans modification&lt;br /&gt;
sur un autre linux ou *bsd.&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il faut les droits root sur les 2 machines. En effet, il y a quelques opérations à faire, aussi bien au niveau de la configuration que du réseau.&lt;br /&gt;
&lt;br /&gt;
== Sur le serveur ==&lt;br /&gt;
&lt;br /&gt;
La première chose à faire est de dire à openssh d&#039;autoriser les tunnels, en rajoutant cette directive :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PermitTunnel yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi retirer la séparation des priviléges, ou jouer sur les permissions de /dev/tun  .&lt;br /&gt;
J&#039;ai pris la facilité pour le moment, j&#039;ai rajouté&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UsePrivilegeSeparation no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre solution est de donner les permissions en lecture écriture à un groupe particulier&lt;br /&gt;
sur /dev/tun, ce qui est bien plus simple et sûr.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod :mongroupe /dev/tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et bien sur, être dans le groupe en question.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite charger le module tun :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modprobe tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le rajouter dans /etc/modprobe.preload&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo tun &amp;gt;&amp;gt; /etc/modprobe.preload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour le charger au prochain démarrage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sur le client ==&lt;br /&gt;
&lt;br /&gt;
Il faut simplement les droits sur /dev/tun, donc soit tourner en root, ou avoir la permission&lt;br /&gt;
d&#039;écrire sur /dev/tun, comme plus haut, puis faire ( sisay etant le serveur ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -w any:any sisay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez jeter une oeil sur les options -f et -N pour ne pas lancer de shell sur la machine distante. Et bien sur, les options habituels marchent encore ( clé, tunnel, master/slave ).&lt;br /&gt;
&lt;br /&gt;
Puis, en root, vous pourrez changer l&#039;ip de la nouvelle interface tun0 sur le serveur&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et faire pareil sur le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et finalement, vous pouvez maintenant tester le ping depuis le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ping 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le reste, c&#039;est de la configuration normale pour les interfaces. Vous pouvez rajouter des routes, un firewall, n&#039;importe quoi.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, il faut savoir que les connexions tcp par dessus tcp ( comme c&#039;est le cas avec ssh ) sont déconseillés, de par la nature de tcp ( http://docs.mandragor.org/files/Misc/GLFM/lm31/TCP_over_TCP_mauvaise_iD.html ).&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11660</id>
		<title>Tunnels ethernet avec OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11660"/>
		<updated>2006-02-12T12:38:46Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Depuis la version 4.3 de Openssh, l&#039;option pour faire des tunnels ip a été ajouté, mais la doc sur internet est plutot rare sur le sujet.&lt;br /&gt;
&lt;br /&gt;
Avant tout, il faut vérifier la version d&#039;openssh sur le serveur et le client.&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
~ $ rpm -q openssh&lt;br /&gt;
openssh-4.3p1-3mdk&lt;br /&gt;
~ $ ssh sisay rpm -q openssh&lt;br /&gt;
openssh-4.3p1-0.1.20060mdk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple ici a été fait à partir de 2 mandriva, mais ça doit marcher sans modification&lt;br /&gt;
sur un autre linux ou *bsd.&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il faut les droits root sur les 2 machines. En effet, il y a quelques opérations à faire, aussi bien au niveau de la configuration que du réseau.&lt;br /&gt;
&lt;br /&gt;
== Sur le serveur ==&lt;br /&gt;
&lt;br /&gt;
La premiére chose à faire est de dire à openssh d&#039;authoriser les tunnels, en rajoutant cette directive :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PermitTunnel yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi retirer la séparation des priviléges, ou jouer sur les permissions de /dev/tun  .&lt;br /&gt;
J&#039;ai pris la facilité pour le moment, j&#039;ai rajouté&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UsePrivilegeSeparation no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre solution est de donner les permissions en lecture écriture à un groupe particulier&lt;br /&gt;
sur /dev/tun, ce qui est bien plus simple et sur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod :mongroupe /dev/tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et bien sur, être dans le groupe en question.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite charger le module tun :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modprobe tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le rajouter dans /etc/modprobe.preload&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo tun &amp;gt;&amp;gt; /etc/modprobe.preload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour le charger au prochain démarrage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sur le client ==&lt;br /&gt;
&lt;br /&gt;
il faut simplement les droits sur /dev/tun, donc soit tourner en root, ou avoir la permission&lt;br /&gt;
d&#039;écrire sur /dev/tun, comme plus haut, puis faire ( sisay etant le serveur ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -w any:any sisay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez jeter une oeil sur les options -f et -N pour ne pas lancer de shell sur la machine distante. Et bien sur, les options habituels marchent encore ( clé, tunnel, master/slave ).&lt;br /&gt;
&lt;br /&gt;
Puis, en root, vous pourrez changer l&#039;ip de la nouvelle interface tun0 sur le serveur&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et faire pareil sur le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et finalement, vous pouvez maintenant tester le ping depuis le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ping 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le reste, c&#039;est de la configuration normal pour les interfaces. Vous pouvez rajouter des routes, un firewall, n&#039;importe quoi.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, il faut savoir que les connexions tcp par dessus tcp ( comme c&#039;est le cas avec ssh ) sont déconseillés, de par la nature de tcp ( http://docs.mandragor.org/files/Misc/GLFM/lm31/TCP_over_TCP_mauvaise_iD.html ).&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11659</id>
		<title>Tunnels ethernet avec OpenSSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tunnels_ethernet_avec_OpenSSH&amp;diff=11659"/>
		<updated>2006-02-12T12:36:16Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Depuis la version 4.3 de Openssh, l&#039;option pour faire des tunnels ip a été ajouté, mais la doc sur internet est plutot rare sur le sujet.&lt;br /&gt;
&lt;br /&gt;
Avant tout, il faut vérifier la version d&#039;openssh sur le serveur et le client.&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
~ $ rpm -q openssh&lt;br /&gt;
openssh-4.3p1-3mdk&lt;br /&gt;
~ $ ssh sisay rpm -q openssh&lt;br /&gt;
openssh-4.3p1-0.1.20060mdk&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple ici a été fait à partir de 2 mandriva, mais ça doit marcher sans modification&lt;br /&gt;
sur un autre linux ou *bsd.&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, il fau tles droits root sur les 2 machines. En effet, il y a quelques opérations à faire, aussi bien au niveau de la configuration que du réseau.&lt;br /&gt;
&lt;br /&gt;
== Sur le serveur ==&lt;br /&gt;
&lt;br /&gt;
La premiére chose à faire est de dire à openssh d&#039;authoriser les tunnels, en rajoutant cette directive :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PermitTunnel yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans /etc/ssh/sshd_config.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi retirer la séparation des priviléges, ou jouer sur les permissions sur /dev/tun  .&lt;br /&gt;
J&#039;ai pris la facilité pour le moment, j&#039;ai rajouté&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;UsePrivilegeSeparation no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre solution est de donner les permissions en lecture écriture à un groupe particulier&lt;br /&gt;
sur /dev/tun, ce qui est bien plus simple et sur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod :mongroupe /dev/tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et bien sur, être dans le groupe en question.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite charger le module tun :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modprobe tun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le rajouter dans /etc/modprobe.preload&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;echo tun &amp;gt;&amp;gt; /etc/modprobe.preload&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pour le charger au démarrage aprés.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sur le client ==&lt;br /&gt;
&lt;br /&gt;
il faut simplement les droits sur /dev/tun, donc soit tourner en root, ou avoir la permission&lt;br /&gt;
d&#039;écrire sur /dev/tun, comme plus haut, puis faire ( sisay etant le serveur ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -w any:any sisay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez jeter une oeil sur les options -f et -N pour ne pas lancer de shell sur la machine distante. Et bien sur, les options habituels marchent encore ( clé, tunnel, master/slave ).&lt;br /&gt;
&lt;br /&gt;
Puis, en root, vous pourrez changer l&#039;ip de la nouvelle interface tun0 sur le serveur&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et faire pareil sur le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig tun0 10.0.0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et finalement, vous pouvez maintenant tester le ping depuis le client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ping 10.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le reste, c&#039;est de la configuration normal pour les interfaces. Vous pouvez rajouter des routes, un firewall, n&#039;importe quoi.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, il faut savoir que les connexions tcp par dessus tcp ( comme c&#039;est le cas avec ssh ) sont déconseillés, de par la nature de tcp ( http://docs.mandragor.org/files/Misc/GLFM/lm31/TCP_over_TCP_mauvaise_iD.html ).&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Proposition_d%27article&amp;diff=11658</id>
		<title>Proposition d&#039;article</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Proposition_d%27article&amp;diff=11658"/>
		<updated>2006-02-12T12:26:09Z</updated>

		<summary type="html">&lt;p&gt;Misc : /* Rubrique : Le réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Proposition d&#039;article =&lt;br /&gt;
Indiquer ici les articles qui manquent et que vous vous proposez de créer, puis créez les ! Si vous avez besoin de mettre des images dans votre article, n&#039;hésitez pas à demander à Léa les [[Lea_Linux:Groupe_Editeur|droit d&#039;éditeurs]]. &#039;&#039;&#039;Ne mettez pas&#039;&#039;&#039; des articles que vous désireriez voir écrits par quelqu&#039;un d&#039;autre que vous ! &lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; pour proposer un nouveau truc ou une nouvelle astuce, utiliser [[Trucs:Proposition_d&#039;un_truc|cette page]].&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il suffit d&#039;insérer dans la section qui correspond à votre article, quelque chose du genre : &lt;br /&gt;
* exemple : &amp;lt;nowiki&amp;gt;[[Nom de l&#039;article]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
qui donnera : &lt;br /&gt;
* exemple : [[Nom de l&#039;article]] (SVP ne créez pas l&#039;article &#039;&#039;&#039;Nom de l&#039;article&#039;&#039;&#039;).&lt;br /&gt;
== Rubrique : Installation ==&lt;br /&gt;
* [[UBUNTU et eagle-usb]] [[Utilisateur: mujma|Marc UJMA]]&lt;br /&gt;
* [[Guide d&#039;installation Linux SuSE 10.0 pas à pas]] leibowitz 29 janvier 2006&lt;br /&gt;
* [[Guide d&#039;installation et de configuration de Fluxbox,Conky, Idesk, Fbpager]] pingadaroça 31/01/06&lt;br /&gt;
&lt;br /&gt;
== Rubrique : X Window ==&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Matériel ==&lt;br /&gt;
* [[Utilisation des jukebox creative sous linux]]  [[Utilisateur:Bimon]] 30 octobre 2005&lt;br /&gt;
=== Publiées ===&lt;br /&gt;
* [[Utiliser la carte wifi Intel PRO Wireless 2200BG]] [[Utilisateur:vvanholl]] 18 janvier 2005&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Logiciels ==&lt;br /&gt;
La journée du libre édition 2006 à Saint-Dié-Des-Vosges est préparé. Elle a été&lt;br /&gt;
pour la première fois organisé à Saint-Dié-Des-Vosges le 19 Mars 2005 sans&lt;br /&gt;
aucun but scolaire.&lt;br /&gt;
&lt;br /&gt;
Cette année, elle est organisée, par un organisateur de l&#039;an passée et l&#039;a&lt;br /&gt;
intégrée, avec un des amis de promotion, dans un de leurs projets étudiants. Elle aura lieu le 4 février 2006 à partir de 10h jusqu&#039;a 18h.&lt;br /&gt;
&lt;br /&gt;
Information complémentaire sur : http://lajourneedulibre.free.fr&lt;br /&gt;
&lt;br /&gt;
Gauthier FRANCOIS : gnublin@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Le réseau ==&lt;br /&gt;
* [[Debian GNU/Linux et IPv6]]. [[Utilisateur: Thomas Carlu|Thomas Carlu]] 25 oct 2005 à 1:15 (CEST)&lt;br /&gt;
&lt;br /&gt;
* [[Sécurité des réseaux WIFI]]. --[[Utilisateur:Maston28|Maston28]] 13 nov 2005 à 16:30 (CET)&lt;br /&gt;
&lt;br /&gt;
* [[Tunnels ethernet avec openssh 4.3]]. --[[Utilisateur:Misc|Misc]] 12 fév 2006 à 13:30 (CET)&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Administrer ==&lt;br /&gt;
* [[Arrêter Windows et son routeur Linux]], [[Utilisateur:Vivecom|Vivecom]] 26 nov 2005 à 16:40 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Publiés ===&lt;br /&gt;
* [[Gestion des ACL]] (ou [[ACL]] pour le titre). [[Utilisateur:Vincent Ramos|Vincent Ramos]] 24 oct 2005 à 23:00 (CEST)&lt;br /&gt;
::Fait. Bien qu&#039;améliorable, l&#039;article me semble complet. [[Utilisateur:Vincent Ramos|Vincent Ramos]] 26 oct 2005 à 00:22 (CEST) ;&lt;br /&gt;
* [[Attributs étendus]] (&#039;&#039;chattr&#039;&#039; sur ext2 et ext3, outils efs2progs) [[Utilisateur:Vincent Ramos|Vincent Ramos]] 26 oct 2005 à 17:40 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Noyau et modules ==&lt;br /&gt;
&lt;br /&gt;
* [[RT2500]] : compilation et installation du modules RT2500 Pour les cartes wifi , essai avec la carte &#039;&#039;&#039;PCI PC54G2&#039;&#039;&#039; , Auteur: Laplaine Freddy, Alias mr_pupu[corbeille]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Développer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ocaml]] : une présentation du langage ocaml&lt;br /&gt;
*[[FreePascal]] : Un langage familier pour nombre de développeurs [[Utilisateur: mujma|Marc UJMA]]&lt;br /&gt;
*[[Trucs:Obtenir le code HTML d&#039;un glyphe]] [[Utilisateur:Nicola|Nicola]] 2 jan 2006 à 19:10 (CET)&lt;br /&gt;
&lt;br /&gt;
== Rubrique : Léavancé ==&lt;br /&gt;
&lt;br /&gt;
* [[Virtualisation avec Xen]]&lt;br /&gt;
* [[OpenMosix]] axé Slackware mais applicable à d&#039;autres distro&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion_Lea_Linux:AG_2005&amp;diff=10812</id>
		<title>Discussion Lea Linux:AG 2005</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion_Lea_Linux:AG_2005&amp;diff=10812"/>
		<updated>2005-11-20T13:15:11Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Utilisateur:ST|ST]] (AG + Confs + Soirée) - 1 personne&lt;br /&gt;
* [[Utilisateur:Maston28|Maston28]] (AG + Confs + Soirée) - 1 personne&lt;br /&gt;
* [[Utilisateur:Fred|Fred]] (AG + Confs + Soirée ... si hébergement) - 1 personne&lt;br /&gt;
* [[Utilisateur:Ennael|Anne]]  (AG + Confs + Soirée) - 2 personnes&lt;br /&gt;
* [[Utilisateur:Phlogistique|Noé Rubinstein]] (Confs) - 1 personne - pas sur&lt;br /&gt;
* [[Utilisateur:Zragg|Zragg]]  (AG + Confs + Soirée) - 1 personnes&lt;br /&gt;
* [[Utilisateur:Philheap|Philheap]]  (AG + Confs + Soirée) - 2 personnes&lt;br /&gt;
* [[Utilisateur:LeaJice|Jice]] (AG + Confs + Soirée) - 1 personne&lt;br /&gt;
* [[Utilisateur:Pterjan|CMoi]]  (Confs + Soirée) - 1 personne&lt;br /&gt;
* [[Utilisateur: Papyrus|youss]]  (Confs + Soirée) - 1 personne&lt;br /&gt;
* [[Utilisateur: YannTech|Yann Verry]]  (Soirée) - 2 personnes&lt;br /&gt;
* [[Utilisateur: Misc|Michael Scherer]]  (Confs + Soirée) - 1 personne&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Trucs:O%C3%B9_s%27installent_les_RPMs_%3F&amp;diff=10203</id>
		<title>Trucs:Où s&#039;installent les RPMs ?</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Trucs:O%C3%B9_s%27installent_les_RPMs_%3F&amp;diff=10203"/>
		<updated>2005-10-28T15:30:36Z</updated>

		<summary type="html">&lt;p&gt;Misc : ajout de switchs utiles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Jean-Thomas MUYL (maston28)&amp;lt;jean-thomas.muyl@lea-linux.org&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La question est récurrente, où vont donc se nicher les applications installées via RPM ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;[maston28@maston28 maston28]$ rpm -qpl /var/cache/urpmi/rpms/apache-1.3.27-8mdk.i586.rpm&amp;lt;br /&amp;gt; /usr/sbin/httpd&amp;lt;br /&amp;gt;/usr/share/doc/apache-1.3.27&amp;lt;br /&amp;gt; /usr/share/doc/apache-1.3.27/README.ADVX&amp;lt;br /&amp;gt; /usr/share/man/man8/httpd.8.bz2&amp;lt;br /&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Comme ici, l&#039;exécutable est souvent installé dans &amp;lt;code&amp;gt;/usr/bin&amp;lt;/code&amp;gt; ou dans &amp;lt;code&amp;gt;/usr/sbin&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si le rpm est déja installé sur le systéme, il faut retirer le -p &lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;~ $ rpm -ql darkice&amp;lt;br /&amp;gt; /etc/darkice.cfg&amp;lt;br /&amp;gt; /usr/bin/darkice&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14/AUTHORS&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14/COPYING&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14/ChangeLog&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14/README&amp;lt;br /&amp;gt; /usr/share/doc/darkice-0.14/TODO&amp;lt;br /&amp;gt; /usr/share/man/man1/darkice.1.bz2&amp;lt;br /&amp;gt; /usr/share/man/man5/darkice.cfg.5.bz2&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et si vous ne voulez que la configuration, il faut utiliser l&#039;option --configfiles&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;~ $ rpm -ql --configfiles darkice&amp;lt;br /&amp;gt;&lt;br /&gt;
/etc/darkice.cfg&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Trucs_Installation]]&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=SSH&amp;diff=10202</id>
		<title>SSH</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=SSH&amp;diff=10202"/>
		<updated>2005-10-28T15:16:34Z</updated>

		<summary type="html">&lt;p&gt;Misc : implémentation openssh alternative&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Sécurité]]&lt;br /&gt;
= SSh, la sécurisation par le chiffrement =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;SSh, la sécurisation par le chiffrement&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:jpgaulier@un peu indigeance linux-france.org Jean-philippe Gaulier]&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Licence du document :&#039;&#039;&#039; FDL&amp;lt;br /&amp;gt;http://www.gnu.org&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Préambule ==&lt;br /&gt;
&lt;br /&gt;
Il y a aujourd&#039;hui deux possibilités de travail, en local (local work) ou à distance (remote work). Ce dernier est permis par l&#039;utilisation du réseau, qu&#039;il soit local (LAN) ou réellement éloigné, comme par Internet (WAN). De nombreux outils ont été fournis pour utiliser la capacité du réseau. Échanger, copier, utiliser des shells à distance. Les noms de ces outils sont respectivement FTP, rcp, telnet, etc... Bien que ces outils, utilisés pendant des années et même encore aujourd&#039;hui dans certaines entreprises, soient très pratiques, ils comportent une faiblesse importante. Leurs transactions sont transmises en clair via le réseau. De ce fait, l&#039;informatique devenant ouvert à un grand nombre, n&#039;importe quelle personne mal intentionnée peut être en mesure d&#039;observer ce que vous faîtes, allant même jusqu&#039;à subtiliser vos données personnelles et mots de passe.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Le problème par la pratique&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir appuyer cette notion de non-confidentialité, nous allons regarder ce qui se passe lors de l&#039;établissement d&#039;une connexion d&#039;une session telnet. Le logiciel utilisé pour tracer les connexions est &#039;&#039;&#039;ethereal&#039;&#039;&#039;.&amp;lt;br /&amp;gt; Établissons la connexion sur un serveur &#039;&#039;telnetd&#039;&#039; fonctionnant sous GNU/Linux. Après quelques échanges de paquets, nous obtenons la bannière d&#039;accueil :&lt;br /&gt;
&lt;br /&gt;
[[Image:ssh-telnet1.png]]&lt;br /&gt;
&lt;br /&gt;
on constate que la connexion s&#039;effectue sur le port 23 (en 22 et 23 dans la trame).&amp;lt;br /&amp;gt; Les données quant à elles commencent clairement en 42, avec la bannière d&#039;accueil :&amp;lt;br /&amp;gt; Debian GNU/Linux testing/unstable centaur&lt;br /&gt;
&lt;br /&gt;
Les données ont été envoyées en clair et la bannière permet de définir le système d&#039;exploitation sur lequel nous sommes accueillis. Continuons notre étude, la demande d&#039;identification est proposée par le système distant :&lt;br /&gt;
&lt;br /&gt;
[[Image:ssh-telnet2.png]]&lt;br /&gt;
&lt;br /&gt;
Il faut maintenant se faire reconnaître auprès du système. Nous supprimerons tout echo local doublant l&#039;envoi de caractères, un pour le système distant et un pour voir ce que nous écrivons. Il en résulte une suite d&#039;échange avec notre interlocuteur :&lt;br /&gt;
&lt;br /&gt;
[[Image:ssh-telnet3.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet4.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet5.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous envoyons notre identifiant à la machine distante, les trames ne sont pas utilisées à l&#039;économie puisque chaque paquet contient seulement un et un seul caractère comme données (data). On retrouve ici notre identifiant, jop, envoyé pour nous loguer. Ce qui est inquiétant, c&#039;est que la même chose va également se produire pour notre mot de passe censé être privé et inviolable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;[[Image:ssh-telnet6.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet7.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet8.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet9.png]]&amp;lt;br /&amp;gt;[[Image:ssh-telnet10.png]]&amp;lt;br /&amp;gt; Le mot de passe est ici clairement exprimé. On peut lire bobo, la dernière trame transmet un retour chariot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;u&amp;gt;Nota&amp;lt;/u&amp;gt; : Notre étude ne se portant pas sur le service telnet, nous ne rentrerons pas sur le détail des transmissions et considérons que ces quelques remarques suffisent pour notre étude.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
De la même manière, tout comme on vient de vous dérober votre mot de passe, on peut récupérer vos conversations, vos fichiers. La confidentialité est rompue, la porte est ouverte à l&#039;insertion non-chalente de personnes non autorisées dans le système...&lt;br /&gt;
&lt;br /&gt;
== La solution proposée ==&lt;br /&gt;
&lt;br /&gt;
Afin de ne plus être ouvert au monde entier, nous avons la possibilité de chiffrer nos échanges. Pour ce faire, nous allons installer un client ssh, &#039;&#039;&#039;Openssh&#039;&#039;&#039;. Client libre et gratuit. Par la même occasion, vous pourrez installer le serveur, afin que votre ordinateur puisse aussi être contacté par d&#039;autres utilisateurs, vous permettant de délivrer des services sécurisés.&lt;br /&gt;
&lt;br /&gt;
Nous allons continuer notre étude dans le cadre de ce logiciel, libre à vous d&#039;adapter à vos préférences par la suite, sachant que le principal est ici transcrit.&lt;br /&gt;
&lt;br /&gt;
Afin de mieux comprendre le comportement et l&#039;utilité de chaque programme, décomposons les différents paquets ainsi que l&#039;usage fait des exécutables.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Mémo&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;sshd&#039;&#039;&#039; : Serveur ssh&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;scp&#039;&#039;&#039; : Copie distante sécurisée&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ssh-keygen&#039;&#039;&#039; : génération de clefs d&#039;authentification, management et conversion&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;sftp&#039;&#039;&#039; : Transfert sécurisé de fichiers&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;slogin/ssh&#039;&#039;&#039; : Client ssh&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ssh-add &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;: Ajoute les identités DSA ou RSA à l&#039;agent d&#039;authentification&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ssh-agent&#039;&#039;&#039; : Agent d&#039;authentification&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ssh-keyscan&#039;&#039;&#039; : Recueille les clefs publiques ssh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nous traiterons chacune de ces applications afin de comprendre dans quels conetxte elles peuvent être utilisés.&lt;br /&gt;
&lt;br /&gt;
== Connexion à un hôte ==&lt;br /&gt;
&lt;br /&gt;
Le client ssh opère selon un ordre défini :&lt;br /&gt;
&lt;br /&gt;
# les paramètres en ligne de commande&amp;lt;br /&amp;gt;&lt;br /&gt;
# les informations spécifiques à l&#039;utilisateur du fichier &#039;&#039;&#039;~/.ssh/config&#039;&#039;&#039;&lt;br /&gt;
# la configuration globale du système dans le fichier &#039;&#039;&#039;/usr/local/etc/ssh_config&#039;&#039;&#039; ou &#039;&#039;&#039;/etc/ssh/ssh_config&#039;&#039;&#039; (cela dépendant de la distribution que vous utilisez)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Le fichier ssh_config&amp;lt;/u&amp;gt;&#039;&#039;&#039; :&amp;lt;br /&amp;gt; Ce fichier représente la configuration du client ssh. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt; #$OpenBSD: ssh_config,v 1.15 2002/06/20 20:03:34 stevesk Exp $&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Ceci est le fichier de configuration par défaut des clients ssh du système. Voir&amp;lt;br /&amp;gt; # ssh_config(5) pour de plus amples informations. Ce fichier fournit les paramètres par défaut&amp;lt;br /&amp;gt; # pour les utilisateurs, ces valeurs peuvent être changées pour chaque utilisateur dans leur propre &amp;lt;br /&amp;gt; # fichier de configuration ou sur la ligne de commande.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Les données de configuration sont analysées comme ci-dessous :&amp;lt;br /&amp;gt; # 1. Les options de la ligne de commande&amp;lt;br /&amp;gt; # 2. Le fichier spécifique de l&#039;utilisateur&amp;lt;br /&amp;gt; # 3. Le fichier par défaut&amp;lt;br /&amp;gt; # N&#039;importe quelle valeur de configuration est uniquement changée la première fois qu&#039;elle est mise.&amp;lt;br /&amp;gt; # Ainsi, les définitions spécifique d&#039;hôte doivent être au début du fichier de configuration&amp;lt;br /&amp;gt; # et les options par défaut à la fin.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Options par défaut&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Pour que les options soient prises en compte, il vous faut enlever le dièse précédent la ligne.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Host permet de spécifier que la configuration qui suit concerne un ou plusieurs hôtes précis. &amp;lt;br /&amp;gt; # Il est possible d&#039;employer des caractères joker tels que * ou ?.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# Host *&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt; # Specifie si la connexion à l&#039;agent d&#039;authentification doit être renvoyé vers la machine distante&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# ForwardAgent no&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Autorise ou non la redirection du serveur graphique&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# ForwardX11 no&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Autorise la méthode d&#039;authentification par Rhosts. Peu sûr.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# RhostsAuthentication no&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Autorise la méthode d&#039;authentification par Rhosts sur du RSA. Ne fonctionne que dans la version &amp;lt;br /&amp;gt; # première du protocole et nécessite un setuid root. De préférence à ne pas utiliser.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# RhostsRSAAuthentication no&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt; # Méthode d&#039;authentification par RSA, ne fonctionne qu&#039;avec la première version du protocole. Il &amp;lt;br /&amp;gt; # faut que le fichier identity existe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# RSAAuthentication yes&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Autorise la connexion par mot de passe, comme on pouvait la trouver dans rlogin ou telnet.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# PasswordAuthentication yes&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; # Si l&#039;indicateur est positionné à yes, la demande de passephrase ou de mot de passe sera annulée.&amp;lt;br /&amp;gt; #Cette option est utilisée dans le cas où seul des scripts interviennent et où il n&#039;y a pas d&#039;utilisateur &amp;lt;br /&amp;gt; # présent pour insérer le mot de passe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# BatchMode no&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Vérification de l&#039;adresse IP de l&#039;hôte qui se connecte dans le fichier known_hosts&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# CheckHostIP yes&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Cette option permet de gérer l&#039;ajout et le changement des clefs hôtes dans known_hosts.&amp;lt;br /&amp;gt; #Si la clef a changé, la connexion vous sera refusée, vous indiquant le motif.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# StrictHostKeyChecking ask&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Localisation des fichiers identity, id_rsa, id_dsa&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# IdentityFile ~/.ssh/identity&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # IdentityFile ~/.ssh/id_rsa&amp;lt;br /&amp;gt; # IdentityFile ~/.ssh/id_dsa&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Port de connexion à l&#039;hôte distant.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# Port 22&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Version des protocoles supportés et désirés. Ici, on préfèrera employer la deuxième version si &amp;lt;br /&amp;gt; #elle est disponible.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# Protocol 2,1&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Protocole de chiffrement (ssh v1) et protocoles disponibles par ordre de préfèrerance (ssh v2).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# Cipher 3des&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; #Caractère d&#039;échappement.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;# EscapeChar ~&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe différentes options pour se connecter à un hôte via ssh. Libre à vous de les utiliser ou non.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;-l login&#039;&#039;&#039; : Identifiant de l&#039;utilisateur. &amp;lt;br /&amp;gt;&#039;&#039;&#039;-v -vv -vvv&#039;&#039;&#039; : Mode verbeux, permet d&#039;obtenir les messages de debugage plus ou moins complets (plus il y a de v, plus vous obtenez d&#039;information, le nombre maximum étant 3).&amp;lt;br /&amp;gt;&#039;&#039;&#039;-1 ou -2&#039;&#039;&#039; : version de ssh employé. Il est déconseillé d&#039;employer la version 1 du protocole. Bien qu&#039;aucun exploit public ne circule, les faiblesses cryptographique du protocole ont été prouvée. De plus, la version 2 est reconnue par l&#039;IETF&amp;lt;br /&amp;gt;&#039;&#039;&#039;-p port&#039;&#039;&#039; : Numéro du port distant&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Exemple d&#039;utilisation&amp;lt;/u&amp;gt;&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;ssh -vv -l utilisateur -p port -(1|2) hôte&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt; ou&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;ssh utilisateur@hôte&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt; L&#039;hôte distant doit avoir un serveur ssh, nommé &#039;&#039;&#039;sshd&#039;&#039;&#039;, qui permet la connexion.&lt;br /&gt;
&lt;br /&gt;
== Création de paire de clefs ==&lt;br /&gt;
&lt;br /&gt;
Ssh s&#039;appuie sur des algorithmes à paire de clefs, ce qui signifie que vous disposez d&#039;une clef publique, disponible pour tout un chacun et une clef privée dont vous gardez jalousement l&#039;entrée. Ce système va nous permettre de nous identifier auprès des hôtes que nous désirons contacter. Il nous faut au préalable créer le trousseau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ ssh-keygen -t dsa&amp;lt;br /&amp;gt; Generating public/private dsa key pair.&amp;lt;br /&amp;gt; Enter file in which to save the key (/home/jop/.ssh/id_dsa): &amp;lt;br /&amp;gt; Enter passphrase (empty for no passphrase): &amp;lt;br /&amp;gt; Enter same passphrase again: &amp;lt;br /&amp;gt; Your identification has been saved in /home/jop/.ssh/id_dsa.&amp;lt;br /&amp;gt; Your public key has been saved in /home/jop/.ssh/id_dsa.pub.&amp;lt;br /&amp;gt; The key fingerprint is:&amp;lt;br /&amp;gt; 4a:0b:3b:eb:ed:05:47:56:cb:23:28:d3:d7:81:69:08&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ ssh-keygen -t rsa&amp;lt;br /&amp;gt; Generating public/private rsa key pair.&amp;lt;br /&amp;gt; Enter file in which to save the key (/home/jop/.ssh/id_rsa): &amp;lt;br /&amp;gt; Enter passphrase (empty for no passphrase): &amp;lt;br /&amp;gt; Enter same passphrase again: &amp;lt;br /&amp;gt; Your identification has been saved in /home/jop/.ssh/id_rsa.&amp;lt;br /&amp;gt; Your public key has been saved in /home/jop/.ssh/id_rsa.pub.&amp;lt;br /&amp;gt; The key fingerprint is:&amp;lt;br /&amp;gt; 52:65:28:9a:8b:64:cb:b7:6e:70:75:10:d9:0a:01:d9&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux algorithmes (dsa, rsa), le système nous demande dans quel fichier nous désirons sauvegarder la clef. Les fichiers par défaut semblent une bonne solution. Par la suite, une passphrase nous est demandée. Celle-ci est un « mot de passe amélioré », car non limité à un mot ou une petite suite de caractères. Il faut cependant prendre des précautions, car en cas de perte de la passphrase, vous ne pourriez plus vous authentifier en tant que propriétaire authentique.&lt;br /&gt;
&lt;br /&gt;
Nous allons maintenant voir &#039;&#039;&#039;trois méthodes de connexion via ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Connexion par mot de passe ===&lt;br /&gt;
&lt;br /&gt;
La première des méthodes, la plus connue et la plus usitée, reposant sur le modèle employé par rlogin ou rsh; l&#039;hôte distant demande un mot de passe pour s&#039;assurer de votre identité.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ ssh -p 222 -l root 192.168.0.1&amp;lt;br /&amp;gt; The authenticity of host &#039;192.168.0.1 (192.168.0.1)&#039; can&#039;t be established.&amp;lt;br /&amp;gt; RSA key fingerprint is 74:4c:57:fd:c2:2c:0d:c3:3f:09:01:7d:e8:b7:21:24.&amp;lt;br /&amp;gt; Are you sure you want to continue connecting (yes/no)? yes&amp;lt;br /&amp;gt; Warning: Permanently added &#039;192.168.0.1&#039; (RSA) to the list of known hosts.&amp;lt;br /&amp;gt; root@192.168.0.1&#039;s password: &amp;lt;br /&amp;gt; Last login: Thu Dec 26 03:37:03 2002 from centaur&amp;lt;br /&amp;gt; $ &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je me connecte au port 222 sur une machine de mon réseau local, demandant de m&#039;identifier comme root. La machine n&#039;est pas connue dans mon fichier &#039;&#039;&#039;known_hosts&#039;&#039;&#039;. Ce fichier contient les clés hôte DSA des serveurs SSH auxquels l&#039;utilisateur s&#039;est connecté. Cette méthode de connexion est intéressante, mais minimise les capacités que vous avez avec ssh. Pour des connexions telles que vers un serveur CVS, un tunnel pour votre courrier, il serait fastidieux de s&#039;authentifier à chaque fois par ce moyen.&lt;br /&gt;
&lt;br /&gt;
=== Connexion par paires de clef ===&lt;br /&gt;
&lt;br /&gt;
Puisque nous utilisons des algorithmes à paire de clefs (rsa, dsa), c&#039;est à dire composée d&#039;une clef secrète et d&#039;une clef publique, il faut bien que cela nous serve à quelque chose. Nous allons donc automatiser la connexion. Pour ce faire, votre hôte contient un fichier &#039;&#039;&#039;authorized_keys&#039;&#039;&#039; dans le répertoire &#039;&#039;&#039;.ssh &#039;&#039;&#039;où vous vous connectez (en général un home directory). Il suffit de copier l&#039;identifiant ou les identifiants de vos clefs publiques pour que vous soyez reconnu du serveur. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Attention&#039;&#039;&#039;, il faut que &#039;&#039;PubkeyAuthentication &#039;&#039;soit positionné à &#039;&#039;yes&#039;&#039; dans vos fichiers de configuration.&amp;lt;br /&amp;gt; Pour insérer ma clef, j&#039;ai plusieurs méthodes à ma disposition. Je peux employer des moyens conventionnels tels que le ftp ou le mail (à l&#039;administrateur par exemple), ou je peux le faire au moyen d&#039;outil sécurisé. Puisque c&#039;est notre sujet, profitons en pour donner un exemple de &#039;&#039;scp&#039;&#039; sur lequel nous reviendrons ultérieurement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$scp .ssh/id_dsa.pub jop@scipc-jpg:/home/jop/.ssh/dsa2connex&amp;lt;br /&amp;gt; Warning: Permanently added &#039;scipc-jpg&#039; (RSA) to the list of known hosts.&amp;lt;br /&amp;gt; jop@scipc-jpg&#039;s password: &amp;lt;br /&amp;gt; id_dsa.pub 100% |*****************************| 613 00:00 &amp;lt;br /&amp;gt; Mon fichier est maintenant copié sur l&#039;hôte distant, il me reste à inclure la clef dant le fichier authorized_keys. Une simple commande suffira :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; $ cat dsa2connex &amp;gt;&amp;gt;authorized_keys &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je peux maintenant me connecter, l&#039;hôte distant me reconnaît. Je peux me connecter sans mot de passe et avec une passphrase si j&#039;en ai désiré une.&lt;br /&gt;
&lt;br /&gt;
=== L&#039;agent d&#039;authentification ===&lt;br /&gt;
&lt;br /&gt;
Nous savons maintenant nous connecter à un hôte distant connaîssant notre identité par l&#039;intermédiaire de notre clef publique. Nous avons vu précédement que nous étions libre de mettre ou non une passphrase afin de chiffrer notre identification et compliquer l&#039;usurpation qui pourrait en être faite [mode parano on]. S&#039;il paraît fastidieux d&#039;insérer un mot de passe à chaque connexion, cela l&#039;est d&#039;autant plus lorsque l&#039;on doit rentrer une phrase entière. L&#039;agent ssh est là pour nous simplifier la vie. Lancé au début de la session (terminal ou graphique), il retient la passphrase le temps où &#039;&#039;&#039;ssh-agent &#039;&#039;&#039;sera actif (le temps d&#039;une session).&lt;br /&gt;
&lt;br /&gt;
Pour une session en &amp;lt;u&amp;gt;mode terminal&amp;lt;/u&amp;gt; :&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ssh-agent screen&amp;lt;br /&amp;gt; $ssh-add&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après avoir lancé l&#039;agent ssh, on ajoute la passphrase à l&#039;agent par l&#039;intermédiaire de &#039;&#039;&#039;ssh-add&#039;&#039;&#039; ; tous les hôtes distants disposant de votre clef publique ne vous demanderons alors plus la passphrase puisque gérée par l&#039;agent ssh.&lt;br /&gt;
&lt;br /&gt;
De même, en &amp;lt;u&amp;gt;mode graphique&amp;lt;/u&amp;gt; :&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ssh-agent startx&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Il vous suffit ensuite d&#039;ouvrir un terminal et de taper&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ssh-add&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt; L&#039;agent sera actif pour toutes les applications utilisées en mode graphique.&lt;br /&gt;
&lt;br /&gt;
Une dernière méthode consiste à &#039;&#039;&#039;lancer l&#039;agent-ssh&#039;&#039;&#039; qui fournit un certains nombre de variables à exporter, puis demander l&#039;action de ssh-add :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ssh-agent&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; On récupère les variables fournies et on les exporte :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$SSH_AUTH_SOCK=/tmp/ssh-XXy0hiXW/agent.2019; export SSH_AUTH_SOCK;&amp;lt;br /&amp;gt; $SSH_AGENT_PID=2020; export SSH_AGENT_PID;&amp;lt;br /&amp;gt; $echo Agent pid 2020;&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; On ajoute :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ssh-add&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Pour tuer l&#039;agent ssh, il suffit de faire :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;tt&amp;gt;$ ssh-agent -k&amp;lt;br /&amp;gt; unset SSH_AUTH_SOCK;&amp;lt;br /&amp;gt; unset SSH_AGENT_PID;&amp;lt;br /&amp;gt; echo Agent pid 2020 killed;&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt; Invalidité des clefs d&#039;un hôte connu&lt;br /&gt;
&lt;br /&gt;
Comme nous l&#039;avons vu précédement, lors de votre connexion, il vous est possible d&#039;enregistrer l&#039;emprunt (fingerprint) fournit par le serveur distant. Dans le cas où celle-ci serait modifiée, vous seriez immédiatement prévenu. Cela peut découler de quatre choses :&lt;br /&gt;
&lt;br /&gt;
* Vous vous êtes fait pirater et l&#039;on a modifié les clefs présentes dans votre known_hosts.&lt;br /&gt;
* Le serveur distant c&#039;est fait pirater et la valeur de ses clefs a changé.&lt;br /&gt;
* La troisième peut correspondre à une attaque en bon et due forme d&#039;un man-in-the-middle.&lt;br /&gt;
* La dernière et néanmoins plus plausible des solution nécessite que l&#039;administrateur du serveur distant ait changé les clefs.&lt;br /&gt;
&lt;br /&gt;
La seule solution fiable demande de contacter l&#039;administrateur en question et lui demander ce qu&#039;il en est. Dans la pratique, peu de personnes usent de cette assurance de sécurité.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ ssh 127.0.0.1&amp;lt;br /&amp;gt; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&amp;lt;br /&amp;gt; @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @&amp;lt;br /&amp;gt; @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&amp;lt;br /&amp;gt; IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&amp;lt;br /&amp;gt; Someone could be eavesdropping on you right now (man-in-the-middle attack)!&amp;lt;br /&amp;gt; It is also possible that the RSA host key has just been changed.&amp;lt;br /&amp;gt; The fingerprint for the RSA key sent by the remote host is&amp;lt;br /&amp;gt; 8b:d5:26:a3:79:ed:25:0f:3b:6f:fe:30:1f:ed:89:ae.&amp;lt;br /&amp;gt; Please contact your system administrator.&amp;lt;br /&amp;gt; Add correct host key in /home/jop/.ssh/known_hosts to get rid of this message.&amp;lt;br /&amp;gt; Offending key in /home/jop/.ssh/known_hosts:13&amp;lt;br /&amp;gt; RSA host key for 127.0.0.1 has changed and you have requested strict checking.&amp;lt;br /&amp;gt; Host key verification failed.&amp;lt;br /&amp;gt; $&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== La copie sécurisée ==&lt;br /&gt;
&lt;br /&gt;
Comme nous avons pu le voir plus haut, ssh fournit un outil de copie sécurisée en standard, sous le nom de scp pour &#039;&#039;&#039;SecureCoPy&#039;&#039;&#039;. Il remplace son ancêtre rcp. Son usage est très simple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;scp hôte_d_ou_je_veux_copier:source_copie hôte_destination:cible&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;hôte correspond à la machine où vous vous trouvez, il n&#039;est pas nécessaire de l&#039;inscrire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$scp iptables scipc-jpg:/home/jop/download&amp;lt;br /&amp;gt; iptables 100% |*****************************| 27654 00:00 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également faire des copies récursives, comme nous le ferions avec n&#039;importe quel autre utilitaire de copie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$scp -r download scipc-jpg:/home/jpg/dl&amp;lt;br /&amp;gt; img2.png 100% |*****************************| 277 00:00 &amp;lt;br /&amp;gt; internals.pl 100% |*****************************| 188 00:00 &amp;lt;br /&amp;gt; labels.pl 100% |*****************************| 271 00:00 &amp;lt;br /&amp;gt; images.pl 100% |*****************************| 624 00:00 &amp;lt;br /&amp;gt; portscanning.css 100% |*****************************| 891 00:00 &amp;lt;br /&amp;gt; index.html 100% |*****************************| 56753 00:00 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le transfert de fichier sécurisé ==&lt;br /&gt;
&lt;br /&gt;
Tout comme on peut copier des fichiers à distance par l&#039;intermédiaire de scp, il est également possible de transférer des fichiers par l&#039;intermédiaire d&#039;un ftp sécurisé nommé &#039;&#039;&#039;SecureFTP&#039;&#039;&#039;.&amp;lt;br /&amp;gt; Bien que l&#039;outil soit encore trivial (pas de reprise de chargement en cas de coupure, pas d&#039;indication du temps restant, pas de telechargement ou de chargement réccursif, ...), il vous permettra de faire toutes les manipulations basiques disponibles sur un ftp non sécurisé.&lt;br /&gt;
&lt;br /&gt;
Commandes disponibles sur &#039;&#039;&#039;sftp&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| &amp;lt;tt&amp;gt;cd path &amp;lt;br /&amp;gt; lcd path&amp;lt;br /&amp;gt; chgrp grp path&amp;lt;br /&amp;gt; chmod mode path&amp;lt;br /&amp;gt; chown own path&amp;lt;br /&amp;gt; help&amp;lt;br /&amp;gt; get remote-path [local-path]&amp;lt;br /&amp;gt; lls [ls-options [path]]&amp;lt;br /&amp;gt; ln oldpath newpath&amp;lt;br /&amp;gt; lmkdir path&amp;lt;br /&amp;gt; lpwd&amp;lt;br /&amp;gt; ls [path]&amp;lt;br /&amp;gt; lumask umask&amp;lt;br /&amp;gt; mkdir path&amp;lt;br /&amp;gt; put local-path [remote-path]&amp;lt;br /&amp;gt; pwd&amp;lt;br /&amp;gt; exit&amp;lt;br /&amp;gt; quit&amp;lt;br /&amp;gt; rename oldpath newpath&amp;lt;br /&amp;gt; rmdir path&amp;lt;br /&amp;gt; rm path&amp;lt;br /&amp;gt; symlink oldpath newpath&amp;lt;br /&amp;gt; version&amp;lt;br /&amp;gt; !command&amp;lt;br /&amp;gt; !&amp;lt;br /&amp;gt; ?&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Change le répertoire distant vers &#039;path&#039;&amp;lt;br /&amp;gt; Change le répertoire local vers &#039;path&#039;&amp;lt;br /&amp;gt; Change le groupe de fichier &#039;path&#039; par &#039;grp&#039;&amp;lt;br /&amp;gt; Change les permissions du fichier &#039;path&#039; à &#039;mode&#039;&amp;lt;br /&amp;gt; Change le propriétaire du fichier &#039;path&#039; par &#039;own&#039;&amp;lt;br /&amp;gt; Affiche ce message d&#039;aide&amp;lt;br /&amp;gt; Télécharge le fichier&amp;lt;br /&amp;gt; Affiche le listing du répertoire local&amp;lt;br /&amp;gt; Crée un lien symbolique du fichier distant&amp;lt;br /&amp;gt; Crée un répertoire local&amp;lt;br /&amp;gt; Affiche le répertoire courant&amp;lt;br /&amp;gt; Affiche le listing du répertoire distant&amp;lt;br /&amp;gt; Positionne l&#039;umask local à &#039;umask&#039;&amp;lt;br /&amp;gt; Crée le répertoire distant&amp;lt;br /&amp;gt; Charge le fichier&amp;lt;br /&amp;gt; Affiche le répertoire courant distant&amp;lt;br /&amp;gt; Quitte sftp&amp;lt;br /&amp;gt; Quitte sftp&amp;lt;br /&amp;gt; Renomme le fichier distant&amp;lt;br /&amp;gt; Supprime le répertoire distant&amp;lt;br /&amp;gt; Supprime le fichier distant&amp;lt;br /&amp;gt; Crée un lien symbolique du fichier distant&amp;lt;br /&amp;gt; Affiche la version de sftp&amp;lt;br /&amp;gt; Exécute la &#039;commande&#039; dans un shell local&amp;lt;br /&amp;gt; Sort vers un shell local&amp;lt;br /&amp;gt; Affiche ce message d&#039;aide&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ sftp jop@scipc-jpg&amp;lt;br /&amp;gt; Connecting to scipc-jpg...&amp;lt;br /&amp;gt; $sftp&amp;gt; lpwd&amp;lt;br /&amp;gt; Local working directory: /home/jop&amp;lt;br /&amp;gt; $sftp&amp;gt; lcd download&amp;lt;br /&amp;gt; $sftp&amp;gt; lpwd&amp;lt;br /&amp;gt; Local working directory: /home/jop/download&amp;lt;br /&amp;gt; $sftp&amp;gt; put iptables&amp;lt;br /&amp;gt; Uploading iptables to /home/jop/iptables&amp;lt;br /&amp;gt; $sftp&amp;gt; quit&amp;lt;br /&amp;gt; $&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le tunnel et le Xforwarding ==&lt;br /&gt;
&lt;br /&gt;
Tout au long de cet article, vous avez pu découvrir des applications connues, il nous manque cependant l&#039;exportation des applications distantes. En effet, à l&#039;aide de telnet, vous pouviez utiliser un logiciel non présent sur votre machine, mais présent sur l&#039;ordinateur distant. Il suffisait de taper :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$export DISPLAY=mon_adresse:0.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Comme par magie, l&#039;application arrivait plus ou moins rapidement selon votre connexion sur votre écran. C&#039;est ce qu&#039;on appelle du &#039;&#039;&#039;Xforwarding&#039;&#039;&#039;. L&#039;avantage une fois de plus d&#039;utiliser ssh réside dans la connexion chiffrée et l&#039;impossibilité à un agresseur éventuel de lire ce que vous faîtes via le réseau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;$ssh jop@scipc-jpg gedit&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple donné, nous demandons d&#039;ouvrir la connexion ssh pour inscrire Gedit à l&#039;intérieur (bloc-notes de Gnome). En fermant Gedit, nous fermerons la connexion ssh.&amp;lt;br /&amp;gt; Pour que cela soit réalisable, n&#039;oubliez cependant pas d&#039;&#039;&#039;&#039;activer l&#039;option X11Forwarding &#039;&#039;&#039;dans les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
Toujours dans la même idée de tunneler des applications, ssh vous permet d&#039;encapsuler des protocoles. Cela est très intéressant lorsque vous avez recours à des protocoles tels que smtp, pop, ... Vous courriers, pour l&#039;exemple, ne serons plus à l&#039;indiscrétion de vos fournisseurs, ni des fouines du réseau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ssh -L port_local:hôte_distant:port_distant nom_utilisateur@nom_hôte&amp;lt;/tt&amp;gt; Mettons que je veuille encapsuler les ports 25 (smtp) et 110 (pop) &amp;lt;tt&amp;gt;$ssh -L 2025:scipc-jpg:25 jop@scipc-jpg &amp;lt;br /&amp;gt; $ssh -L 2110:scipc-jpg:110 jop@scipc-jpg &amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il vous suffit de configurer votre logiciel de messagerie favori aux ports 2025 pour le smtp et 2110 pour le pop pour recevoir correctement votre courrier, et ce de manière sécurisée.&lt;br /&gt;
&lt;br /&gt;
== Autre implémentation du protocole ==&lt;br /&gt;
&lt;br /&gt;
Openssh est l&#039;implémentation la plus connu, mais n&#039;est pas la seule. On peut également utiliser :&lt;br /&gt;
* Lsh, une version gnu ( http://www.lysator.liu.se/~nisse/lsh/ )&lt;br /&gt;
* Dropbear, un serveur dédié à l&#039;embarqué ( http://matt.ucc.asn.au/dropbear/dropbear.html )&lt;br /&gt;
* Conch, une implémentation en python ( http://twistedmatrix.com/projects/conch/ )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Où se trouve quoi ? ==&lt;br /&gt;
&lt;br /&gt;
Le paquet &#039;&#039;&#039;OpenSSH &#039;&#039;&#039;fournit : /etc/ssh&amp;lt;br /&amp;gt; /etc/ssh/moduli&amp;lt;br /&amp;gt; /usr/bin/scp&amp;lt;br /&amp;gt; /usr/bin/ssh-keygen&amp;lt;br /&amp;gt; /usr/libexec/openssh&amp;lt;br /&amp;gt; /usr/libexec/openssh/ssh-keysign&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/CREDITS&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/ChangeLog&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/INSTALL&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/LICENCE&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/OVERVIEW&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/README&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/README.privsep&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/README.smartcard&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/RFC.nroff&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/TODO&amp;lt;br /&amp;gt; /usr/share/doc/openssh-3.5p1/WARNING.RNG&amp;lt;br /&amp;gt; /usr/share/man/man1/scp.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/ssh-keygen.1.gz&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Le paquet &#039;&#039;&#039;OpenSSH-client&#039;&#039;&#039; fournit :&amp;lt;br /&amp;gt; /etc/ssh/ssh_config&amp;lt;br /&amp;gt; /usr/bin/sftp&amp;lt;br /&amp;gt; /usr/bin/slogin&amp;lt;br /&amp;gt; /usr/bin/ssh&amp;lt;br /&amp;gt; /usr/bin/ssh-add&amp;lt;br /&amp;gt; /usr/bin/ssh-agent&amp;lt;br /&amp;gt; /usr/bin/ssh-keyscan&amp;lt;br /&amp;gt; /usr/share/man/man1/sftp.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/slogin.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/ssh-add.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/ssh-agent.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/ssh-keyscan.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man1/ssh.1.gz&amp;lt;br /&amp;gt; /usr/share/man/man5/ssh_config.5.gz&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; Le paquet &#039;&#039;&#039;OpenSSH-server &#039;&#039;&#039;fournit :&amp;lt;br /&amp;gt; /etc/pam.d/sshd&amp;lt;br /&amp;gt; /etc/rc.d/init.d/sshd&amp;lt;br /&amp;gt; /etc/ssh&amp;lt;br /&amp;gt; /etc/ssh/sshd_config&amp;lt;br /&amp;gt; /usr/libexec/openssh/sftp-server&amp;lt;br /&amp;gt; /usr/sbin/sshd&amp;lt;br /&amp;gt; /usr/share/man/man5/sshd_config.5.gz&amp;lt;br /&amp;gt; /usr/share/man/man8/sftp-server.8.gz&amp;lt;br /&amp;gt; /usr/share/man/man8/sshd.8.gz&amp;lt;br /&amp;gt; /var/empty/sshd&amp;lt;br /&amp;gt; Les documentations sont répertoriées en bordeaux Les fichiers de configuration en vert Les exécutables en bleu&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Georges Orwell écrivait 1984 bien des années plus tôt et nommait un ennemi invisible Big Brother en avançant le slogan « &#039;&#039;Big Brother is watching you&#039;&#039; ». Non loin de cette réalité, nous avons atteint avec Internet l&#039;ouverture de l&#039;outil informatique aux masses. Ne pouvant être en mesure de s&#039;assurer que personne ne s&#039;introduit dans votre intimité, le conseil reste d&#039;être prudent avec vos données sensibles et personnelles. Oubliez donc les vieux protocoles non sécurisés et travaillez en toute sécurité...&lt;br /&gt;
&lt;br /&gt;
== Bibliographie ==&lt;br /&gt;
&lt;br /&gt;
=== RFCs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://www.eisti.fr/res/res/rfc854/854.htm Telnet] - numéro 854 &#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.ietf.org/html.charters/secsh-charter.html  SSH] - Groupe de travail IETF &#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.linux-france.org/prj/edu/archinet/SECU/ssh.pdf SSH - SCP - SFTP] - Alix Mascret &#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://okki666.free.fr/docmaster/articles/linux123.html Secure Shell] - Denis Bodor&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.via.ecp.fr/~alexis/formation-linux Formation Linux Debian] - Alexis de lattre&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Logiciel ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://www.openssh.org OpenSSH - Secure Shell ]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.openssl.org OpenSSL -- Secure Socket Layer]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.ethereal.com Ethereal - sniffeur]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.openoffice.org OpenOffice.org - suite bureautique]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.gimp.org The gimp - Traitement d&#039;image]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;&#039;[http://www.ipso-facto.demon.co.uk/ksnapshot/index.html Ksnapshot - Impression d&#039;écran]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je remercie tout particulièrement Anne pour le temps qu&#039;elle a passé à la relecture de cet article ainsi qu&#039;à sa correction et sa mise en forme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-philippe Gaulier le 01/17/2003.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 01/17/2003, Jean-philippe Gaulier&lt;br /&gt;
{{FDL}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Gestion_des_ACL&amp;diff=10201</id>
		<title>Gestion des ACL</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Gestion_des_ACL&amp;diff=10201"/>
		<updated>2005-10-28T14:49:57Z</updated>

		<summary type="html">&lt;p&gt;Misc : Ajout d&amp;#039;un lien vers linuxfrench&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Administration_système]]&lt;br /&gt;
&lt;br /&gt;
Une &#039;&#039;&#039;ACL&#039;&#039;&#039;, ou &#039;&#039;Access Control List&#039;&#039; (en anglais : « liste de contrôle d&#039;accès ») est, pour définir simplement la notion, une liste de [[Admin-admin env-permissions|permission]]s sur un fichier, un répertoire ou une arborescence, ajoutée aux permissions « classiques » (c&#039;est-à-dire, techniquement, les permissions POSIX.1) de ce fichier. Ces permissions concernent des utilisateurs et/ou des groupes définis. La gestion des ACL sous GNU/Linux s&#039;inspire de la norme POSIX 1003.1e (projet 17) mais ne la respecte pas entièrement.&lt;br /&gt;
&lt;br /&gt;
Au moyen des ACL, on peut étendre le nombre d&#039;utilisateurs et de groupes ayant des droits sur un même fichier. Rappelons que, dans le monde UNIX, chaque fichier ne peut normalement indiquer des permissions que pour &#039;&#039;un seul utilisateur&#039;&#039; et &#039;&#039;un seul groupe&#039;&#039;, qui s&#039;opposent à une unique catégorie correspondant à « tous les autres » (ou « le reste du monde »). Avec les ACL, on peut (entre autres) ajouter à un fichier d&#039;autres utilisateurs et groupes et définir leurs droits séparément. On se rapproche ainsi du système de permissions pratiqué sur les plate-formes NT (de nombreuses différences subsistent, cependant).&lt;br /&gt;
&lt;br /&gt;
Les ACL sont très utiles (voire indispensables) dans des environnements informatiques axés sur le travail collaboratif et mutualisé ; de même, leur utilisation avec [[Reseau-partfic-samba|SAMBA]] permet d&#039;en étendre les capacités.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&amp;quot;note&amp;quot;&amp;gt;Dans les exemples qui suivent, les commandes peuvent être tapées en root ou en utilisateur normal, selon la portée des modificaitons : pour modifier les droits d&#039;un fichier qui n&#039;est pas possédé par un utilisateur ou pour ajouter des permissions à un autre utilisateur ou encore pour ajouter aux ACL un groupe dont l&#039;utilisateur ne fait pas partie, il faut être root (pour les utilisateurs Ubuntu, il faut préfixer les commandes par [[sudo|&amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;]]).&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exemple pratique==&lt;br /&gt;
Soit un fichier &#039;&#039;/var/www/index.php&#039;&#039; (page d&#039;index d&#039;un site web, par exemple) dont les droits sont les suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;ls -l /var/www/index.php&lt;br /&gt;
   -rw-r-----  1 root www-data 18 2005-09-11 11:24 /var/www/index.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En d&#039;autres termes, root en est le propriétaire ; il peut le lire et le modifier ; le fichier est aussi accordé au groupe &#039;&#039;www-data&#039;&#039; (celui sous lequel, par exemple, tourne le [[Reseau-web-Apache PHP MySQL|serveur web]]), dont les membres peuvent le lire mais pas le modifier. Quant au reste du monde, il ne peut pas y accéder (le fichier contient des informations confidentielles telles qu&#039;un mot de passe à une base de données [[Reseau-web-Apache PHP MySQL|MySQL]]).&lt;br /&gt;
&lt;br /&gt;
Imaginons qu&#039;on veuille rendre le fichier accessible en lecture aux utilisateurs jean et luce, en lecture et écriture à khadija et alice. On pourrait à la rigueur faire entrer jean et luce dans le groupe &#039;&#039;www-data&#039;&#039; mais cela introduirait une faille de sécurité car &#039;&#039;www-data&#039;&#039; peut aussi accéder à des données qui ne les concernent pas. Il n&#039;est en tout cas rationnellement pas prudent d&#039;ajouter khadija et alice au groupe &#039;&#039;root&#039;&#039;. On ne peut non plus changer les permissions (les mettre en lecture et écriture pour tout le monde) ou modifier le propriétaire et le groupe.&lt;br /&gt;
&lt;br /&gt;
Les ACL sont là une solution pratique et facile à gérer dans ce cas ; il suffit d&#039;ajouter des permissions à l&#039;ACL du fichier (grâce à des commandes décrites plus bas) pour qu&#039;il se présente ainsi :  &lt;br /&gt;
&amp;lt;code&amp;gt;root: rw-&lt;br /&gt;
www-data: r--&lt;br /&gt;
khadija: rw-&lt;br /&gt;
alice: rw-&lt;br /&gt;
jean: r--&lt;br /&gt;
luce: r--&lt;br /&gt;
reste du monde : ---&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mise en place==&lt;br /&gt;
Selon la version du noyau utilisée, le support des ACL peut ou non être déjà compilé. S&#039;il l&#039;est, il faut aussi que la partition contenant les fichiers dont on veut étendre les droits soit montée avec l&#039;option idoine.&lt;br /&gt;
&lt;br /&gt;
===Noyau===&lt;br /&gt;
Il faut d&#039;abord savoir si le noyau a été compilé avec le support des ACL. Le plus simple est de le vérifier dans le fichier de configuration du noyau, fichier normalement situé sous &#039;&#039;/boot&#039;&#039;. Pour ce faire, utiliser la [[Admin-admin env-shell|commande &amp;lt;i&amp;gt;grep&amp;lt;/i&amp;gt;]] : &lt;br /&gt;
&amp;lt;code&amp;gt;grep ACL /boot/config-version-du-noyau&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elle doit renvoyer la ligne suivante : &lt;br /&gt;
&amp;lt;code&amp;gt;CONFIG_FS_POSIX_ACL=y&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
pour signaler que le support général des ACL est présent, et plusieurs lignes du type&lt;br /&gt;
&amp;lt;code&amp;gt;CONFIG_SystèmeDeFichiers]_FS_POSIX_ACL=y&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
où &#039;&#039;[[système de fichiers|SystèmeDeFichiers]]&#039;&#039; peut recevoir les valeurs (pour un noyau 2.6.8-2-386 à la date de rédaction) &#039;&#039;EXT2&#039;&#039;, &#039;&#039;EXT3&#039;&#039;, &#039;&#039;JFS&#039;&#039; et &#039;&#039;XFS&#039;&#039;. On peut aussi utiliser les ACL avec les systèmes de fichiers &#039;&#039;IBM JFS&#039;&#039;, &#039;&#039;ReiserFS&#039;&#039;, &#039;&#039;SGI XFS&#039;&#039; et &#039;&#039;NFS&#039;&#039;. Leur implémentation peut nécessiter de patcher le noyau. Noter que les ACL ne sont pas possibles avec des systèmes de fichiers comme &#039;&#039;vfat&#039;&#039; qui ne gèrent aucun type de permissions.&lt;br /&gt;
&lt;br /&gt;
Si la valeur des options n&#039;est pas correcte, vous devez [[Rubrique : noyau et modules|recompiler votre noyau]]. N&#039;oubliez pas de prévoir au moins un système de fichiers pour lequel les ACL seront permis.&lt;br /&gt;
&lt;br /&gt;
===Systèmes de fichiers/montage des partitions===&lt;br /&gt;
Quand le noyau est disposé à gérer les ACL, on doit préparer les partitions montées dans un système de fichiers adapté (par exemple, il est exclu de vouloir utiliser ces permissions avec du &#039;&#039;vfat&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
====Montage et démontage à la volée====&lt;br /&gt;
Il faut monter les partitions voulues avec l&#039;option &#039;&#039;acl&#039;&#039;. Par exemple : &lt;br /&gt;
&amp;lt;code&amp;gt;mount -t ext3 -o defaults,acl /dev/hda2/ /var/www/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Si la partition est déjà montée, on peut modifier ses paramètres à la volée : &lt;br /&gt;
&amp;lt;code&amp;gt;mount -o remount,acl /var/www/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configuration automatique====&lt;br /&gt;
L&#039;inscription dans &#039;&#039;[[Admin-admin fs-fstab|/etc/fstab]]&#039;&#039; des options de gestion des ACL est recommandée quand leur utilisation est régulière. Par exemple, notre même couple &#039;&#039;partition&#039;&#039; / &#039;&#039;point de montage&#039;&#039; serait déclaré ainsi : &lt;br /&gt;
&amp;lt;code&amp;gt;/dev/hda2       /var/www               ext3    defaults,acl 0       0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
À chaque montage automatique des partitions, le support des ACL sera activé.&lt;br /&gt;
&lt;br /&gt;
==Commandes==&lt;br /&gt;
Il existe deux commandes essentielles : l&#039;une pour manipuler l&#039;ACL d&#039;un fichier (&#039;&#039;setfacl&#039;&#039;) et l&#039;autre pour la consulter (&#039;&#039;getfacl&#039;&#039;). Les commandes traditionnelles &#039;&#039;chmod&#039;&#039; et &#039;&#039;chown&#039;&#039; ne peuvent accéder aux ACL. &lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nécessitent, sous Debian (et distributions dérivées, comme Knoppix ou Ubuntu), l&#039;installation du paquetage « acl ». Pour l&#039;installer : &lt;br /&gt;
&amp;lt;code&amp;gt;[sudo] apt-get install acl&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
(ajout de &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; pour Ubuntu)&lt;br /&gt;
&lt;br /&gt;
Pour les distributions à base de RedHat (donc aussi Fedora, Mandriva), il faut installer les paquetages &amp;lt;code&amp;gt;acl.*.rpm&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;libacl1.*.rpm&amp;lt;/code&amp;gt; (leur nom contient leur numéro de version).&lt;br /&gt;
&lt;br /&gt;
===setfacl===&lt;br /&gt;
Le nom de la commande se comprend &#039;&#039;set file&#039;s ACL&#039;&#039; (« régler l&#039;ACL du fichier »). Elle possède de nombreuses options dont il convient de prendre connaissance en consultant la page de manuel (&amp;lt;code&amp;gt;man setfacl&amp;lt;/code&amp;gt;). La commande fonctionne bien sûr aussi de manière récursive (option &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt;) :&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -Rm u:khadija:rw /var/www/&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
modifie l&#039;ACL de tous les fichiers situés sous &#039;&#039;/var/www/&#039;&#039; en attribuant une permission de lecture et d&#039;écriture à l&#039;utilisateur khadija.&lt;br /&gt;
&lt;br /&gt;
====Ajouter des permissions====&lt;br /&gt;
La syntaxe fondamentale est simple. La commande&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:khadija:rw /var/www/index.php&amp;lt;/code&amp;gt; &lt;br /&gt;
modifiera (&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt;) l&#039;ACL de &#039;&#039;/var/www/index.php&#039;&#039; en attribuant à l&#039;utilisateur (préfixe &amp;lt;code&amp;gt;u:&amp;lt;/code&amp;gt;) khadija les droits &amp;lt;code&amp;gt;rw&amp;lt;/code&amp;gt; et en lui refusant le droit d&#039;exécution (qui n&#039;a pas été mentionné dans la commande).&lt;br /&gt;
&lt;br /&gt;
Les principaux paramètres à connaître sont : &lt;br /&gt;
* &#039;&#039;&#039;préfixes :&#039;&#039;&#039; &lt;br /&gt;
** &amp;lt;code&amp;gt;u:&amp;lt;/code&amp;gt; (droits pour un &#039;&#039;&#039;u&#039;&#039;&#039;tilisateur, nommé ou désigné par son uid) ;&lt;br /&gt;
** &amp;lt;code&amp;gt;g:&amp;lt;/code&amp;gt; (droits pour un &#039;&#039;&#039;g&#039;&#039;&#039;roupe, nommé ou désigné par son gid) ;&lt;br /&gt;
** &amp;lt;code&amp;gt;o:&amp;lt;/code&amp;gt; (droits pour &#039;&#039;&#039;&#039;&#039;o&#039;&#039;&#039;ther&#039;&#039;, le reste du monde) ; &lt;br /&gt;
* &#039;&#039;&#039;permissions :&#039;&#039;&#039; elles sont codées dans l&#039;ordre &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; (ce dernier représentant, comme avec &#039;&#039;chmod&#039;&#039;, le droit d&#039;entrée dans les répertoires ou celui d&#039;exécution pour les fichiers qui ont déjà un marqueur &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;). On les remplace par &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; pour une interdiction explicite. Ne pas mentionner un droit revient aussi à une interdiction : &amp;lt;code&amp;gt;setfacl -m u:khadija:w /var/www/index.php&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;setfacl -m u:khadija:-w- /var/www/index.php&amp;lt;/code&amp;gt; reviennent au même.&lt;br /&gt;
&lt;br /&gt;
On peut construire des commandes plus complexes en enchaînant les entrées dans l&#039;ACL : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:khadija:rw,g:site1:r--,o:--- /var/www/index.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
définit des permissions dans l&#039;ACL de &#039;&#039;/var/www/index.php&#039;&#039; pour l&#039;utilisateur khadija, le groupe &#039;&#039;site1&#039;&#039; et le reste du monde.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet aussi de modifier les permissions classiques (et remplace dans ce cas &#039;&#039;chmod&#039;&#039;) : l&#039;utilisateur, le groupe et le reste du monde initiaux du fichier sont simplement désignés par le préfixe (&amp;lt;code&amp;gt;u:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;g:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o:&amp;lt;/code&amp;gt;) suivi d&#039;un nom vide : si un fichier &#039;&#039;index.php&#039;&#039; appartient à luce:&#039;&#039;www-data&#039;&#039; avec les droits &amp;lt;code&amp;gt;r--r-----&amp;lt;/code&amp;gt;, pour donner à l&#039;utilisateur et le groupe les droits en lecture et écriture il suffit d&#039;une commande &amp;lt;code&amp;gt;setfacl -m u::rw,g::rw /var/www/index.php&amp;lt;/code&amp;gt;. Si l&#039;utilisateur et le groupe possèdent déjà un droit qui ne serait pas mentionné dans la commande &#039;&#039;setfacl&#039;&#039;, ce droit sera annulé. Soit le fichier &#039;&#039;index.php&#039;&#039; avec les droits &amp;lt;code&amp;gt;rw-r-----&amp;lt;/code&amp;gt; pour luce:&#039;&#039;www-data&#039;&#039;. La commande &amp;lt;code&amp;gt;setfacl -m u::r,g::x index.php&amp;lt;/code&amp;gt; modifiera les droits à &amp;lt;code&amp;gt;r----x---&amp;lt;/code&amp;gt; pour pour luce:&#039;&#039;www-data&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Noter qu&#039;un fichier dont seules les permissions classiques ont été altérées par &#039;&#039;setfacl&#039;&#039; au lieu de &#039;&#039;chmod&#039;&#039; ne reçoit pas pour autant une ACL. De fait, il n&#039;est pas référencé par &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; comme fichier à ACL (marqueur &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; ; voir plus bas).&lt;br /&gt;
&lt;br /&gt;
====Droits par défaut et héritage des droits étendus====&lt;br /&gt;
Les droits étendus d&#039;un objet parent ne sont pas automatiquement hérités par les objets contenus. Par exemple, si un répertoire (root:&#039;&#039;www-data&#039;&#039;, &amp;lt;code&amp;gt;rwxr-x-r-x&amp;lt;/code&amp;gt;) possède une ACL &amp;lt;code&amp;gt;u:luce:rwx&amp;lt;/code&amp;gt;, un fichier créé à l&#039;intérieur (ou déjà présent avant l&#039;adjonction de l&#039;ACL) ne reçoit pas cette ACL et ses droits sont ceux impliqués par l&#039;&amp;lt;i&amp;gt;[[fstab|umask]]&amp;lt;/i&amp;gt; défini.&lt;br /&gt;
&lt;br /&gt;
On peut modifier ce comportement en ajoutant, &#039;&#039;&#039;aux répertoires seulement&#039;&#039;&#039;, un attribut &#039;&#039;default&#039;&#039;, codé &amp;lt;code&amp;gt;d:&amp;lt;/code&amp;gt;, qui se transmet à tous les fichiers créés dans le répertoire après l&#039;ajout de l&#039;ACL par défaut. Par exemple, &amp;lt;code&amp;gt;setfacl -m d:u:luce:rwX /var/www&amp;lt;/code&amp;gt; donne à luce les droits de lecture et écriture (ainsi qu&#039;« exécution » quand il s&#039;agit de répertoires) pour tous les fichiers qui seront créés sous &#039;&#039;/var/www&#039;&#039; à partir de ce moment, jusqu&#039;à ce que cette ACL « par défaut » soit annulé ou remplacé.&lt;br /&gt;
&lt;br /&gt;
====Retirer des permissions====&lt;br /&gt;
Pour annuler tout ou partie d&#039;une ACL : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -b /var/www/index.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
ôte tout le contenu de l&#039;ACL du fichier, tandis que&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -x u:khadija,g:site1 /var/www/index.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
retire les permissions propres à khadija et au groupe &#039;&#039;site1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Les permissions ACL par défaut d&#039;un répertoire (&amp;lt;code&amp;gt;d:&amp;lt;/code&amp;gt;) s&#039;annulent par &amp;lt;code&amp;gt;setfacl -k&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Le masque====&lt;br /&gt;
Le masque est une synthèse des valeurs les plus permissives que possède un fichier doté d&#039;une ACL. Les droits de l&#039;utilisateur fondamental ne sont cependant pas pris en compte. Le masque est calculé automatiquement : &lt;br /&gt;
&amp;lt;code&amp;gt;chown luce:www-data index.php &lt;br /&gt;
chmod 640 index.php&lt;br /&gt;
ls -l index.php&lt;br /&gt;
    -rw-r-----  1 luce www-data 5055 2005-10-16 18:53 index.php&lt;br /&gt;
getfacl index.php&lt;br /&gt;
    # file: index.php&lt;br /&gt;
    # owner: luce&lt;br /&gt;
    # group: www-data&lt;br /&gt;
    user::rw-&lt;br /&gt;
    group::r--&lt;br /&gt;
    other::---&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce fichier n&#039;a pas d&#039;ACL donc pas de masque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:jean:rw,g:web:rw index.php&lt;br /&gt;
getfacl index.php&lt;br /&gt;
    # file: index.php&lt;br /&gt;
    # owner: luce&lt;br /&gt;
    # group: www-data&lt;br /&gt;
    user::rw-&lt;br /&gt;
    user:jean:rw-&lt;br /&gt;
    group::r--&lt;br /&gt;
    group:web:rw-&lt;br /&gt;
    mask::rw-&lt;br /&gt;
    other::---&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant que le fichier possède une ACL, il a reçu un masque : les permissions les plus élevées (utilisateur exclu) étant &amp;lt;code&amp;gt;rw&amp;lt;/code&amp;gt;, c&#039;est aussi la valeur du masque.&lt;br /&gt;
&lt;br /&gt;
L&#039;intérêt du masque est de pouvoir limiter d&#039;un coup toutes les permissions d&#039;un fichier (étendues ou non), sauf celles du propriétaire ; on utilise pour cela le préfixe &amp;lt;code&amp;gt;m:&amp;lt;/code&amp;gt; suivi du droit maximal à accorder : &lt;br /&gt;
&amp;lt;code&amp;gt;getfacl index.php&lt;br /&gt;
    # file: index.php&lt;br /&gt;
    # owner: luce&lt;br /&gt;
    # group: www-data&lt;br /&gt;
    user::rw-&lt;br /&gt;
    user:jean:rw-&lt;br /&gt;
    group::r--&lt;br /&gt;
    group:web:rw-&lt;br /&gt;
    mask::rw-&lt;br /&gt;
    other::---&lt;br /&gt;
setfacl -m m:r index.php&lt;br /&gt;
getfacl index.php&lt;br /&gt;
    # file: index.php&lt;br /&gt;
    # owner: luce&lt;br /&gt;
    # group: www-data&lt;br /&gt;
    user::rw-&lt;br /&gt;
    user:jean:rw-                   #effective:r--&lt;br /&gt;
    group::r--&lt;br /&gt;
    group:web:rw-                 #effective:r--&lt;br /&gt;
    mask::r--&lt;br /&gt;
    other::---&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les valeurs modifiées sont indiquées par le commentaire « &#039;&#039;effective:&#039;&#039; » suivi des permissions effectives après l&#039;application du masque (ici, jean et &#039;&#039;web&#039;&#039; n&#039;ont plus que le droit &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;, la situation reste la même pour &#039;&#039;www-data&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&amp;quot;note&amp;quot;&amp;gt;L&#039;existence même d&#039;un masque renvoie au fonctionnement profond des ACL. Pour en comprendre l&#039;utilité réelle sans se limiter à l&#039;application pragmatique qui en est donnée ici, on se reportera à &#039;&#039;[http://www.suse.de/~agruen/acl/linux-acls/online/ POSIX Access Control Lists on Linux]&#039;&#039;.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===getfacl===&lt;br /&gt;
Cette commande suivie d&#039;un nom de fichier affiche l&#039;ACL de ce fichier (&#039;&#039;get file&#039;s ACL&#039;&#039; « récupérer l&#039;ACL du fichier »). Par exemple : &lt;br /&gt;
&amp;lt;code&amp;gt;getfacl /var/www&lt;br /&gt;
   # file: var/www&lt;br /&gt;
   # owner: root&lt;br /&gt;
   # group: www-data&lt;br /&gt;
   user::rwx&lt;br /&gt;
   user:luce:rwx&lt;br /&gt;
   group::rwx&lt;br /&gt;
   mask::rwx&lt;br /&gt;
   other::r-x&lt;br /&gt;
   default:user::rwx&lt;br /&gt;
   default:user:khadija:rwx&lt;br /&gt;
   default:group::rwx&lt;br /&gt;
   default:group:www-data:r-x&lt;br /&gt;
   default:mask::rwx&lt;br /&gt;
   default:other::r-x&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On voit qu&#039;outre les droits traditionnels attribués à root:&#039;&#039;www-data&#039;&#039; (droits indiqués après &amp;lt;code&amp;gt;user::&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;group::&amp;lt;/code&amp;gt;), sont aussi définis : &lt;br /&gt;
* des droits complets pour luce (&amp;lt;code&amp;gt;user:luce:rwx&amp;lt;/code&amp;gt;) ; &lt;br /&gt;
* une permission ACL par défaut donnant des droits complets à khadija sur tous les nouveaux fichiers créés sous &#039;&#039;/var/www/&#039;&#039; (&amp;lt;code&amp;gt;default:user:khadija:rwx&amp;lt;/code&amp;gt;) ;&lt;br /&gt;
* une autre permission ACL par défaut donnant des droits de lecture et d&#039;exécution au groupe &#039;&#039;www-data&#039;&#039; sur les mêmes fichiers (&amp;lt;code&amp;gt;default:group:www-data:r-x&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Noter que &amp;lt;code&amp;gt;user::&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;group::&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;other::&amp;lt;/code&amp;gt; représentent le triplet &#039;&#039;utilisateur&#039;&#039; / &#039;&#039;groupe&#039;&#039; / &#039;&#039;reste du monde&#039;&#039; des permissions classiques. Appliquer cette commande sur un fichier qui n&#039;a pas d&#039;ACL définie donne les mêmes informations que &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;, dans un format différent :&lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -b index.php # retirer les ACL pouvant exister&lt;br /&gt;
ls -l index.php&lt;br /&gt;
   -rw-r-----  1 root www-data 5055 2005-10-16 18:53 index.php&lt;br /&gt;
getfacl index.php&lt;br /&gt;
   # file: index.php&lt;br /&gt;
   # owner: root&lt;br /&gt;
   # group: www-data&lt;br /&gt;
   user::rw-&lt;br /&gt;
   group::r--&lt;br /&gt;
   other::---&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;ls&#039;&#039;, &#039;&#039;cp&#039;&#039; et &#039;&#039;mv&#039;&#039;===&lt;br /&gt;
Ces commandes doivent pouvoir lister, copier et déplacer les ACL en même temps que les fichiers. Pour les deux premières commande, il faut préciser explicitment que l&#039;on veut afficher/conserver les droits (ce qui est aussi le cas quand on ne travaille que sur les droits classiques) : &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cp -a&amp;lt;/code&amp;gt;. La commande &#039;&#039;mv&#039;&#039;, quant à elle, préserve toujours les droits. &lt;br /&gt;
&lt;br /&gt;
Quand les droits étendus ne peuvent être conservés (déplacement ou copie vers un système de fichier qui n&#039;est pas configuré pour les recevoir ou utilisation d&#039;une version de &#039;&#039;cp&#039;&#039; trop ancienne), un message d&#039;avertissement en informe l&#039;utilisateur. Par exemple : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:luce:rw index.php&lt;br /&gt;
cp -a index.php /mnt/vfat&lt;br /&gt;
   cp: preserving permissions for `/mnt/vfat/index.php&#039;: Opération non supportée&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Noter qu&#039;un fichier comportant une ACL qu&#039;on veut lister par &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; n&#039;affiche qu&#039;un &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; à la suite de ses permissions. Seule la commande &#039;&#039;getfacl&#039;&#039;, pour l&#039;instant, permet d&#039;avoir connaissance du détail. Par exemple : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m u:khadija:rw /var/www/index.php&lt;br /&gt;
ls -l /var/www/index.php&lt;br /&gt;
   -rw-rw----+ 1 khadija www-data 5055 2005-10-16 18:53 /var/www/index.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Avec &amp;lt;code&amp;gt;-rw-rw----+&amp;lt;/code&amp;gt;, on sait que le fichier possède une ACL (&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;), sans en connaître les constituants.&lt;br /&gt;
&lt;br /&gt;
===Sauvegarde des données===&lt;br /&gt;
Sauvegarder des données dotées d&#039;ACL nécessite : &lt;br /&gt;
* l&#039;utilisation d&#039;un système de fichiers pour le stockage qui soit compatible ;&lt;br /&gt;
* et l&#039;utilisation d&#039;un logiciel de sauvegarde qui soit tout autant compatible.&lt;br /&gt;
:À titre indicatif, &#039;&#039;tar&#039;&#039; et &#039;&#039;cpio&#039;&#039; et &#039;&#039;rsync&#039;&#039; ne le sont pas (à moins d&#039;être patchés), &#039;&#039;star&#039;&#039; et &#039;&#039;pax&#039;&#039; le sont.&lt;br /&gt;
&lt;br /&gt;
Pour contourner le problème de sauvegarde, il est possible d&#039;écrire toutes les ACL dans un fichier qui servira de base à une restauration ultérieure : &amp;lt;code&amp;gt;getfacl -R /dossier/dossier/ &amp;gt; fichier&amp;lt;/code&amp;gt; récupère les informations récursivement et les inscrit dans un simple fichier. La restauration se fait au moyen de &amp;lt;code&amp;gt;setfacl --restore=fichier&amp;lt;/code&amp;gt;. Il faut, pour qu&#039;elle fonctionne, se placer à la racine contenant l&#039;arborescence, en raison de la notation relative des chemins (d&#039;où le message &amp;lt;code&amp;gt;Removing leading &#039;/&#039; from absolute path names&amp;lt;/code&amp;gt; que l&#039;on peut souvent lire en tapant des commandes avec ces programmes). Le chemin d&#039;un répertoire &#039;&#039;/tmp/test&#039;&#039; est enregistré comme &#039;&#039;tmp/test&#039;&#039; : on doit donc, pour restaurer, lancer la commande depuis la racine de &#039;&#039;/tmp&#039;&#039;, c&#039;est-à-dire &#039;&#039;/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Par exemple : le répertoire &#039;&#039;/tmp/test&#039;&#039; contient trois fichiers à ACL. On sauvegarde les ACL avec &amp;lt;code&amp;gt;getfacl -R /tmp/test &amp;gt; acl.acl&amp;lt;/code&amp;gt;. Pour restaurer, on se place à la racine (&amp;lt;code&amp;gt;cd /&amp;lt;/code&amp;gt;) et on lance &amp;lt;code&amp;gt;setfacl --restore=acl.acl&amp;lt;/code&amp;gt;. Si on avait lancé la commande depuis &#039;&#039;/test&#039;&#039;, &#039;&#039;setfacl&#039;&#039; aurait renvoyé les erreurs : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl: tmp/test: Aucun fichier ou répertoire de ce type&lt;br /&gt;
setfacl: tmp/test/a: Aucun fichier ou répertoire de ce type&lt;br /&gt;
setfacl: tmp/test/b: Aucun fichier ou répertoire de ce type&lt;br /&gt;
setfacl: tmp/test/c: Aucun fichier ou répertoire de ce type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Note concernant la syntaxe de &#039;&#039;setfacl&#039;&#039;==&lt;br /&gt;
Les préfixes abrégés peuvent être développés et les permissions codées en octal (avec préfixe &#039;&#039;0&#039;&#039; optionnel). Ces trois commandes ont donc le même sens : &lt;br /&gt;
&amp;lt;code&amp;gt;setfacl -m d:u:luce:rw,g:www-data:r,o:- index.php&lt;br /&gt;
setfacl -m default:user:luce:6,group:www-data:4,other:0  index.php&lt;br /&gt;
setfacl -m default:user:luce:06,group:www-data:04,other:00  index.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;cadre type=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
Tout au long de ce document, on a parlé de « permissions classiques » opposées à des « permissions étendues » qui leur seraient ajoutées. C&#039;est une simplification : dans les faits, un système de fichiers monté avec le support des ACL change son appréhension globale des permissions, qui sont toutes des ACL, qu&#039;elles soient minimales (utilisateur primaire, groupe primaire, reste du monde) ou étendues. Dans ce dernier cas, c&#039;est la notion de groupe qui est redéfinie : tout utilisateur ou groupe ajouté à l&#039;utilisateur primaire est enregistré avec ses droits dans une classe « groupe » étendue. &lt;br /&gt;
&lt;br /&gt;
Cela explique la nécessité d&#039;un masque : c&#039;est la valeur limite réelle de la classe « groupe », que les entrées qu&#039;elle contient ne peuvent dépasser. Un &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; sur un fichier dont le masque ACL a été abaissé à &amp;lt;code&amp;gt;r--&amp;lt;/code&amp;gt; alors que les droits du groupe primaire étaient auparavant &amp;lt;code&amp;gt;rw-&amp;lt;/code&amp;gt; donnera : &amp;lt;code&amp;gt;-rw-r-----+&amp;lt;/code&amp;gt; et non &amp;lt;code&amp;gt;-rw-rw----+&amp;lt;/code&amp;gt;. Inversement, si l&#039;on change par &#039;&#039;chmod&#039;&#039; les permissions du groupe principal, cela revient à changer le masque, donc les permissions de tous les utilisateurs et groupes ajoutés.&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Documents annexes==&lt;br /&gt;
* &#039;&#039;&#039;Articles de Léa : &#039;&#039;&#039;&lt;br /&gt;
** les [[permissions]] « classiques » POSIX.1 ;&lt;br /&gt;
** les [[attributs étendus]] des systèmes de fichiers &#039;&#039;ext2&#039;&#039; et &#039;&#039;ext3&#039;&#039; ;&lt;br /&gt;
* &#039;&#039;&#039;pages de manuel : &#039;&#039;&#039;&lt;br /&gt;
** &amp;lt;code&amp;gt;man acl&amp;lt;/code&amp;gt; ; &lt;br /&gt;
** &amp;lt;code&amp;gt;man setfacl&amp;lt;/code&amp;gt; ; &lt;br /&gt;
** &amp;lt;code&amp;gt;man getfacl&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;sites externes : &#039;&#039;&#039;&lt;br /&gt;
** [http://www.linuxplusvalue.be/mylpv.php?id=153 Les ACL POSIX] ;&lt;br /&gt;
** [http://www.linuxfrench.net/article.php3?id_article=1463 Comment fonctionne les acls Posix sous linux]&lt;br /&gt;
** [http://www.suse.de/~agruen/acl/linux-acls/online/ POSIX Access Control Lists on Linux].&lt;br /&gt;
&lt;br /&gt;
{{Copy|27.10.05|Vincent Ramos|FDL}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4272</id>
		<title>LVM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4272"/>
		<updated>2005-10-04T11:02:10Z</updated>

		<summary type="html">&lt;p&gt;Misc : lien vers arbre binaire sur wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Administration système]]&lt;br /&gt;
= Le LVM (Logical Volume Manager) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Le LVM (Logical Volume Manager)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [mailto:anne at lea-linux point org Anne]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un des aspects cruciaux dans l&#039;administration d&#039;un serveur ou d&#039;une machine de bureau est la gestion de l&#039;espace disque. Quoi de plus énervant que de voir l&#039;installation d&#039;une application échouer par manque d&#039;espace, ou un serveur rendu indisponible parce que le système de fichiers /var était plein du fait des fichiers de log ?&lt;br /&gt;
&lt;br /&gt;
Un outil apporte une solution satisfaisante et efficace : le LVM (Logical Volume Manager).&lt;br /&gt;
&lt;br /&gt;
= De l&#039;utilité du LVM =&lt;br /&gt;
&lt;br /&gt;
Le LVM ou Logical Volume Manager, est une technique créée à la base par IBM consistant à fournir la possibilité de modifier la taille des partitions sur les disques durs sans avoir besoin de tout reformater, voire de créer des partitions s&#039;étalant sur plusieurs disques. L&#039;objectif est ainsi d&#039;éviter arret et redemarrage d&#039;une machine en production. Cette technique est disponible sur linux depuis la version 2.4 du noyau (très exactement 2.3.47).&lt;br /&gt;
&lt;br /&gt;
Dans un partitionnement de type classique, à l&#039;aide des commandes fdisk, vous ne pouvez avoir que 4 partitions primaires pour chaque disque (en IDE) ou éventuellement 3 partitions primaires et une partition étendue qui contiendra des partitions logiques. L&#039;inconvénient de ce type de partitionnement est que lorsque vous souhaitez réduire la taille d&#039;une partition ou l&#039;augmenter, vous devez notamment disposer d&#039;outils spécifiques comme GNU-parted. De plus, le partitionnement ne se fera que disque par disque. Imaginez alors que vous souhaitiez ajouter un deuxième disque sur votre machine ou agrandir la taille de votre système de fichiers /home....&lt;br /&gt;
&lt;br /&gt;
Vous ne pourrez pas profiter de l&#039;espace disponible sur ce deuxième disque pour agrandir /home, à moins d&#039;y accrocher un nouveau système de fichiers. Agacant non ?&lt;br /&gt;
&lt;br /&gt;
Eh bien, LVM est là pour vous simplifier la vie.&lt;br /&gt;
&lt;br /&gt;
= Les composants du LVM =&lt;br /&gt;
&lt;br /&gt;
Le principe de fonctionnement de LVM est relativement simple. Il s&#039;agit en fait pour effectuer ce type de partitionnement, de s&#039;affranchir complètement des limites physiques du ou des disques disponibles. Les étapes ci-dessous en décrivent le fonctionnement. Le LVM s&#039;accompagne aussi d&#039;un certain nombre de termes techniques énoncés également ci-dessous.&lt;br /&gt;
&lt;br /&gt;
* Chaque disque dur ou partition va être transformé en &#039;&#039;&#039;volume physique&#039;&#039;&#039;. Cette opération consiste à découper le disque en tranches, appelées Physical Extents (PE). Par défaut (et convention), 1 PE = 4Mo.&lt;br /&gt;
* Chaque volume physique va être inséré dans un &#039;&#039;&#039;groupe de volumes&#039;&#039;&#039;. Celui-ci peut contenir un ou plusieurs volumes physiques (donc disques ou partitions). Un groupe de volume est un espace logique découpé en Logical Extents (LE) de même tailles que les physical extents, soit 4 Mo par défaut. &lt;br /&gt;
Le système va ensuite établir des &#039;&#039;&#039;pointeurs&#039;&#039;&#039; entre un physical extent et un logical extent comme indiqué sur le schéma ci-dessous. (schéma 1)&lt;br /&gt;
&#039;&#039;&#039;Schéma 1 : système des pointeurs LVM&#039;&#039;&#039;&lt;br /&gt;
[[Image:lvm-lvm4.jpg]]&lt;br /&gt;
* La dernière étape va consister à découper le groupe de volumes en partitions appelées &#039;&#039;&#039;volumes logiques&#039;&#039;&#039; dans lesquelles nous pourrons au choix, créer un système de fichier, une partition de swap. Ces partitions pourront être redimensionnées et/ou déplacées.&lt;br /&gt;
&lt;br /&gt;
Voici de manière shématique à quoi pourrait ressembler votre(vos) disque(s) après ce traitement (Schéma 2).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 2 : impact de LVM sur les disques durs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dans ce cas de figure, les deux disques hda et hdb ont été transformés en volumes physiques. Puis ils ont été insérés tous les deux dans un groupe de volumes appelé vg01. A partir de ce moment-là, il n&#039;est plus nécessaire de tenir compte des limites physiques des disques, en effet, nous n&#039;avons plus qu&#039;un espace, et un seul, de 36 GB (regroupant donc nos deux unités de disques hda et hdb). Le groupe de volumes a ensuite été découpé en 3 volumes logiques, nommées lvol01, lvol02, lvol03. On remarquera que lvol02 est composé de logical extents pointant sur des physical extents appartenant à hda et hdb. La dernière étape consistera à créer un système de fichiers dans chacun de ces volumes logiques.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarques&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* la taille que l&#039;on attribuera à un volume logique s&#039;exprime en nombre de logical extents. Ceux-ci sont indivisibles. Si sa taille est de 4 Mo et que je souhaite un volume logique de 14 Mo, le système attribuera 4 logical extents au volume logique, soit 16 Mo (arrondi au nombre de LE supérieur) &lt;br /&gt;
* la taille d&#039;un PE, et donc d&#039;un LE, est personnalisable lors de la création d&#039;un volume physique. &lt;br /&gt;
* les noms des groupes de volumes et volumes logiques sont personnalisables à leur création&lt;br /&gt;
* &#039;&#039;&#039;Attention : la création d&#039;un volume physique écrase toutes les données existantes sur la partition et/ou le disque !!&#039;&#039;&#039; &lt;br /&gt;
* L&#039;utilisation du LVM pour partitionner un disque entraine une perte d&#039;espace liée à l&#039;écriture des données nécessaires au système pour gérer le LVM (métadatas) : &lt;br /&gt;
** la PVRA : Physical Volume Reserved Area. Comme son nom l&#039;indique, elle contient les informations LVM spécifiques au volume physique. &lt;br /&gt;
** la VGRA : Volume Group Reserve Area. Elle contient les informations liées au groupe de volumes mais aussi aux volumes logiques contenus dans le groupe de volumes &lt;br /&gt;
** la BBRA : Bad Block Relocation Area : cette zone contient des informations liées au mécanisme de ré-allocation des blocs défectueux.  &lt;br /&gt;
&lt;br /&gt;
= Utiliser le LVM : ce dont il faut disposer =&lt;br /&gt;
&lt;br /&gt;
Pour être utilisé, le LVM nécessite de disposer du driver qui permet de générer la couche assurant le mapping ( la carte) entre périphérique physique et vue logique, des utilitaires pour manipuler ce mapping et des périphériques physiques.&lt;br /&gt;
&lt;br /&gt;
== Kernel et utilitaires ==&lt;br /&gt;
&lt;br /&gt;
Le LVM est fourni lors de l&#039;installation, sauf sur de trés vieux systémes ( noyau 2.2 ). Il faut quand même savoir que l&#039;implémentation du LVM se fait à deux niveaux :&lt;br /&gt;
&lt;br /&gt;
* le kernel &lt;br /&gt;
* les commandes nécessaires pour gérer les structures LVM. &lt;br /&gt;
&lt;br /&gt;
Au niveau du kernel lors de l&#039;installation ou de la recompilation du noyau, vous devez avoir intégré ou mis en module le driver LVM. Celui-ci se situe dans le menu de compilation &amp;quot;Multi-device support&amp;quot;. On peut le vérifier de la manière suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# grep -i lvm /boot/config&amp;lt;br /&amp;gt; # Multi-device support (RAID and LVM)&amp;lt;br /&amp;gt; CONFIG_BLK_DEV_LVM=m&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous devez également disposer des commandes nécessaires à l&#039;administration du LVM. Elles sont incluses dans le package lvm. Pour vérifier qu&#039;il est installé (dans le cas d&#039;une Mandriva) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# rpm -qa|grep lvm&amp;lt;br /&amp;gt; lvm-1.0.3-9&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les commandes passées en revue dans la suite de cet article font partie de ce paquetage.&lt;br /&gt;
&lt;br /&gt;
== Sur quels périphériques et systèmes de fichiers puis-je faire du LVM ? ==&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir utiliser le LVM, vous devez disposer soit d&#039;un disque vierge (rappel : la création d&#039;un volume physique entrainera la perte de données existantes) et/ou d&#039;une partition primaire vierge (moins utile mais faisable).&lt;br /&gt;
&lt;br /&gt;
Toutefois attention : vous ne pourrez pas mélanger partitionnement classique et LVM au sein d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Il est possible d&#039;utiliser le LVM pour tous vos systèmes de fichiers, exception faite de « /boot », qui pose quelques problèmes. Par contre il est tout à fait possible de l&#039;inclure sur un ou plusieurs volumes logiques. D&#039;ailleurs la plupart des distributions proposent aujourd&#039;hui cette option dè l&#039;installation. La seule contrainte est de prévoir le chargement du module LVM dès le démarrage. Pour ce faire, on créera une image initrd contenant le module LVM à l&#039;aide de la commande lvmcreate_initrd. On modifiera également en conséquence le fichier /etc/lilo.conf.&lt;br /&gt;
&lt;br /&gt;
= Configuration du LVM =&lt;br /&gt;
&lt;br /&gt;
Passons maintenant à la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour la mise en application, nous allons reprendre les 3 étapes énoncées ci-dessus. A chaque fois, je présenterai la commande correspondante à la création de l&#039;élément et une commande de recueil d&#039;informations pour vérifier que l&#039;opération a été correctement réalisée.&lt;br /&gt;
&lt;br /&gt;
== L&#039;arborescence du LVM ==&lt;br /&gt;
&lt;br /&gt;
A chaque élément du LVM correspond un fichier spécial dans /dev. Le volume physique est représenté par le fichier spécial du disque dur ou de la partition correspondant. Le groupe de volume dispose d&#039;un répertoire portant son nom dans lequel on trouvera le fichier spécial group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# ls -l /dev/datas/group&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; crw-r----- 1 root root 109, 1 jan 1 1970 group&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce répertoire, on trouvera également un fichier spécial par volume logique créé à l&#039;intérieur de ce groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# tree /dev/users /dev/public&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; /dev/users&amp;lt;br /&amp;gt; |--datas&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--private&amp;lt;br /&amp;gt; /dev/public&amp;lt;br /&amp;gt; |--ftp&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--web&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outre les fichiers spéciaux, on trouve également le fichier /etc/lvmtab et /etc/lvmtab.d. Ils contiennent la base de données manipulée par les commandes lvm.&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume physique ==&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre disque en volume physique. L&#039;opération s&#039;effectue en 3 temps :&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Préparation de l&#039;espace&#039;&#039;&#039; à utiliser avec le LVM : cette étape s&#039;effectue grâce à la commande fdisk. Vous allez devoir attribuer le type lvm à votre disque ou votre partition : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 root@pingu# fdisk /dev/hdb&lt;br /&gt;
 Commande (m pour aide) : p&lt;br /&gt;
 Disk /dev/hdb: 13.5 GB, 13578485760 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 1650 cylinders&lt;br /&gt;
 Units = cylindres of 16065 * 512 = 8225280 bytes&lt;br /&gt;
 Périphérique Amorce    Début       Fin    Blocs   Id  Système&lt;br /&gt;
 /dev/hdb1            1       730   5863693+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb2          731      1339   4891792+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb3         1340      1650   2498107+  8e  Linux LVM&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
# Ensuite, il est nécessaire de lancer &#039;&#039;&#039;la commande vgscan&#039;&#039;&#039; si vous utilisez LVM pour la première fois sur le disque dur ou la partition. La commande va créer notamment le fichier /etc/lvmtab et le répertoire /etc/lvmtab.d. &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgscan&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgscan -- reading all physical volumes (this may take a while...)&amp;lt;br /&amp;gt; vgscan -- &amp;quot;/etc/lvmtab&amp;quot; and &amp;quot;/etc/lvmtab.d&amp;quot; successfully created&amp;lt;br /&amp;gt; vgscan -- WARNING: This program does not do a VGDA backup of your volume group&amp;lt;/div&amp;gt; &lt;br /&gt;
# Création du volume physique : la commande est pvcreate (physical volume creation). &lt;br /&gt;
pvcreate [-f] &amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; -f : force la création du volume. A utiliser si le disque avait déjà été transformé en volume physique.&amp;lt;br /&amp;gt; /dev/hdxx : fichier spécial du disque ou de la partition à transformer en volume physique&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume physique à partir de hdb1&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un groupe de volume ==&lt;br /&gt;
&lt;br /&gt;
Une fois le volume physique créé, il faut alors insérer le ou les volumes physiques ainsi créés dans un groupe de volumes. On utilise la commande vgcreate :&lt;br /&gt;
&lt;br /&gt;
vgcreate &amp;lt;nom_du_volume&amp;gt;&amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; &amp;lt;nom_du_volume&amp;gt; : nom du groupe de volume - l&#039;opération crée alors le répertoire /dev/nom_du_volume contenant le fichier spécial group qui représente ce groupe de volumes.&amp;lt;br /&amp;gt; &amp;lt;/dev/hdxx&amp;gt; : fichier spécial du volume physique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un groupe de volumes nommé volume1 avec hdb1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgcreate volume1 /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgcreate -- INFO: using default physical extent size 4 MB&amp;lt;br /&amp;gt; vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte&amp;lt;br /&amp;gt; vgcreate -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; vgcreate -- volume group &amp;quot;volume1&amp;quot; successfully created and activated&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume logique ==&lt;br /&gt;
&lt;br /&gt;
Une fois le groupe de volume créé, on peut alors le découper en un ou plusieurs volumes logiques grâce à la commande lvcreate :&lt;br /&gt;
&lt;br /&gt;
lvcreate -L tailleK|M|G [-n nom] &amp;lt;nom_volume&amp;gt; où&amp;lt;br /&amp;gt; -L tailleK|M|G : taille du volume logique exprimable en Ko, Mo ou Go&amp;lt;br /&amp;gt; -n nom : nom du volume logique - l&#039;opération crée un fichier spécial portant ce nom pour le volume logique et sera placé dans le répertoire /dev/nom_volume&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nom_volume&amp;gt; : nom du groupe de volumes dans lequel sera créé le volume logique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume logique de 600 Mo nommé part1 dans le groupe de volume volume1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvcreate -L 600 -n part1 volume1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvcreate -- doing automatic backup of &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvcreate -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une particularité de la création d&#039;un volume logique est le choix du mapping entre les LE et les PE. Par défaut, ce mapping est effectué de manière linéaire. Il est possible également de réaliser du stripping(répartition des données sur un ou plusieurs diques), ce qui permet d&#039;améliorer le temps d&#039;accè aux données. Ci-dessous, ce schéma montre la différence de répartition des LE en fonction de ces 2 modes.&lt;br /&gt;
&lt;br /&gt;
Des options de la commande lvcreate permettent de donner le nombre de stripes (et donc de volumes physiques utilisés) et leur taille. (Schémas 4 et 5)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 4 : Volume logique en mode linéaire&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 5 : Volume logique en mode stripping&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Recueillir des informations sur le LVM =&lt;br /&gt;
&lt;br /&gt;
A tout moment il est possible de recueillir des informations sur les structures LVM : volume physique, groupe de volumes et volumes logiques. On utilisera pour cela respectivement les commandes pvdisplay, vgdisplay et lvdisplay. Ces commandes ne font en fait qu&#039;afficher dans un format lisible le contenu respectif de la PVRA, VGRA. Nous allons détailler les principales informations au moyen d&#039;exemples ci-dessous.&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un volume physique procure notamment le nom du volume physique, le nom du groupe de volume dans lequel est inséré le dit volume physique, sa taille, le nombre de volumes logiques contenus, la taille des physical extents, le nombre de PE contenus dans le volume physique, le nombre de PE libres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# pvdisplay /dev/hdb1&lt;br /&gt;
 --- Physical volume ---&lt;br /&gt;
 PV Name               /dev/hdb1&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 PV Size               5.59 GB [11727387 secs] /&lt;br /&gt;
   NOT usable 4.19 MB [LVM: 133 KB]&lt;br /&gt;
 PV#                   1&lt;br /&gt;
 PV Status             available&lt;br /&gt;
 Allocatable           yes&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 PE Size (KByte)       4096&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Free PE               1230&lt;br /&gt;
 Allocated PE          200&lt;br /&gt;
 PV UUID               DTWrWh-5oUP-KrdB-US55-c9wP-eKii-6z3uU7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un groupe de volumes permet de vérifier son nom, le type d&#039;accè aux données (écriture, lecture), nombre maximum de volumes logiques créables dans ce groupe de volume, sa taille en PE et LE, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# vgdisplay volume1&lt;br /&gt;
 --- Volume group ---&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 VG Access             read/write&lt;br /&gt;
 VG Status             available/resizable&lt;br /&gt;
 VG #                  0&lt;br /&gt;
 MAX LV                256&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 Open LV               0&lt;br /&gt;
 MAX LV Size           255.99 GB&lt;br /&gt;
 Max PV                256&lt;br /&gt;
 Cur PV                1&lt;br /&gt;
 Act PV                1&lt;br /&gt;
 VG Size               5.59 GB&lt;br /&gt;
 PE Size               4 MB&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Alloc PE / Size       150 / 600 MB&lt;br /&gt;
 Free  PE / Size       1280 / 5 GB&lt;br /&gt;
 VG UUID               5XxOO1-ZNl8-zocw-6dR5-44LX-oyYc-MYHpN2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin la description d&#039;un volume logique contient son nom, le type d&#039;accès aux données, sa taille...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# lvdisplay /dev/volume1/part1&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
 LV Name                /dev/volume1/part1&lt;br /&gt;
 VG Name                volume1&lt;br /&gt;
 LV Write Access        read/write&lt;br /&gt;
 LV Status              available&lt;br /&gt;
 LV #                   1&lt;br /&gt;
 # open                 0&lt;br /&gt;
 LV Size                600 MB&lt;br /&gt;
 Current LE             150&lt;br /&gt;
 Allocated LE           150&lt;br /&gt;
 Allocation             next free&lt;br /&gt;
 Read ahead sectors     1024&lt;br /&gt;
 Block device           58:0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commandes complémentaires =&lt;br /&gt;
&lt;br /&gt;
Jusqu&#039;à maintenant, nous avons vu comment créer des strutures LVM et obtenir de l&#039;information. Nous allons voir maintenant d&#039;autres opérations réalisables pour la gestion du partitionnemement et qui mettent en évidence toute la souplesse apportée par le LVM en la matière : agrandir ou réduire un groupe de volume, redimensionner un volume logique.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un groupe de volumes ==&lt;br /&gt;
&lt;br /&gt;
Un groupe de volumes est constitué d&#039;un ou plusieurs volumes physiques. Il est possible à tout moment d&#039;ajouter ou retirer un ou plusieurs volumes physiques afin d&#039;augmenter ou diminuer l&#039;espace disponible d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Les commandes sont respectivement vgextend et vgreduce :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;vgextend nom_volume /dev/hdxx&amp;lt;br /&amp;gt; vgreduce nom_volume /dev/hdxx&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&lt;br /&gt;
&lt;br /&gt;
nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; /dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&lt;br /&gt;
&lt;br /&gt;
Vous devez augmenter l&#039;espace du groupe de volume volume1 de 6 Go. Pour cela vous disposez d&#039;un disque que vous allez ajouter. Ci-dessous les étapes à réaliser :&lt;br /&gt;
&lt;br /&gt;
# création du volume physique à partir de hdb2 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
# ajout de hdb2 au groupe de volumes volume1 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgextend volume1 /dev/hdb2 &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgextend -- INFO:maximum logical volume size is 255.99 Gigabyte vgextend&amp;lt;br /&amp;gt; --doing automatic backup of volume group &amp;quot;volume1&amp;quot; vgextend&amp;lt;br /&amp;gt; --volume group &amp;quot;volume1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On pourra vérifier la bonne réalisation de l&#039;opération grâce à la commande vgdisplay.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un volume logique ==&lt;br /&gt;
&lt;br /&gt;
De la même façon, il est possible de diminuer ou augmenter la taille d&#039;un volume logique au moyen des commandes lvreduce et lvextend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;lvextend -L taille /dev/nom_volume/vol_logique&amp;lt;br /&amp;gt; vreduce -L taille /dev/nom_volume/vol_logique &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&amp;lt;br /&amp;gt; nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&amp;lt;br /&amp;gt; -L taille : taille finale du volume logique (aprè redimensionnement)&lt;br /&gt;
&lt;br /&gt;
Les étapes à respecter pour redimensionner un volume logique :&lt;br /&gt;
&lt;br /&gt;
# démontage du système de fichier (commande umount) &lt;br /&gt;
# réduction / augmentation de la taille du système de fichiers: on utilisera pour cela un utilitaire fourni dans le package LVM &lt;br /&gt;
# réduction / augmentation de la taille du volume logique &lt;br /&gt;
# remontage du système de fichiers &lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut augmenter l&#039;espace du volume logique part1 en passant de 600 à 800 Mo , il ne nous restera plus qu&#039;à proceder de la maniere suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvextend -L 800 /dev/volume1/part1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvextend -- extending logical volume &amp;quot;/dev/volume1/part1&amp;quot; to 800 MB&amp;lt;br /&amp;gt; lvextend -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvextend -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Là encore on pourra vérifier le bon déroulement de l&#039;opération grâce aux commandes lvdisplay pour le volume logique et df pour le système de fichiers. Les remarques ci-dessus sont une description générale de l&#039;opération. Ces étapes peuvent toutefois varier en fonction du système de fichiers utilisé. Certains procurent en effet la possibilité d&#039;effectuer les opérations de redimensionnement &amp;quot;à chaud&amp;quot; c&#039;est-à-dire sans démontage. Ci-contre un tableau comparatif des différents systèmes de fichiers les plus couramment rencontrés (Tableau 1)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tableau 1 : manipulation des systèmes de fichiers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;90%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Système de fichiers&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | diminution&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Augmentation&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Utilitaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ext3&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | e2fsprogs (resize2fs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ReiserFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | reiserfsprogsv (resize_reiserfs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | XFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | impossible&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | xfsprogs (xfs_growfs)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Une fonction particulière du LVM : la réalisation de snapshots ==&lt;br /&gt;
&lt;br /&gt;
La difficulté fréquemment rencontrée pour la réalisation de sauvegardes est de disposer de données cohérentes. Cela implique parfois d&#039;arrêter un ou plusieurs services comme dans le cas des bases de données. Le LVM apporte un élément de réponse avec la possibilité de créer des snapshots. Il s&#039;agit d&#039;image à un moment t des données situées sur un volume logique. Le volume de snapshot ne nécessite pas autant d&#039;espace que le volume initial dans la mesure où il ne contiendra réellement que les métadatas concernant les données à sauvegarder.&lt;br /&gt;
&lt;br /&gt;
== Autres commandes ==&lt;br /&gt;
&lt;br /&gt;
Cet article n&#039;abord era pas le détail de toutes les commandes, qui sont plutôt simples à utiliser une fois que les concepts de base du LVM sont compris. Dans le tableau ci-aprè une liste de commandes utilisables et la description rapide de leur rôle. Voir le man de la commande pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commandes générales&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* lvmcreate_initrd : création d&#039;une image initrd lorsque le système utilise le LVM&lt;br /&gt;
* lvmdiskscan : scanner l&#039;ensemble des disques et partitions pour éditer une description de l&#039;espace&lt;br /&gt;
* vgscan : création de /etc/lvmtab et /etc/lvmtab.d&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes physiques&#039;&#039;&#039;&lt;br /&gt;
* pvchange : changer les attributs d&#039;un PV&lt;br /&gt;
* pvcreate : création d&#039;un PV&lt;br /&gt;
* pvdata : afficher des informations de debug&lt;br /&gt;
* pvdisplay : afficher des informations d&#039;un PV&lt;br /&gt;
* pvscan : lister tous les PV existant sur tous les disques&lt;br /&gt;
&#039;&#039;&#039;Gestion des groupes de volumes&#039;&#039;&#039;&lt;br /&gt;
* vgcfgbackup : sauvegarder la VGDA&lt;br /&gt;
* vgcfgrestore : restaurer la VGDA&lt;br /&gt;
* vgchange : changer les attributs d&#039;un VG&lt;br /&gt;
* vgck : vérification de la VGDA&lt;br /&gt;
* vgcreate : créer un VG&lt;br /&gt;
* vgdisplay : voir les informations&lt;br /&gt;
* vgexport : désactiver un VG pour pouvoir extraire les PV&lt;br /&gt;
* vgimport : activer et déclarer un VG sur le système&lt;br /&gt;
* vgextend : ajouter un ou plusieurs PV dans un VG&lt;br /&gt;
* vgmerge : fusionner deux VG&lt;br /&gt;
* vgmknodes : recréer /dev/nom_volume et le fichier spécial group&lt;br /&gt;
* vgreduce : extraire un ou plusieurs PV d&#039;un VG&lt;br /&gt;
* vgremove : supprimer un VG&lt;br /&gt;
* vgrename : renommer un VG&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes logiques&#039;&#039;&#039;&lt;br /&gt;
* lvcreate : création d&#039;un VL lvchange : modification des attributs d&#039;un VL&lt;br /&gt;
* lvdisplay : voir les informations d&#039;un VL&lt;br /&gt;
* lvextend : augmenter la taille d&#039;un VL&lt;br /&gt;
* lvreduce : réduire la taille d&#039;un VL&lt;br /&gt;
* lvremove : supprimer un VL&lt;br /&gt;
* lvrename : renommer un VL&lt;br /&gt;
* lvscan : recherche de tous les VL existant &lt;br /&gt;
= Utilisation pratique du LVM dans la gestion de l&#039;espace =&lt;br /&gt;
Vous diposez d&#039;un groupe de volume dans lequel vous n&#039;avez plus d&#039;espace disponible. Pour pouvoir augmenter un des volumes logiques, il va donc falloir ajouter un disque au groupe de volume. Comme pour tout élément du LVM, la première étape consiste à le transformer en volume physique (&amp;quot;pvcreate&amp;quot;). Puis on va insérer le nouveau volume physique dans le groupe de volume au moyen de la commande &amp;quot;vgextend&amp;quot;. C&#039;est tout !&lt;br /&gt;
Plus complexe, vous pouvez, pour quelle que raison que ce soit, envisager de déplacer un groupe de volume d&#039;une machine à une autre. Si une sauvegarde de données est toujours conseillée par sécurité (mais comme vous êtes prévoyant vous en disposez de toute façon ;)), l&#039;opération va consister à désactiver le groupe de volume à déplacer, enregistrer les métadatas le concernant. Puis on va réinjecter ces métadatas sur la machine destinataire et réactiver le groupe de volume sur cette machine. Les données seront alors accessibles de la même façon que sur l&#039;ancienne machine (sous réserve de conserver les mêmes points de montage).&lt;br /&gt;
Ci-dessous les étapes effectuées :&lt;br /&gt;
*# désactivation du groupe de volume (&amp;quot;datas&amp;quot;) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange n datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# sauvegarde des métadatas du groupe de volume :&amp;lt;br /&amp;gt; # vgcfgbackup datas &lt;br /&gt;
*# retrait du groupe de volume de la configuration système :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgexport datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# arrêt de la première machine, transfert des disques dans la deuxième et redémarrage des machines &lt;br /&gt;
*# restauration des métadatas concernant ce groupe de volume sur la nouvelle machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgcfgrestore -f datas.conf /dev/hda3&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # vgcfgrestore -f datas.conf /dev/hda4&amp;lt;/code&amp;gt; si les volumes physiques sont hda3 et hda4. &lt;br /&gt;
*# déclaration du groupe de volume sur la machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgimport datas /dev/hda3 /dev/hda4&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# activation du groupe de volume importé :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange y datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Il ne vous reste plus qu&#039;à modifier en conséquence /etc/fstab pour le montage automatique des systèmes de fichiers contenus dans le groupe de volume.&lt;br /&gt;
= Evolution du LVM : LVM 2 =&lt;br /&gt;
Avec la sortie du noyau 2.6, le LVM a été revu et corrigé et la version LVM2 est disponible de base avec ce noyau. Il est possible de l&#039;utiliser avec un noyau 2.4.x moyennant recompilation de ce même noyau.&lt;br /&gt;
== Le device-mapper ==&lt;br /&gt;
Le driver du LVM a été complètement réécrit, ce qui lui procure encore plus d&#039;efficacité et de souplesse. La grande nouveauté réside dans l&#039;utilisation de ce driver, utilisé pour gérer la couche d&#039;abstraction nécessaire dans le cadre de la gestion de volumes logiques. Cette couche d&#039;abstraction a pour fonction principale de réaliser le mapping résultant de l&#039;agrégat par bandes (stripping) des périphériques physiques utilisés.&lt;br /&gt;
Le device-mapper définit les nouveaux périphériques de bloc composés de tranches de secteurs de périphériques physiques existant. Le mapping réalisé prend la forme suivante :&lt;br /&gt;
&amp;lt;start &amp;gt; &amp;lt; length &amp;gt; &amp;lt; target &amp;gt; [ &amp;lt; target args...&amp;gt;]&lt;br /&gt;
Les targets peuvent être de plusieurs natures :&lt;br /&gt;
** linear : c&#039;est le cas le plus couramment utilisé dans le LVM. Les arguments nécessaires seront alors le device utilisé et le secteur de début.&lt;br /&gt;
** stripped : on utilisera cette cible lorsque l&#039;on réalise du stripping avec le LVM. Les arguments seront alors le nombre de stripes et leur taille, puis les paires device name / secteurs. &lt;br /&gt;
** error : toutes les I/O sur les secteurs ainsi marquées sont définies en erreur. &lt;br /&gt;
** snapshot : permet de réaliser des snapshots asynchrones grâce au LVM. &lt;br /&gt;
** mirror : permet d&#039;implémenter les éléments nécessaires à l&#039;exécution de la commande pvmove. &lt;br /&gt;
== Utilisation d&#039;un arbre binaire ==&lt;br /&gt;
Pour réaliser le mapping, un [http://fr.wikipedia.org/wiki/Arbre_binaire arbre binaire] a été utilisé, ceci afin de rendre la lecture de la table plus rapide et donc le LVM plus efficace.&lt;br /&gt;
== Une plus grande configurabilité ==&lt;br /&gt;
LVM2 peut fonctionner sans ajout de fichier de configuration mais l&#039;emploi de celui-ci permet d&#039;optimiser ses performances. Un certain nombre d&#039;éléments peuvent ainsi être paramétrés :&lt;br /&gt;
** les devices à utiliser pour réaliser le LVM, ce qui permet d&#039;éviter des scans de périphériques inutiles et qui nuisent à la performance (ex : lecteur de CD-ROM). A cela, on ajoute la gestion d&#039;un système de cache contenant ces informations qui permet d&#039;accroitre encore plus l&#039;efficacité. &lt;br /&gt;
** possibilité de déterminer l&#039;emplacement des fichiers spéciaux des groupes volumes &lt;br /&gt;
** possibilité de disposer de logs configurables (taille, contenu, emplacement, ...) &lt;br /&gt;
** paramétrage des backups de la configuration existante et de l&#039;archivage des anciennes configuration du LVM (métadatas) &lt;br /&gt;
** définition du type de LVM employé par défaut (1 ou 2), même s&#039;il est possible dans la compilation de n&#039;inclure que la gestion du LVM2, dans le cas où la gestion de la compatibilité descendante n&#039;est pas nécessaire. &lt;br /&gt;
** définition du nombre de copies de secours des métadatas sur un volume physique, un peu à l&#039;image des copies des superblocs sur le système de fichiers de type ext2. &lt;br /&gt;
== Compatibilité LVM1 / LVM2 ==&lt;br /&gt;
Il est possible d&#039;utiliser conjointement LVM1 et 2 sur un même système, et/ou de convertir du LVM 1 en 2 et inversement.&lt;br /&gt;
On peut effectivement utiliser sur un même système les deux versions de LVM, à condition que ce ne soit pas dans le même groupe de volumes. Les commandes LVM ont en effet un commutateur supplémentaire, -M, qui permet de faire ce choix. (-M 1 ou -M 2)&lt;br /&gt;
D&#039;autre part, la comande vgconvert permet la conversion des métadatas pour migrer de LVM1 à LVM2&lt;br /&gt;
== Autre ==&lt;br /&gt;
LVM2 permet d&#039;assouplir encore plus la gestion de l&#039;espace, dans la manipulation des volumes logiques. La commande lvcreate par exemple donne maintenant la possibilité de choisir le périphériques voire la tranche de PE à utiliser.&lt;br /&gt;
&lt;br /&gt;
= En conclusion... =&lt;br /&gt;
Voilà donc un outil de plus qui fait qu&#039;un système Linux peut être véritablement efficace et optimiser la disponibilité d&#039;un serveur en production. L&#039;outil LVM peut également être utilisé avantageusement sur un poste personnel, pour s&#039;éviter les opérations fastidieuses liées à la gestion de l&#039;espace disque.&lt;br /&gt;
= Liens utiles =&lt;br /&gt;
** HOWTO LVM : http://tldp.org/HOWTO/LVM-HOWTO &lt;br /&gt;
** La principale mailing-liste d&#039;aide : http://lists.sistina.com/mailman/listinfo &lt;br /&gt;
** Trouver les sources de LVM : http://www.sistina.com/products_lvm.htm &lt;br /&gt;
** Un autre projet de gestion de volumes logiques, EVMS : http://evms.sourceforge.net &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Anne le 29/10/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/10/2004, Anne&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4271</id>
		<title>LVM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4271"/>
		<updated>2005-10-04T10:59:26Z</updated>

		<summary type="html">&lt;p&gt;Misc : remplace la mention du kernel 2.4 et distributions récentes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Administration système]]&lt;br /&gt;
= Le LVM (Logical Volume Manager) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Le LVM (Logical Volume Manager)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [mailto:anne at lea-linux point org Anne]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un des aspects cruciaux dans l&#039;administration d&#039;un serveur ou d&#039;une machine de bureau est la gestion de l&#039;espace disque. Quoi de plus énervant que de voir l&#039;installation d&#039;une application échouer par manque d&#039;espace, ou un serveur rendu indisponible parce que le système de fichiers /var était plein du fait des fichiers de log ?&lt;br /&gt;
&lt;br /&gt;
Un outil apporte une solution satisfaisante et efficace : le LVM (Logical Volume Manager).&lt;br /&gt;
&lt;br /&gt;
= De l&#039;utilité du LVM =&lt;br /&gt;
&lt;br /&gt;
Le LVM ou Logical Volume Manager, est une technique créée à la base par IBM consistant à fournir la possibilité de modifier la taille des partitions sur les disques durs sans avoir besoin de tout reformater, voire de créer des partitions s&#039;étalant sur plusieurs disques. L&#039;objectif est ainsi d&#039;éviter arret et redemarrage d&#039;une machine en production. Cette technique est disponible sur linux depuis la version 2.4 du noyau (très exactement 2.3.47).&lt;br /&gt;
&lt;br /&gt;
Dans un partitionnement de type classique, à l&#039;aide des commandes fdisk, vous ne pouvez avoir que 4 partitions primaires pour chaque disque (en IDE) ou éventuellement 3 partitions primaires et une partition étendue qui contiendra des partitions logiques. L&#039;inconvénient de ce type de partitionnement est que lorsque vous souhaitez réduire la taille d&#039;une partition ou l&#039;augmenter, vous devez notamment disposer d&#039;outils spécifiques comme GNU-parted. De plus, le partitionnement ne se fera que disque par disque. Imaginez alors que vous souhaitiez ajouter un deuxième disque sur votre machine ou agrandir la taille de votre système de fichiers /home....&lt;br /&gt;
&lt;br /&gt;
Vous ne pourrez pas profiter de l&#039;espace disponible sur ce deuxième disque pour agrandir /home, à moins d&#039;y accrocher un nouveau système de fichiers. Agacant non ?&lt;br /&gt;
&lt;br /&gt;
Eh bien, LVM est là pour vous simplifier la vie.&lt;br /&gt;
&lt;br /&gt;
= Les composants du LVM =&lt;br /&gt;
&lt;br /&gt;
Le principe de fonctionnement de LVM est relativement simple. Il s&#039;agit en fait pour effectuer ce type de partitionnement, de s&#039;affranchir complètement des limites physiques du ou des disques disponibles. Les étapes ci-dessous en décrivent le fonctionnement. Le LVM s&#039;accompagne aussi d&#039;un certain nombre de termes techniques énoncés également ci-dessous.&lt;br /&gt;
&lt;br /&gt;
* Chaque disque dur ou partition va être transformé en &#039;&#039;&#039;volume physique&#039;&#039;&#039;. Cette opération consiste à découper le disque en tranches, appelées Physical Extents (PE). Par défaut (et convention), 1 PE = 4Mo.&lt;br /&gt;
* Chaque volume physique va être inséré dans un &#039;&#039;&#039;groupe de volumes&#039;&#039;&#039;. Celui-ci peut contenir un ou plusieurs volumes physiques (donc disques ou partitions). Un groupe de volume est un espace logique découpé en Logical Extents (LE) de même tailles que les physical extents, soit 4 Mo par défaut. &lt;br /&gt;
Le système va ensuite établir des &#039;&#039;&#039;pointeurs&#039;&#039;&#039; entre un physical extent et un logical extent comme indiqué sur le schéma ci-dessous. (schéma 1)&lt;br /&gt;
&#039;&#039;&#039;Schéma 1 : système des pointeurs LVM&#039;&#039;&#039;&lt;br /&gt;
[[Image:lvm-lvm4.jpg]]&lt;br /&gt;
* La dernière étape va consister à découper le groupe de volumes en partitions appelées &#039;&#039;&#039;volumes logiques&#039;&#039;&#039; dans lesquelles nous pourrons au choix, créer un système de fichier, une partition de swap. Ces partitions pourront être redimensionnées et/ou déplacées.&lt;br /&gt;
&lt;br /&gt;
Voici de manière shématique à quoi pourrait ressembler votre(vos) disque(s) après ce traitement (Schéma 2).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 2 : impact de LVM sur les disques durs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dans ce cas de figure, les deux disques hda et hdb ont été transformés en volumes physiques. Puis ils ont été insérés tous les deux dans un groupe de volumes appelé vg01. A partir de ce moment-là, il n&#039;est plus nécessaire de tenir compte des limites physiques des disques, en effet, nous n&#039;avons plus qu&#039;un espace, et un seul, de 36 GB (regroupant donc nos deux unités de disques hda et hdb). Le groupe de volumes a ensuite été découpé en 3 volumes logiques, nommées lvol01, lvol02, lvol03. On remarquera que lvol02 est composé de logical extents pointant sur des physical extents appartenant à hda et hdb. La dernière étape consistera à créer un système de fichiers dans chacun de ces volumes logiques.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarques&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* la taille que l&#039;on attribuera à un volume logique s&#039;exprime en nombre de logical extents. Ceux-ci sont indivisibles. Si sa taille est de 4 Mo et que je souhaite un volume logique de 14 Mo, le système attribuera 4 logical extents au volume logique, soit 16 Mo (arrondi au nombre de LE supérieur) &lt;br /&gt;
* la taille d&#039;un PE, et donc d&#039;un LE, est personnalisable lors de la création d&#039;un volume physique. &lt;br /&gt;
* les noms des groupes de volumes et volumes logiques sont personnalisables à leur création&lt;br /&gt;
* &#039;&#039;&#039;Attention : la création d&#039;un volume physique écrase toutes les données existantes sur la partition et/ou le disque !!&#039;&#039;&#039; &lt;br /&gt;
* L&#039;utilisation du LVM pour partitionner un disque entraine une perte d&#039;espace liée à l&#039;écriture des données nécessaires au système pour gérer le LVM (métadatas) : &lt;br /&gt;
** la PVRA : Physical Volume Reserved Area. Comme son nom l&#039;indique, elle contient les informations LVM spécifiques au volume physique. &lt;br /&gt;
** la VGRA : Volume Group Reserve Area. Elle contient les informations liées au groupe de volumes mais aussi aux volumes logiques contenus dans le groupe de volumes &lt;br /&gt;
** la BBRA : Bad Block Relocation Area : cette zone contient des informations liées au mécanisme de ré-allocation des blocs défectueux.  &lt;br /&gt;
&lt;br /&gt;
= Utiliser le LVM : ce dont il faut disposer =&lt;br /&gt;
&lt;br /&gt;
Pour être utilisé, le LVM nécessite de disposer du driver qui permet de générer la couche assurant le mapping ( la carte) entre périphérique physique et vue logique, des utilitaires pour manipuler ce mapping et des périphériques physiques.&lt;br /&gt;
&lt;br /&gt;
== Kernel et utilitaires ==&lt;br /&gt;
&lt;br /&gt;
Le LVM est fourni lors de l&#039;installation, sauf sur de trés vieux systémes ( noyau 2.2 ). Il faut quand même savoir que l&#039;implémentation du LVM se fait à deux niveaux :&lt;br /&gt;
&lt;br /&gt;
* le kernel &lt;br /&gt;
* les commandes nécessaires pour gérer les structures LVM. &lt;br /&gt;
&lt;br /&gt;
Au niveau du kernel lors de l&#039;installation ou de la recompilation du noyau, vous devez avoir intégré ou mis en module le driver LVM. Celui-ci se situe dans le menu de compilation &amp;quot;Multi-device support&amp;quot;. On peut le vérifier de la manière suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# grep -i lvm /boot/config&amp;lt;br /&amp;gt; # Multi-device support (RAID and LVM)&amp;lt;br /&amp;gt; CONFIG_BLK_DEV_LVM=m&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous devez également disposer des commandes nécessaires à l&#039;administration du LVM. Elles sont incluses dans le package lvm. Pour vérifier qu&#039;il est installé (dans le cas d&#039;une Mandriva) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# rpm -qa|grep lvm&amp;lt;br /&amp;gt; lvm-1.0.3-9&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les commandes passées en revue dans la suite de cet article font partie de ce paquetage.&lt;br /&gt;
&lt;br /&gt;
== Sur quels périphériques et systèmes de fichiers puis-je faire du LVM ? ==&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir utiliser le LVM, vous devez disposer soit d&#039;un disque vierge (rappel : la création d&#039;un volume physique entrainera la perte de données existantes) et/ou d&#039;une partition primaire vierge (moins utile mais faisable).&lt;br /&gt;
&lt;br /&gt;
Toutefois attention : vous ne pourrez pas mélanger partitionnement classique et LVM au sein d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Il est possible d&#039;utiliser le LVM pour tous vos systèmes de fichiers, exception faite de « /boot », qui pose quelques problèmes. Par contre il est tout à fait possible de l&#039;inclure sur un ou plusieurs volumes logiques. D&#039;ailleurs la plupart des distributions proposent aujourd&#039;hui cette option dè l&#039;installation. La seule contrainte est de prévoir le chargement du module LVM dès le démarrage. Pour ce faire, on créera une image initrd contenant le module LVM à l&#039;aide de la commande lvmcreate_initrd. On modifiera également en conséquence le fichier /etc/lilo.conf.&lt;br /&gt;
&lt;br /&gt;
= Configuration du LVM =&lt;br /&gt;
&lt;br /&gt;
Passons maintenant à la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour la mise en application, nous allons reprendre les 3 étapes énoncées ci-dessus. A chaque fois, je présenterai la commande correspondante à la création de l&#039;élément et une commande de recueil d&#039;informations pour vérifier que l&#039;opération a été correctement réalisée.&lt;br /&gt;
&lt;br /&gt;
== L&#039;arborescence du LVM ==&lt;br /&gt;
&lt;br /&gt;
A chaque élément du LVM correspond un fichier spécial dans /dev. Le volume physique est représenté par le fichier spécial du disque dur ou de la partition correspondant. Le groupe de volume dispose d&#039;un répertoire portant son nom dans lequel on trouvera le fichier spécial group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# ls -l /dev/datas/group&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; crw-r----- 1 root root 109, 1 jan 1 1970 group&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce répertoire, on trouvera également un fichier spécial par volume logique créé à l&#039;intérieur de ce groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# tree /dev/users /dev/public&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; /dev/users&amp;lt;br /&amp;gt; |--datas&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--private&amp;lt;br /&amp;gt; /dev/public&amp;lt;br /&amp;gt; |--ftp&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--web&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outre les fichiers spéciaux, on trouve également le fichier /etc/lvmtab et /etc/lvmtab.d. Ils contiennent la base de données manipulée par les commandes lvm.&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume physique ==&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre disque en volume physique. L&#039;opération s&#039;effectue en 3 temps :&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Préparation de l&#039;espace&#039;&#039;&#039; à utiliser avec le LVM : cette étape s&#039;effectue grâce à la commande fdisk. Vous allez devoir attribuer le type lvm à votre disque ou votre partition : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 root@pingu# fdisk /dev/hdb&lt;br /&gt;
 Commande (m pour aide) : p&lt;br /&gt;
 Disk /dev/hdb: 13.5 GB, 13578485760 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 1650 cylinders&lt;br /&gt;
 Units = cylindres of 16065 * 512 = 8225280 bytes&lt;br /&gt;
 Périphérique Amorce    Début       Fin    Blocs   Id  Système&lt;br /&gt;
 /dev/hdb1            1       730   5863693+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb2          731      1339   4891792+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb3         1340      1650   2498107+  8e  Linux LVM&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
# Ensuite, il est nécessaire de lancer &#039;&#039;&#039;la commande vgscan&#039;&#039;&#039; si vous utilisez LVM pour la première fois sur le disque dur ou la partition. La commande va créer notamment le fichier /etc/lvmtab et le répertoire /etc/lvmtab.d. &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgscan&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgscan -- reading all physical volumes (this may take a while...)&amp;lt;br /&amp;gt; vgscan -- &amp;quot;/etc/lvmtab&amp;quot; and &amp;quot;/etc/lvmtab.d&amp;quot; successfully created&amp;lt;br /&amp;gt; vgscan -- WARNING: This program does not do a VGDA backup of your volume group&amp;lt;/div&amp;gt; &lt;br /&gt;
# Création du volume physique : la commande est pvcreate (physical volume creation). &lt;br /&gt;
pvcreate [-f] &amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; -f : force la création du volume. A utiliser si le disque avait déjà été transformé en volume physique.&amp;lt;br /&amp;gt; /dev/hdxx : fichier spécial du disque ou de la partition à transformer en volume physique&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume physique à partir de hdb1&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un groupe de volume ==&lt;br /&gt;
&lt;br /&gt;
Une fois le volume physique créé, il faut alors insérer le ou les volumes physiques ainsi créés dans un groupe de volumes. On utilise la commande vgcreate :&lt;br /&gt;
&lt;br /&gt;
vgcreate &amp;lt;nom_du_volume&amp;gt;&amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; &amp;lt;nom_du_volume&amp;gt; : nom du groupe de volume - l&#039;opération crée alors le répertoire /dev/nom_du_volume contenant le fichier spécial group qui représente ce groupe de volumes.&amp;lt;br /&amp;gt; &amp;lt;/dev/hdxx&amp;gt; : fichier spécial du volume physique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un groupe de volumes nommé volume1 avec hdb1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgcreate volume1 /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgcreate -- INFO: using default physical extent size 4 MB&amp;lt;br /&amp;gt; vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte&amp;lt;br /&amp;gt; vgcreate -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; vgcreate -- volume group &amp;quot;volume1&amp;quot; successfully created and activated&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume logique ==&lt;br /&gt;
&lt;br /&gt;
Une fois le groupe de volume créé, on peut alors le découper en un ou plusieurs volumes logiques grâce à la commande lvcreate :&lt;br /&gt;
&lt;br /&gt;
lvcreate -L tailleK|M|G [-n nom] &amp;lt;nom_volume&amp;gt; où&amp;lt;br /&amp;gt; -L tailleK|M|G : taille du volume logique exprimable en Ko, Mo ou Go&amp;lt;br /&amp;gt; -n nom : nom du volume logique - l&#039;opération crée un fichier spécial portant ce nom pour le volume logique et sera placé dans le répertoire /dev/nom_volume&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nom_volume&amp;gt; : nom du groupe de volumes dans lequel sera créé le volume logique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume logique de 600 Mo nommé part1 dans le groupe de volume volume1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvcreate -L 600 -n part1 volume1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvcreate -- doing automatic backup of &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvcreate -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une particularité de la création d&#039;un volume logique est le choix du mapping entre les LE et les PE. Par défaut, ce mapping est effectué de manière linéaire. Il est possible également de réaliser du stripping(répartition des données sur un ou plusieurs diques), ce qui permet d&#039;améliorer le temps d&#039;accè aux données. Ci-dessous, ce schéma montre la différence de répartition des LE en fonction de ces 2 modes.&lt;br /&gt;
&lt;br /&gt;
Des options de la commande lvcreate permettent de donner le nombre de stripes (et donc de volumes physiques utilisés) et leur taille. (Schémas 4 et 5)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 4 : Volume logique en mode linéaire&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 5 : Volume logique en mode stripping&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Recueillir des informations sur le LVM =&lt;br /&gt;
&lt;br /&gt;
A tout moment il est possible de recueillir des informations sur les structures LVM : volume physique, groupe de volumes et volumes logiques. On utilisera pour cela respectivement les commandes pvdisplay, vgdisplay et lvdisplay. Ces commandes ne font en fait qu&#039;afficher dans un format lisible le contenu respectif de la PVRA, VGRA. Nous allons détailler les principales informations au moyen d&#039;exemples ci-dessous.&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un volume physique procure notamment le nom du volume physique, le nom du groupe de volume dans lequel est inséré le dit volume physique, sa taille, le nombre de volumes logiques contenus, la taille des physical extents, le nombre de PE contenus dans le volume physique, le nombre de PE libres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# pvdisplay /dev/hdb1&lt;br /&gt;
 --- Physical volume ---&lt;br /&gt;
 PV Name               /dev/hdb1&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 PV Size               5.59 GB [11727387 secs] /&lt;br /&gt;
   NOT usable 4.19 MB [LVM: 133 KB]&lt;br /&gt;
 PV#                   1&lt;br /&gt;
 PV Status             available&lt;br /&gt;
 Allocatable           yes&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 PE Size (KByte)       4096&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Free PE               1230&lt;br /&gt;
 Allocated PE          200&lt;br /&gt;
 PV UUID               DTWrWh-5oUP-KrdB-US55-c9wP-eKii-6z3uU7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un groupe de volumes permet de vérifier son nom, le type d&#039;accè aux données (écriture, lecture), nombre maximum de volumes logiques créables dans ce groupe de volume, sa taille en PE et LE, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# vgdisplay volume1&lt;br /&gt;
 --- Volume group ---&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 VG Access             read/write&lt;br /&gt;
 VG Status             available/resizable&lt;br /&gt;
 VG #                  0&lt;br /&gt;
 MAX LV                256&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 Open LV               0&lt;br /&gt;
 MAX LV Size           255.99 GB&lt;br /&gt;
 Max PV                256&lt;br /&gt;
 Cur PV                1&lt;br /&gt;
 Act PV                1&lt;br /&gt;
 VG Size               5.59 GB&lt;br /&gt;
 PE Size               4 MB&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Alloc PE / Size       150 / 600 MB&lt;br /&gt;
 Free  PE / Size       1280 / 5 GB&lt;br /&gt;
 VG UUID               5XxOO1-ZNl8-zocw-6dR5-44LX-oyYc-MYHpN2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin la description d&#039;un volume logique contient son nom, le type d&#039;accès aux données, sa taille...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# lvdisplay /dev/volume1/part1&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
 LV Name                /dev/volume1/part1&lt;br /&gt;
 VG Name                volume1&lt;br /&gt;
 LV Write Access        read/write&lt;br /&gt;
 LV Status              available&lt;br /&gt;
 LV #                   1&lt;br /&gt;
 # open                 0&lt;br /&gt;
 LV Size                600 MB&lt;br /&gt;
 Current LE             150&lt;br /&gt;
 Allocated LE           150&lt;br /&gt;
 Allocation             next free&lt;br /&gt;
 Read ahead sectors     1024&lt;br /&gt;
 Block device           58:0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commandes complémentaires =&lt;br /&gt;
&lt;br /&gt;
Jusqu&#039;à maintenant, nous avons vu comment créer des strutures LVM et obtenir de l&#039;information. Nous allons voir maintenant d&#039;autres opérations réalisables pour la gestion du partitionnemement et qui mettent en évidence toute la souplesse apportée par le LVM en la matière : agrandir ou réduire un groupe de volume, redimensionner un volume logique.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un groupe de volumes ==&lt;br /&gt;
&lt;br /&gt;
Un groupe de volumes est constitué d&#039;un ou plusieurs volumes physiques. Il est possible à tout moment d&#039;ajouter ou retirer un ou plusieurs volumes physiques afin d&#039;augmenter ou diminuer l&#039;espace disponible d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Les commandes sont respectivement vgextend et vgreduce :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;vgextend nom_volume /dev/hdxx&amp;lt;br /&amp;gt; vgreduce nom_volume /dev/hdxx&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&lt;br /&gt;
&lt;br /&gt;
nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; /dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&lt;br /&gt;
&lt;br /&gt;
Vous devez augmenter l&#039;espace du groupe de volume volume1 de 6 Go. Pour cela vous disposez d&#039;un disque que vous allez ajouter. Ci-dessous les étapes à réaliser :&lt;br /&gt;
&lt;br /&gt;
# création du volume physique à partir de hdb2 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
# ajout de hdb2 au groupe de volumes volume1 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgextend volume1 /dev/hdb2 &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgextend -- INFO:maximum logical volume size is 255.99 Gigabyte vgextend&amp;lt;br /&amp;gt; --doing automatic backup of volume group &amp;quot;volume1&amp;quot; vgextend&amp;lt;br /&amp;gt; --volume group &amp;quot;volume1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On pourra vérifier la bonne réalisation de l&#039;opération grâce à la commande vgdisplay.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un volume logique ==&lt;br /&gt;
&lt;br /&gt;
De la même façon, il est possible de diminuer ou augmenter la taille d&#039;un volume logique au moyen des commandes lvreduce et lvextend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;lvextend -L taille /dev/nom_volume/vol_logique&amp;lt;br /&amp;gt; vreduce -L taille /dev/nom_volume/vol_logique &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&amp;lt;br /&amp;gt; nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&amp;lt;br /&amp;gt; -L taille : taille finale du volume logique (aprè redimensionnement)&lt;br /&gt;
&lt;br /&gt;
Les étapes à respecter pour redimensionner un volume logique :&lt;br /&gt;
&lt;br /&gt;
# démontage du système de fichier (commande umount) &lt;br /&gt;
# réduction / augmentation de la taille du système de fichiers: on utilisera pour cela un utilitaire fourni dans le package LVM &lt;br /&gt;
# réduction / augmentation de la taille du volume logique &lt;br /&gt;
# remontage du système de fichiers &lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut augmenter l&#039;espace du volume logique part1 en passant de 600 à 800 Mo , il ne nous restera plus qu&#039;à proceder de la maniere suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvextend -L 800 /dev/volume1/part1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvextend -- extending logical volume &amp;quot;/dev/volume1/part1&amp;quot; to 800 MB&amp;lt;br /&amp;gt; lvextend -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvextend -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Là encore on pourra vérifier le bon déroulement de l&#039;opération grâce aux commandes lvdisplay pour le volume logique et df pour le système de fichiers. Les remarques ci-dessus sont une description générale de l&#039;opération. Ces étapes peuvent toutefois varier en fonction du système de fichiers utilisé. Certains procurent en effet la possibilité d&#039;effectuer les opérations de redimensionnement &amp;quot;à chaud&amp;quot; c&#039;est-à-dire sans démontage. Ci-contre un tableau comparatif des différents systèmes de fichiers les plus couramment rencontrés (Tableau 1)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tableau 1 : manipulation des systèmes de fichiers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;90%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Système de fichiers&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | diminution&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Augmentation&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Utilitaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ext3&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | e2fsprogs (resize2fs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ReiserFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | reiserfsprogsv (resize_reiserfs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | XFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | impossible&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | xfsprogs (xfs_growfs)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Une fonction particulière du LVM : la réalisation de snapshots ==&lt;br /&gt;
&lt;br /&gt;
La difficulté fréquemment rencontrée pour la réalisation de sauvegardes est de disposer de données cohérentes. Cela implique parfois d&#039;arrêter un ou plusieurs services comme dans le cas des bases de données. Le LVM apporte un élément de réponse avec la possibilité de créer des snapshots. Il s&#039;agit d&#039;image à un moment t des données situées sur un volume logique. Le volume de snapshot ne nécessite pas autant d&#039;espace que le volume initial dans la mesure où il ne contiendra réellement que les métadatas concernant les données à sauvegarder.&lt;br /&gt;
&lt;br /&gt;
== Autres commandes ==&lt;br /&gt;
&lt;br /&gt;
Cet article n&#039;abord era pas le détail de toutes les commandes, qui sont plutôt simples à utiliser une fois que les concepts de base du LVM sont compris. Dans le tableau ci-aprè une liste de commandes utilisables et la description rapide de leur rôle. Voir le man de la commande pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commandes générales&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* lvmcreate_initrd : création d&#039;une image initrd lorsque le système utilise le LVM&lt;br /&gt;
* lvmdiskscan : scanner l&#039;ensemble des disques et partitions pour éditer une description de l&#039;espace&lt;br /&gt;
* vgscan : création de /etc/lvmtab et /etc/lvmtab.d&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes physiques&#039;&#039;&#039;&lt;br /&gt;
* pvchange : changer les attributs d&#039;un PV&lt;br /&gt;
* pvcreate : création d&#039;un PV&lt;br /&gt;
* pvdata : afficher des informations de debug&lt;br /&gt;
* pvdisplay : afficher des informations d&#039;un PV&lt;br /&gt;
* pvscan : lister tous les PV existant sur tous les disques&lt;br /&gt;
&#039;&#039;&#039;Gestion des groupes de volumes&#039;&#039;&#039;&lt;br /&gt;
* vgcfgbackup : sauvegarder la VGDA&lt;br /&gt;
* vgcfgrestore : restaurer la VGDA&lt;br /&gt;
* vgchange : changer les attributs d&#039;un VG&lt;br /&gt;
* vgck : vérification de la VGDA&lt;br /&gt;
* vgcreate : créer un VG&lt;br /&gt;
* vgdisplay : voir les informations&lt;br /&gt;
* vgexport : désactiver un VG pour pouvoir extraire les PV&lt;br /&gt;
* vgimport : activer et déclarer un VG sur le système&lt;br /&gt;
* vgextend : ajouter un ou plusieurs PV dans un VG&lt;br /&gt;
* vgmerge : fusionner deux VG&lt;br /&gt;
* vgmknodes : recréer /dev/nom_volume et le fichier spécial group&lt;br /&gt;
* vgreduce : extraire un ou plusieurs PV d&#039;un VG&lt;br /&gt;
* vgremove : supprimer un VG&lt;br /&gt;
* vgrename : renommer un VG&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes logiques&#039;&#039;&#039;&lt;br /&gt;
* lvcreate : création d&#039;un VL lvchange : modification des attributs d&#039;un VL&lt;br /&gt;
* lvdisplay : voir les informations d&#039;un VL&lt;br /&gt;
* lvextend : augmenter la taille d&#039;un VL&lt;br /&gt;
* lvreduce : réduire la taille d&#039;un VL&lt;br /&gt;
* lvremove : supprimer un VL&lt;br /&gt;
* lvrename : renommer un VL&lt;br /&gt;
* lvscan : recherche de tous les VL existant &lt;br /&gt;
= Utilisation pratique du LVM dans la gestion de l&#039;espace =&lt;br /&gt;
Vous diposez d&#039;un groupe de volume dans lequel vous n&#039;avez plus d&#039;espace disponible. Pour pouvoir augmenter un des volumes logiques, il va donc falloir ajouter un disque au groupe de volume. Comme pour tout élément du LVM, la première étape consiste à le transformer en volume physique (&amp;quot;pvcreate&amp;quot;). Puis on va insérer le nouveau volume physique dans le groupe de volume au moyen de la commande &amp;quot;vgextend&amp;quot;. C&#039;est tout !&lt;br /&gt;
Plus complexe, vous pouvez, pour quelle que raison que ce soit, envisager de déplacer un groupe de volume d&#039;une machine à une autre. Si une sauvegarde de données est toujours conseillée par sécurité (mais comme vous êtes prévoyant vous en disposez de toute façon ;)), l&#039;opération va consister à désactiver le groupe de volume à déplacer, enregistrer les métadatas le concernant. Puis on va réinjecter ces métadatas sur la machine destinataire et réactiver le groupe de volume sur cette machine. Les données seront alors accessibles de la même façon que sur l&#039;ancienne machine (sous réserve de conserver les mêmes points de montage).&lt;br /&gt;
Ci-dessous les étapes effectuées :&lt;br /&gt;
*# désactivation du groupe de volume (&amp;quot;datas&amp;quot;) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange n datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# sauvegarde des métadatas du groupe de volume :&amp;lt;br /&amp;gt; # vgcfgbackup datas &lt;br /&gt;
*# retrait du groupe de volume de la configuration système :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgexport datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# arrêt de la première machine, transfert des disques dans la deuxième et redémarrage des machines &lt;br /&gt;
*# restauration des métadatas concernant ce groupe de volume sur la nouvelle machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgcfgrestore -f datas.conf /dev/hda3&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # vgcfgrestore -f datas.conf /dev/hda4&amp;lt;/code&amp;gt; si les volumes physiques sont hda3 et hda4. &lt;br /&gt;
*# déclaration du groupe de volume sur la machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgimport datas /dev/hda3 /dev/hda4&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# activation du groupe de volume importé :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange y datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Il ne vous reste plus qu&#039;à modifier en conséquence /etc/fstab pour le montage automatique des systèmes de fichiers contenus dans le groupe de volume.&lt;br /&gt;
= Evolution du LVM : LVM 2 =&lt;br /&gt;
Avec la sortie du noyau 2.6, le LVM a été revu et corrigé et la version LVM2 est disponible de base avec ce noyau. Il est possible de l&#039;utiliser avec un noyau 2.4.x moyennant recompilation de ce même noyau.&lt;br /&gt;
== Le device-mapper ==&lt;br /&gt;
Le driver du LVM a été complètement réécrit, ce qui lui procure encore plus d&#039;efficacité et de souplesse. La grande nouveauté réside dans l&#039;utilisation de ce driver, utilisé pour gérer la couche d&#039;abstraction nécessaire dans le cadre de la gestion de volumes logiques. Cette couche d&#039;abstraction a pour fonction principale de réaliser le mapping résultant de l&#039;agrégat par bandes (stripping) des périphériques physiques utilisés.&lt;br /&gt;
Le device-mapper définit les nouveaux périphériques de bloc composés de tranches de secteurs de périphériques physiques existant. Le mapping réalisé prend la forme suivante :&lt;br /&gt;
&amp;lt;start &amp;gt; &amp;lt; length &amp;gt; &amp;lt; target &amp;gt; [ &amp;lt; target args...&amp;gt;]&lt;br /&gt;
Les targets peuvent être de plusieurs natures :&lt;br /&gt;
** linear : c&#039;est le cas le plus couramment utilisé dans le LVM. Les arguments nécessaires seront alors le device utilisé et le secteur de début.&lt;br /&gt;
** stripped : on utilisera cette cible lorsque l&#039;on réalise du stripping avec le LVM. Les arguments seront alors le nombre de stripes et leur taille, puis les paires device name / secteurs. &lt;br /&gt;
** error : toutes les I/O sur les secteurs ainsi marquées sont définies en erreur. &lt;br /&gt;
** snapshot : permet de réaliser des snapshots asynchrones grâce au LVM. &lt;br /&gt;
** mirror : permet d&#039;implémenter les éléments nécessaires à l&#039;exécution de la commande pvmove. &lt;br /&gt;
== Utilisation d&#039;un arbre binaire ==&lt;br /&gt;
Pour réaliser le mapping, un arbre binaire a été utilisé, ceci afin de rendre la lecture de la table plus rapide et donc le LVM plus efficace.&lt;br /&gt;
== Une plus grande configurabilité ==&lt;br /&gt;
LVM2 peut fonctionner sans ajout de fichier de configuration mais l&#039;emploi de celui-ci permet d&#039;optimiser ses performances. Un certain nombre d&#039;éléments peuvent ainsi être paramétrés :&lt;br /&gt;
** les devices à utiliser pour réaliser le LVM, ce qui permet d&#039;éviter des scans de périphériques inutiles et qui nuisent à la performance (ex : lecteur de CD-ROM). A cela, on ajoute la gestion d&#039;un système de cache contenant ces informations qui permet d&#039;accroitre encore plus l&#039;efficacité. &lt;br /&gt;
** possibilité de déterminer l&#039;emplacement des fichiers spéciaux des groupes volumes &lt;br /&gt;
** possibilité de disposer de logs configurables (taille, contenu, emplacement, ...) &lt;br /&gt;
** paramétrage des backups de la configuration existante et de l&#039;archivage des anciennes configuration du LVM (métadatas) &lt;br /&gt;
** définition du type de LVM employé par défaut (1 ou 2), même s&#039;il est possible dans la compilation de n&#039;inclure que la gestion du LVM2, dans le cas où la gestion de la compatibilité descendante n&#039;est pas nécessaire. &lt;br /&gt;
** définition du nombre de copies de secours des métadatas sur un volume physique, un peu à l&#039;image des copies des superblocs sur le système de fichiers de type ext2. &lt;br /&gt;
== Compatibilité LVM1 / LVM2 ==&lt;br /&gt;
Il est possible d&#039;utiliser conjointement LVM1 et 2 sur un même système, et/ou de convertir du LVM 1 en 2 et inversement.&lt;br /&gt;
On peut effectivement utiliser sur un même système les deux versions de LVM, à condition que ce ne soit pas dans le même groupe de volumes. Les commandes LVM ont en effet un commutateur supplémentaire, -M, qui permet de faire ce choix. (-M 1 ou -M 2)&lt;br /&gt;
D&#039;autre part, la comande vgconvert permet la conversion des métadatas pour migrer de LVM1 à LVM2&lt;br /&gt;
== Autre ==&lt;br /&gt;
LVM2 permet d&#039;assouplir encore plus la gestion de l&#039;espace, dans la manipulation des volumes logiques. La commande lvcreate par exemple donne maintenant la possibilité de choisir le périphériques voire la tranche de PE à utiliser.&lt;br /&gt;
= En conclusion... =&lt;br /&gt;
Voilà donc un outil de plus qui fait qu&#039;un système Linux peut être véritablement efficace et optimiser la disponibilité d&#039;un serveur en production. L&#039;outil LVM peut également être utilisé avantageusement sur un poste personnel, pour s&#039;éviter les opérations fastidieuses liées à la gestion de l&#039;espace disque.&lt;br /&gt;
= Liens utiles =&lt;br /&gt;
** HOWTO LVM : http://tldp.org/HOWTO/LVM-HOWTO &lt;br /&gt;
** La principale mailing-liste d&#039;aide : http://lists.sistina.com/mailman/listinfo &lt;br /&gt;
** Trouver les sources de LVM : http://www.sistina.com/products_lvm.htm &lt;br /&gt;
** Un autre projet de gestion de volumes logiques, EVMS : http://evms.sourceforge.net &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Anne le 29/10/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/10/2004, Anne&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4270</id>
		<title>LVM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=LVM&amp;diff=4270"/>
		<updated>2005-10-04T10:56:22Z</updated>

		<summary type="html">&lt;p&gt;Misc : mandrake =&amp;gt; mandriva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Administration système]]&lt;br /&gt;
= Le LVM (Logical Volume Manager) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Le LVM (Logical Volume Manager)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [mailto:anne at lea-linux point org Anne]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un des aspects cruciaux dans l&#039;administration d&#039;un serveur ou d&#039;une machine de bureau est la gestion de l&#039;espace disque. Quoi de plus énervant que de voir l&#039;installation d&#039;une application échouer par manque d&#039;espace, ou un serveur rendu indisponible parce que le système de fichiers /var était plein du fait des fichiers de log ?&lt;br /&gt;
&lt;br /&gt;
Un outil apporte une solution satisfaisante et efficace : le LVM (Logical Volume Manager).&lt;br /&gt;
&lt;br /&gt;
= De l&#039;utilité du LVM =&lt;br /&gt;
&lt;br /&gt;
Le LVM ou Logical Volume Manager, est une technique créée à la base par IBM consistant à fournir la possibilité de modifier la taille des partitions sur les disques durs sans avoir besoin de tout reformater, voire de créer des partitions s&#039;étalant sur plusieurs disques. L&#039;objectif est ainsi d&#039;éviter arret et redemarrage d&#039;une machine en production. Cette technique est disponible sur linux depuis la version 2.4 du noyau (très exactement 2.3.47).&lt;br /&gt;
&lt;br /&gt;
Dans un partitionnement de type classique, à l&#039;aide des commandes fdisk, vous ne pouvez avoir que 4 partitions primaires pour chaque disque (en IDE) ou éventuellement 3 partitions primaires et une partition étendue qui contiendra des partitions logiques. L&#039;inconvénient de ce type de partitionnement est que lorsque vous souhaitez réduire la taille d&#039;une partition ou l&#039;augmenter, vous devez notamment disposer d&#039;outils spécifiques comme GNU-parted. De plus, le partitionnement ne se fera que disque par disque. Imaginez alors que vous souhaitiez ajouter un deuxième disque sur votre machine ou agrandir la taille de votre système de fichiers /home....&lt;br /&gt;
&lt;br /&gt;
Vous ne pourrez pas profiter de l&#039;espace disponible sur ce deuxième disque pour agrandir /home, à moins d&#039;y accrocher un nouveau système de fichiers. Agacant non ?&lt;br /&gt;
&lt;br /&gt;
Eh bien, LVM est là pour vous simplifier la vie.&lt;br /&gt;
&lt;br /&gt;
= Les composants du LVM =&lt;br /&gt;
&lt;br /&gt;
Le principe de fonctionnement de LVM est relativement simple. Il s&#039;agit en fait pour effectuer ce type de partitionnement, de s&#039;affranchir complètement des limites physiques du ou des disques disponibles. Les étapes ci-dessous en décrivent le fonctionnement. Le LVM s&#039;accompagne aussi d&#039;un certain nombre de termes techniques énoncés également ci-dessous.&lt;br /&gt;
&lt;br /&gt;
* Chaque disque dur ou partition va être transformé en &#039;&#039;&#039;volume physique&#039;&#039;&#039;. Cette opération consiste à découper le disque en tranches, appelées Physical Extents (PE). Par défaut (et convention), 1 PE = 4Mo.&lt;br /&gt;
* Chaque volume physique va être inséré dans un &#039;&#039;&#039;groupe de volumes&#039;&#039;&#039;. Celui-ci peut contenir un ou plusieurs volumes physiques (donc disques ou partitions). Un groupe de volume est un espace logique découpé en Logical Extents (LE) de même tailles que les physical extents, soit 4 Mo par défaut. &lt;br /&gt;
Le système va ensuite établir des &#039;&#039;&#039;pointeurs&#039;&#039;&#039; entre un physical extent et un logical extent comme indiqué sur le schéma ci-dessous. (schéma 1)&lt;br /&gt;
&#039;&#039;&#039;Schéma 1 : système des pointeurs LVM&#039;&#039;&#039;&lt;br /&gt;
[[Image:lvm-lvm4.jpg]]&lt;br /&gt;
* La dernière étape va consister à découper le groupe de volumes en partitions appelées &#039;&#039;&#039;volumes logiques&#039;&#039;&#039; dans lesquelles nous pourrons au choix, créer un système de fichier, une partition de swap. Ces partitions pourront être redimensionnées et/ou déplacées.&lt;br /&gt;
&lt;br /&gt;
Voici de manière shématique à quoi pourrait ressembler votre(vos) disque(s) après ce traitement (Schéma 2).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 2 : impact de LVM sur les disques durs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
Dans ce cas de figure, les deux disques hda et hdb ont été transformés en volumes physiques. Puis ils ont été insérés tous les deux dans un groupe de volumes appelé vg01. A partir de ce moment-là, il n&#039;est plus nécessaire de tenir compte des limites physiques des disques, en effet, nous n&#039;avons plus qu&#039;un espace, et un seul, de 36 GB (regroupant donc nos deux unités de disques hda et hdb). Le groupe de volumes a ensuite été découpé en 3 volumes logiques, nommées lvol01, lvol02, lvol03. On remarquera que lvol02 est composé de logical extents pointant sur des physical extents appartenant à hda et hdb. La dernière étape consistera à créer un système de fichiers dans chacun de ces volumes logiques.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarques&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* la taille que l&#039;on attribuera à un volume logique s&#039;exprime en nombre de logical extents. Ceux-ci sont indivisibles. Si sa taille est de 4 Mo et que je souhaite un volume logique de 14 Mo, le système attribuera 4 logical extents au volume logique, soit 16 Mo (arrondi au nombre de LE supérieur) &lt;br /&gt;
* la taille d&#039;un PE, et donc d&#039;un LE, est personnalisable lors de la création d&#039;un volume physique. &lt;br /&gt;
* les noms des groupes de volumes et volumes logiques sont personnalisables à leur création&lt;br /&gt;
* &#039;&#039;&#039;Attention : la création d&#039;un volume physique écrase toutes les données existantes sur la partition et/ou le disque !!&#039;&#039;&#039; &lt;br /&gt;
* L&#039;utilisation du LVM pour partitionner un disque entraine une perte d&#039;espace liée à l&#039;écriture des données nécessaires au système pour gérer le LVM (métadatas) : &lt;br /&gt;
** la PVRA : Physical Volume Reserved Area. Comme son nom l&#039;indique, elle contient les informations LVM spécifiques au volume physique. &lt;br /&gt;
** la VGRA : Volume Group Reserve Area. Elle contient les informations liées au groupe de volumes mais aussi aux volumes logiques contenus dans le groupe de volumes &lt;br /&gt;
** la BBRA : Bad Block Relocation Area : cette zone contient des informations liées au mécanisme de ré-allocation des blocs défectueux.  &lt;br /&gt;
&lt;br /&gt;
= Utiliser le LVM : ce dont il faut disposer =&lt;br /&gt;
&lt;br /&gt;
Pour être utilisé, le LVM nécessite de disposer du driver qui permet de générer la couche assurant le mapping ( la carte) entre périphérique physique et vue logique, des utilitaires pour manipuler ce mapping et des périphériques physiques.&lt;br /&gt;
&lt;br /&gt;
== Kernel et utilitaires ==&lt;br /&gt;
&lt;br /&gt;
Le LVM, dans les distributions récentes (kernel 2.4), est fourni lors de l&#039;installation. Il faut quand même savoir que l&#039;implémentation du LVM se fait à deux niveaux :&lt;br /&gt;
&lt;br /&gt;
* le kernel &lt;br /&gt;
* les commandes nécessaires pour gérer les structures LVM. &lt;br /&gt;
&lt;br /&gt;
Au niveau du kernel lors de l&#039;installation ou de la recompilation du noyau, vous devez avoir intégré ou mis en module le driver LVM. Celui-ci se situe dans le menu de compilation &amp;quot;Multi-device support&amp;quot;. On peut le vérifier de la manière suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# grep -i lvm /boot/config&amp;lt;br /&amp;gt; # Multi-device support (RAID and LVM)&amp;lt;br /&amp;gt; CONFIG_BLK_DEV_LVM=m&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous devez également disposer des commandes nécessaires à l&#039;administration du LVM. Elles sont incluses dans le package lvm. Pour vérifier qu&#039;il est installé (dans le cas d&#039;une Mandriva) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;root@pingu# rpm -qa|grep lvm&amp;lt;br /&amp;gt; lvm-1.0.3-9&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les commandes passées en revue dans la suite de cet article font partie de ce paquetage.&lt;br /&gt;
&lt;br /&gt;
== Sur quels périphériques et systèmes de fichiers puis-je faire du LVM ? ==&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir utiliser le LVM, vous devez disposer soit d&#039;un disque vierge (rappel : la création d&#039;un volume physique entrainera la perte de données existantes) et/ou d&#039;une partition primaire vierge (moins utile mais faisable).&lt;br /&gt;
&lt;br /&gt;
Toutefois attention : vous ne pourrez pas mélanger partitionnement classique et LVM au sein d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Il est possible d&#039;utiliser le LVM pour tous vos systèmes de fichiers, exception faite de « /boot », qui pose quelques problèmes. Par contre il est tout à fait possible de l&#039;inclure sur un ou plusieurs volumes logiques. D&#039;ailleurs la plupart des distributions proposent aujourd&#039;hui cette option dè l&#039;installation. La seule contrainte est de prévoir le chargement du module LVM dès le démarrage. Pour ce faire, on créera une image initrd contenant le module LVM à l&#039;aide de la commande lvmcreate_initrd. On modifiera également en conséquence le fichier /etc/lilo.conf.&lt;br /&gt;
&lt;br /&gt;
= Configuration du LVM =&lt;br /&gt;
&lt;br /&gt;
Passons maintenant à la pratique.&lt;br /&gt;
&lt;br /&gt;
Pour la mise en application, nous allons reprendre les 3 étapes énoncées ci-dessus. A chaque fois, je présenterai la commande correspondante à la création de l&#039;élément et une commande de recueil d&#039;informations pour vérifier que l&#039;opération a été correctement réalisée.&lt;br /&gt;
&lt;br /&gt;
== L&#039;arborescence du LVM ==&lt;br /&gt;
&lt;br /&gt;
A chaque élément du LVM correspond un fichier spécial dans /dev. Le volume physique est représenté par le fichier spécial du disque dur ou de la partition correspondant. Le groupe de volume dispose d&#039;un répertoire portant son nom dans lequel on trouvera le fichier spécial group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# ls -l /dev/datas/group&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; crw-r----- 1 root root 109, 1 jan 1 1970 group&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce répertoire, on trouvera également un fichier spécial par volume logique créé à l&#039;intérieur de ce groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# tree /dev/users /dev/public&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; /dev/users&amp;lt;br /&amp;gt; |--datas&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--private&amp;lt;br /&amp;gt; /dev/public&amp;lt;br /&amp;gt; |--ftp&amp;lt;br /&amp;gt; |--group&amp;lt;br /&amp;gt; `--web&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Outre les fichiers spéciaux, on trouve également le fichier /etc/lvmtab et /etc/lvmtab.d. Ils contiennent la base de données manipulée par les commandes lvm.&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume physique ==&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre disque en volume physique. L&#039;opération s&#039;effectue en 3 temps :&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Préparation de l&#039;espace&#039;&#039;&#039; à utiliser avec le LVM : cette étape s&#039;effectue grâce à la commande fdisk. Vous allez devoir attribuer le type lvm à votre disque ou votre partition : &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 root@pingu# fdisk /dev/hdb&lt;br /&gt;
 Commande (m pour aide) : p&lt;br /&gt;
 Disk /dev/hdb: 13.5 GB, 13578485760 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 1650 cylinders&lt;br /&gt;
 Units = cylindres of 16065 * 512 = 8225280 bytes&lt;br /&gt;
 Périphérique Amorce    Début       Fin    Blocs   Id  Système&lt;br /&gt;
 /dev/hdb1            1       730   5863693+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb2          731      1339   4891792+  8e  Linux LVM&lt;br /&gt;
 /dev/hdb3         1340      1650   2498107+  8e  Linux LVM&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
# Ensuite, il est nécessaire de lancer &#039;&#039;&#039;la commande vgscan&#039;&#039;&#039; si vous utilisez LVM pour la première fois sur le disque dur ou la partition. La commande va créer notamment le fichier /etc/lvmtab et le répertoire /etc/lvmtab.d. &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgscan&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgscan -- reading all physical volumes (this may take a while...)&amp;lt;br /&amp;gt; vgscan -- &amp;quot;/etc/lvmtab&amp;quot; and &amp;quot;/etc/lvmtab.d&amp;quot; successfully created&amp;lt;br /&amp;gt; vgscan -- WARNING: This program does not do a VGDA backup of your volume group&amp;lt;/div&amp;gt; &lt;br /&gt;
# Création du volume physique : la commande est pvcreate (physical volume creation). &lt;br /&gt;
pvcreate [-f] &amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; -f : force la création du volume. A utiliser si le disque avait déjà été transformé en volume physique.&amp;lt;br /&amp;gt; /dev/hdxx : fichier spécial du disque ou de la partition à transformer en volume physique&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume physique à partir de hdb1&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un groupe de volume ==&lt;br /&gt;
&lt;br /&gt;
Une fois le volume physique créé, il faut alors insérer le ou les volumes physiques ainsi créés dans un groupe de volumes. On utilise la commande vgcreate :&lt;br /&gt;
&lt;br /&gt;
vgcreate &amp;lt;nom_du_volume&amp;gt;&amp;lt;/dev/hdxx&amp;gt; où&amp;lt;br /&amp;gt; &amp;lt;nom_du_volume&amp;gt; : nom du groupe de volume - l&#039;opération crée alors le répertoire /dev/nom_du_volume contenant le fichier spécial group qui représente ce groupe de volumes.&amp;lt;br /&amp;gt; &amp;lt;/dev/hdxx&amp;gt; : fichier spécial du volume physique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un groupe de volumes nommé volume1 avec hdb1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgcreate volume1 /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgcreate -- INFO: using default physical extent size 4 MB&amp;lt;br /&amp;gt; vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte&amp;lt;br /&amp;gt; vgcreate -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; vgcreate -- volume group &amp;quot;volume1&amp;quot; successfully created and activated&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Création d&#039;un volume logique ==&lt;br /&gt;
&lt;br /&gt;
Une fois le groupe de volume créé, on peut alors le découper en un ou plusieurs volumes logiques grâce à la commande lvcreate :&lt;br /&gt;
&lt;br /&gt;
lvcreate -L tailleK|M|G [-n nom] &amp;lt;nom_volume&amp;gt; où&amp;lt;br /&amp;gt; -L tailleK|M|G : taille du volume logique exprimable en Ko, Mo ou Go&amp;lt;br /&amp;gt; -n nom : nom du volume logique - l&#039;opération crée un fichier spécial portant ce nom pour le volume logique et sera placé dans le répertoire /dev/nom_volume&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nom_volume&amp;gt; : nom du groupe de volumes dans lequel sera créé le volume logique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Exemple&amp;lt;/u&amp;gt; : création d&#039;un volume logique de 600 Mo nommé part1 dans le groupe de volume volume1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvcreate -L 600 -n part1 volume1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvcreate -- doing automatic backup of &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvcreate -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une particularité de la création d&#039;un volume logique est le choix du mapping entre les LE et les PE. Par défaut, ce mapping est effectué de manière linéaire. Il est possible également de réaliser du stripping(répartition des données sur un ou plusieurs diques), ce qui permet d&#039;améliorer le temps d&#039;accè aux données. Ci-dessous, ce schéma montre la différence de répartition des LE en fonction de ces 2 modes.&lt;br /&gt;
&lt;br /&gt;
Des options de la commande lvcreate permettent de donner le nombre de stripes (et donc de volumes physiques utilisés) et leur taille. (Schémas 4 et 5)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 4 : Volume logique en mode linéaire&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma 5 : Volume logique en mode stripping&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:lvm-lvm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
= Recueillir des informations sur le LVM =&lt;br /&gt;
&lt;br /&gt;
A tout moment il est possible de recueillir des informations sur les structures LVM : volume physique, groupe de volumes et volumes logiques. On utilisera pour cela respectivement les commandes pvdisplay, vgdisplay et lvdisplay. Ces commandes ne font en fait qu&#039;afficher dans un format lisible le contenu respectif de la PVRA, VGRA. Nous allons détailler les principales informations au moyen d&#039;exemples ci-dessous.&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un volume physique procure notamment le nom du volume physique, le nom du groupe de volume dans lequel est inséré le dit volume physique, sa taille, le nombre de volumes logiques contenus, la taille des physical extents, le nombre de PE contenus dans le volume physique, le nombre de PE libres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# pvdisplay /dev/hdb1&lt;br /&gt;
 --- Physical volume ---&lt;br /&gt;
 PV Name               /dev/hdb1&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 PV Size               5.59 GB [11727387 secs] /&lt;br /&gt;
   NOT usable 4.19 MB [LVM: 133 KB]&lt;br /&gt;
 PV#                   1&lt;br /&gt;
 PV Status             available&lt;br /&gt;
 Allocatable           yes&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 PE Size (KByte)       4096&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Free PE               1230&lt;br /&gt;
 Allocated PE          200&lt;br /&gt;
 PV UUID               DTWrWh-5oUP-KrdB-US55-c9wP-eKii-6z3uU7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La description d&#039;un groupe de volumes permet de vérifier son nom, le type d&#039;accè aux données (écriture, lecture), nombre maximum de volumes logiques créables dans ce groupe de volume, sa taille en PE et LE, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# vgdisplay volume1&lt;br /&gt;
 --- Volume group ---&lt;br /&gt;
 VG Name               volume1&lt;br /&gt;
 VG Access             read/write&lt;br /&gt;
 VG Status             available/resizable&lt;br /&gt;
 VG #                  0&lt;br /&gt;
 MAX LV                256&lt;br /&gt;
 Cur LV                1&lt;br /&gt;
 Open LV               0&lt;br /&gt;
 MAX LV Size           255.99 GB&lt;br /&gt;
 Max PV                256&lt;br /&gt;
 Cur PV                1&lt;br /&gt;
 Act PV                1&lt;br /&gt;
 VG Size               5.59 GB&lt;br /&gt;
 PE Size               4 MB&lt;br /&gt;
 Total PE              1430&lt;br /&gt;
 Alloc PE / Size       150 / 600 MB&lt;br /&gt;
 Free  PE / Size       1280 / 5 GB&lt;br /&gt;
 VG UUID               5XxOO1-ZNl8-zocw-6dR5-44LX-oyYc-MYHpN2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin la description d&#039;un volume logique contient son nom, le type d&#039;accès aux données, sa taille...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# lvdisplay /dev/volume1/part1&lt;br /&gt;
 --- Logical volume ---&lt;br /&gt;
 LV Name                /dev/volume1/part1&lt;br /&gt;
 VG Name                volume1&lt;br /&gt;
 LV Write Access        read/write&lt;br /&gt;
 LV Status              available&lt;br /&gt;
 LV #                   1&lt;br /&gt;
 # open                 0&lt;br /&gt;
 LV Size                600 MB&lt;br /&gt;
 Current LE             150&lt;br /&gt;
 Allocated LE           150&lt;br /&gt;
 Allocation             next free&lt;br /&gt;
 Read ahead sectors     1024&lt;br /&gt;
 Block device           58:0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Commandes complémentaires =&lt;br /&gt;
&lt;br /&gt;
Jusqu&#039;à maintenant, nous avons vu comment créer des strutures LVM et obtenir de l&#039;information. Nous allons voir maintenant d&#039;autres opérations réalisables pour la gestion du partitionnemement et qui mettent en évidence toute la souplesse apportée par le LVM en la matière : agrandir ou réduire un groupe de volume, redimensionner un volume logique.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un groupe de volumes ==&lt;br /&gt;
&lt;br /&gt;
Un groupe de volumes est constitué d&#039;un ou plusieurs volumes physiques. Il est possible à tout moment d&#039;ajouter ou retirer un ou plusieurs volumes physiques afin d&#039;augmenter ou diminuer l&#039;espace disponible d&#039;un groupe de volumes.&lt;br /&gt;
&lt;br /&gt;
Les commandes sont respectivement vgextend et vgreduce :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;vgextend nom_volume /dev/hdxx&amp;lt;br /&amp;gt; vgreduce nom_volume /dev/hdxx&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&lt;br /&gt;
&lt;br /&gt;
nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; /dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&lt;br /&gt;
&lt;br /&gt;
Vous devez augmenter l&#039;espace du groupe de volume volume1 de 6 Go. Pour cela vous disposez d&#039;un disque que vous allez ajouter. Ci-dessous les étapes à réaliser :&lt;br /&gt;
&lt;br /&gt;
# création du volume physique à partir de hdb2 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# pvcreate /dev/hdb1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; pvcreate -- physical volume &amp;quot;/dev/hdb1&amp;quot; successfully created&amp;lt;/div&amp;gt;&lt;br /&gt;
# ajout de hdb2 au groupe de volumes volume1 &amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# vgextend volume1 /dev/hdb2 &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; vgextend -- INFO:maximum logical volume size is 255.99 Gigabyte vgextend&amp;lt;br /&amp;gt; --doing automatic backup of volume group &amp;quot;volume1&amp;quot; vgextend&amp;lt;br /&amp;gt; --volume group &amp;quot;volume1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On pourra vérifier la bonne réalisation de l&#039;opération grâce à la commande vgdisplay.&lt;br /&gt;
&lt;br /&gt;
== Redimensionner un volume logique ==&lt;br /&gt;
&lt;br /&gt;
De la même façon, il est possible de diminuer ou augmenter la taille d&#039;un volume logique au moyen des commandes lvreduce et lvextend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;lvextend -L taille /dev/nom_volume/vol_logique&amp;lt;br /&amp;gt; vreduce -L taille /dev/nom_volume/vol_logique &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où&amp;lt;br /&amp;gt; nom_volume : nom du groupe de volume à redimensionner&amp;lt;br /&amp;gt; dev/hdxx : volume physique à ajouter ou retirer du groupe de volumes&amp;lt;br /&amp;gt; -L taille : taille finale du volume logique (aprè redimensionnement)&lt;br /&gt;
&lt;br /&gt;
Les étapes à respecter pour redimensionner un volume logique :&lt;br /&gt;
&lt;br /&gt;
# démontage du système de fichier (commande umount) &lt;br /&gt;
# réduction / augmentation de la taille du système de fichiers: on utilisera pour cela un utilitaire fourni dans le package LVM &lt;br /&gt;
# réduction / augmentation de la taille du volume logique &lt;br /&gt;
# remontage du système de fichiers &lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut augmenter l&#039;espace du volume logique part1 en passant de 600 à 800 Mo , il ne nous restera plus qu&#039;à proceder de la maniere suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# lvextend -L 800 /dev/volume1/part1&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; lvextend -- extending logical volume &amp;quot;/dev/volume1/part1&amp;quot; to 800 MB&amp;lt;br /&amp;gt; lvextend -- doing automatic backup of volume group &amp;quot;volume1&amp;quot;&amp;lt;br /&amp;gt; lvextend -- logical volume &amp;quot;/dev/volume1/part1&amp;quot; successfully extended&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Là encore on pourra vérifier le bon déroulement de l&#039;opération grâce aux commandes lvdisplay pour le volume logique et df pour le système de fichiers. Les remarques ci-dessus sont une description générale de l&#039;opération. Ces étapes peuvent toutefois varier en fonction du système de fichiers utilisé. Certains procurent en effet la possibilité d&#039;effectuer les opérations de redimensionnement &amp;quot;à chaud&amp;quot; c&#039;est-à-dire sans démontage. Ci-contre un tableau comparatif des différents systèmes de fichiers les plus couramment rencontrés (Tableau 1)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tableau 1 : manipulation des systèmes de fichiers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;90%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Système de fichiers&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | diminution&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Augmentation&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Utilitaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ext3&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | e2fsprogs (resize2fs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | ReiserFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | démontage préalable&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | reiserfsprogsv (resize_reiserfs)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;15%&amp;quot; | XFS&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | impossible&lt;br /&gt;
| width=&amp;quot;22%&amp;quot; | opération on-line&lt;br /&gt;
| width=&amp;quot;42%&amp;quot; | xfsprogs (xfs_growfs)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Une fonction particulière du LVM : la réalisation de snapshots ==&lt;br /&gt;
&lt;br /&gt;
La difficulté fréquemment rencontrée pour la réalisation de sauvegardes est de disposer de données cohérentes. Cela implique parfois d&#039;arrêter un ou plusieurs services comme dans le cas des bases de données. Le LVM apporte un élément de réponse avec la possibilité de créer des snapshots. Il s&#039;agit d&#039;image à un moment t des données situées sur un volume logique. Le volume de snapshot ne nécessite pas autant d&#039;espace que le volume initial dans la mesure où il ne contiendra réellement que les métadatas concernant les données à sauvegarder.&lt;br /&gt;
&lt;br /&gt;
== Autres commandes ==&lt;br /&gt;
&lt;br /&gt;
Cet article n&#039;abord era pas le détail de toutes les commandes, qui sont plutôt simples à utiliser une fois que les concepts de base du LVM sont compris. Dans le tableau ci-aprè une liste de commandes utilisables et la description rapide de leur rôle. Voir le man de la commande pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commandes générales&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* lvmcreate_initrd : création d&#039;une image initrd lorsque le système utilise le LVM&lt;br /&gt;
* lvmdiskscan : scanner l&#039;ensemble des disques et partitions pour éditer une description de l&#039;espace&lt;br /&gt;
* vgscan : création de /etc/lvmtab et /etc/lvmtab.d&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes physiques&#039;&#039;&#039;&lt;br /&gt;
* pvchange : changer les attributs d&#039;un PV&lt;br /&gt;
* pvcreate : création d&#039;un PV&lt;br /&gt;
* pvdata : afficher des informations de debug&lt;br /&gt;
* pvdisplay : afficher des informations d&#039;un PV&lt;br /&gt;
* pvscan : lister tous les PV existant sur tous les disques&lt;br /&gt;
&#039;&#039;&#039;Gestion des groupes de volumes&#039;&#039;&#039;&lt;br /&gt;
* vgcfgbackup : sauvegarder la VGDA&lt;br /&gt;
* vgcfgrestore : restaurer la VGDA&lt;br /&gt;
* vgchange : changer les attributs d&#039;un VG&lt;br /&gt;
* vgck : vérification de la VGDA&lt;br /&gt;
* vgcreate : créer un VG&lt;br /&gt;
* vgdisplay : voir les informations&lt;br /&gt;
* vgexport : désactiver un VG pour pouvoir extraire les PV&lt;br /&gt;
* vgimport : activer et déclarer un VG sur le système&lt;br /&gt;
* vgextend : ajouter un ou plusieurs PV dans un VG&lt;br /&gt;
* vgmerge : fusionner deux VG&lt;br /&gt;
* vgmknodes : recréer /dev/nom_volume et le fichier spécial group&lt;br /&gt;
* vgreduce : extraire un ou plusieurs PV d&#039;un VG&lt;br /&gt;
* vgremove : supprimer un VG&lt;br /&gt;
* vgrename : renommer un VG&lt;br /&gt;
&#039;&#039;&#039;Gestion des volumes logiques&#039;&#039;&#039;&lt;br /&gt;
* lvcreate : création d&#039;un VL lvchange : modification des attributs d&#039;un VL&lt;br /&gt;
* lvdisplay : voir les informations d&#039;un VL&lt;br /&gt;
* lvextend : augmenter la taille d&#039;un VL&lt;br /&gt;
* lvreduce : réduire la taille d&#039;un VL&lt;br /&gt;
* lvremove : supprimer un VL&lt;br /&gt;
* lvrename : renommer un VL&lt;br /&gt;
* lvscan : recherche de tous les VL existant &lt;br /&gt;
= Utilisation pratique du LVM dans la gestion de l&#039;espace =&lt;br /&gt;
Vous diposez d&#039;un groupe de volume dans lequel vous n&#039;avez plus d&#039;espace disponible. Pour pouvoir augmenter un des volumes logiques, il va donc falloir ajouter un disque au groupe de volume. Comme pour tout élément du LVM, la première étape consiste à le transformer en volume physique (&amp;quot;pvcreate&amp;quot;). Puis on va insérer le nouveau volume physique dans le groupe de volume au moyen de la commande &amp;quot;vgextend&amp;quot;. C&#039;est tout !&lt;br /&gt;
Plus complexe, vous pouvez, pour quelle que raison que ce soit, envisager de déplacer un groupe de volume d&#039;une machine à une autre. Si une sauvegarde de données est toujours conseillée par sécurité (mais comme vous êtes prévoyant vous en disposez de toute façon ;)), l&#039;opération va consister à désactiver le groupe de volume à déplacer, enregistrer les métadatas le concernant. Puis on va réinjecter ces métadatas sur la machine destinataire et réactiver le groupe de volume sur cette machine. Les données seront alors accessibles de la même façon que sur l&#039;ancienne machine (sous réserve de conserver les mêmes points de montage).&lt;br /&gt;
Ci-dessous les étapes effectuées :&lt;br /&gt;
*# désactivation du groupe de volume (&amp;quot;datas&amp;quot;) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange n datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# sauvegarde des métadatas du groupe de volume :&amp;lt;br /&amp;gt; # vgcfgbackup datas &lt;br /&gt;
*# retrait du groupe de volume de la configuration système :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgexport datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# arrêt de la première machine, transfert des disques dans la deuxième et redémarrage des machines &lt;br /&gt;
*# restauration des métadatas concernant ce groupe de volume sur la nouvelle machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgcfgrestore -f datas.conf /dev/hda3&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # vgcfgrestore -f datas.conf /dev/hda4&amp;lt;/code&amp;gt; si les volumes physiques sont hda3 et hda4. &lt;br /&gt;
*# déclaration du groupe de volume sur la machine :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgimport datas /dev/hda3 /dev/hda4&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
*# activation du groupe de volume importé :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;# vgchange y datas &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Il ne vous reste plus qu&#039;à modifier en conséquence /etc/fstab pour le montage automatique des systèmes de fichiers contenus dans le groupe de volume.&lt;br /&gt;
= Evolution du LVM : LVM 2 =&lt;br /&gt;
Avec la sortie du noyau 2.6, le LVM a été revu et corrigé et la version LVM2 est disponible de base avec ce noyau. Il est possible de l&#039;utiliser avec un noyau 2.4.x moyennant recompilation de ce même noyau.&lt;br /&gt;
== Le device-mapper ==&lt;br /&gt;
Le driver du LVM a été complètement réécrit, ce qui lui procure encore plus d&#039;efficacité et de souplesse. La grande nouveauté réside dans l&#039;utilisation de ce driver, utilisé pour gérer la couche d&#039;abstraction nécessaire dans le cadre de la gestion de volumes logiques. Cette couche d&#039;abstraction a pour fonction principale de réaliser le mapping résultant de l&#039;agrégat par bandes (stripping) des périphériques physiques utilisés.&lt;br /&gt;
Le device-mapper définit les nouveaux périphériques de bloc composés de tranches de secteurs de périphériques physiques existant. Le mapping réalisé prend la forme suivante :&lt;br /&gt;
&amp;lt;start &amp;gt; &amp;lt; length &amp;gt; &amp;lt; target &amp;gt; [ &amp;lt; target args...&amp;gt;]&lt;br /&gt;
Les targets peuvent être de plusieurs natures :&lt;br /&gt;
** linear : c&#039;est le cas le plus couramment utilisé dans le LVM. Les arguments nécessaires seront alors le device utilisé et le secteur de début.&lt;br /&gt;
** stripped : on utilisera cette cible lorsque l&#039;on réalise du stripping avec le LVM. Les arguments seront alors le nombre de stripes et leur taille, puis les paires device name / secteurs. &lt;br /&gt;
** error : toutes les I/O sur les secteurs ainsi marquées sont définies en erreur. &lt;br /&gt;
** snapshot : permet de réaliser des snapshots asynchrones grâce au LVM. &lt;br /&gt;
** mirror : permet d&#039;implémenter les éléments nécessaires à l&#039;exécution de la commande pvmove. &lt;br /&gt;
== Utilisation d&#039;un arbre binaire ==&lt;br /&gt;
Pour réaliser le mapping, un arbre binaire a été utilisé, ceci afin de rendre la lecture de la table plus rapide et donc le LVM plus efficace.&lt;br /&gt;
== Une plus grande configurabilité ==&lt;br /&gt;
LVM2 peut fonctionner sans ajout de fichier de configuration mais l&#039;emploi de celui-ci permet d&#039;optimiser ses performances. Un certain nombre d&#039;éléments peuvent ainsi être paramétrés :&lt;br /&gt;
** les devices à utiliser pour réaliser le LVM, ce qui permet d&#039;éviter des scans de périphériques inutiles et qui nuisent à la performance (ex : lecteur de CD-ROM). A cela, on ajoute la gestion d&#039;un système de cache contenant ces informations qui permet d&#039;accroitre encore plus l&#039;efficacité. &lt;br /&gt;
** possibilité de déterminer l&#039;emplacement des fichiers spéciaux des groupes volumes &lt;br /&gt;
** possibilité de disposer de logs configurables (taille, contenu, emplacement, ...) &lt;br /&gt;
** paramétrage des backups de la configuration existante et de l&#039;archivage des anciennes configuration du LVM (métadatas) &lt;br /&gt;
** définition du type de LVM employé par défaut (1 ou 2), même s&#039;il est possible dans la compilation de n&#039;inclure que la gestion du LVM2, dans le cas où la gestion de la compatibilité descendante n&#039;est pas nécessaire. &lt;br /&gt;
** définition du nombre de copies de secours des métadatas sur un volume physique, un peu à l&#039;image des copies des superblocs sur le système de fichiers de type ext2. &lt;br /&gt;
== Compatibilité LVM1 / LVM2 ==&lt;br /&gt;
Il est possible d&#039;utiliser conjointement LVM1 et 2 sur un même système, et/ou de convertir du LVM 1 en 2 et inversement.&lt;br /&gt;
On peut effectivement utiliser sur un même système les deux versions de LVM, à condition que ce ne soit pas dans le même groupe de volumes. Les commandes LVM ont en effet un commutateur supplémentaire, -M, qui permet de faire ce choix. (-M 1 ou -M 2)&lt;br /&gt;
D&#039;autre part, la comande vgconvert permet la conversion des métadatas pour migrer de LVM1 à LVM2&lt;br /&gt;
== Autre ==&lt;br /&gt;
LVM2 permet d&#039;assouplir encore plus la gestion de l&#039;espace, dans la manipulation des volumes logiques. La commande lvcreate par exemple donne maintenant la possibilité de choisir le périphériques voire la tranche de PE à utiliser.&lt;br /&gt;
= En conclusion... =&lt;br /&gt;
Voilà donc un outil de plus qui fait qu&#039;un système Linux peut être véritablement efficace et optimiser la disponibilité d&#039;un serveur en production. L&#039;outil LVM peut également être utilisé avantageusement sur un poste personnel, pour s&#039;éviter les opérations fastidieuses liées à la gestion de l&#039;espace disque.&lt;br /&gt;
= Liens utiles =&lt;br /&gt;
** HOWTO LVM : http://tldp.org/HOWTO/LVM-HOWTO &lt;br /&gt;
** La principale mailing-liste d&#039;aide : http://lists.sistina.com/mailman/listinfo &lt;br /&gt;
** Trouver les sources de LVM : http://www.sistina.com/products_lvm.htm &lt;br /&gt;
** Un autre projet de gestion de volumes logiques, EVMS : http://evms.sourceforge.net &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Anne le 29/10/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/10/2004, Anne&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4269</id>
		<title>Préparer l&#039;installation</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4269"/>
		<updated>2005-10-04T10:39:13Z</updated>

		<summary type="html">&lt;p&gt;Misc : remplace mandrake par mandriva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installer Linux]]&lt;br /&gt;
= Préparation à l&#039;installation de Linux =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Préparation à l&#039;installation de Linux&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par Jean-Christophe sur la base du travail de Serge&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Cette partie traite de la préparation que vous et votre ordinateur devrez subir avant d&#039;installer Linux ;-)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Vérifier son matériel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Avertissement&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Linux ne supporte pas tous les matériels qui existent dans le commerce ou ailleurs. La faute en revient aux constructeurs qui développent des drivers en général uniquement pour Windows. Les drivers Linux sont généralement développés par des personnes qui possèdent un matériel qu&#039;ils souhaitent utiliser avec Linux ; cela n&#039;est possible que si le fabricant ne garde pas secrètes les spécifications de son matériel, ce qui est malheureusement encore souvent le cas. &amp;lt;span style=&amp;quot;color:#FF6666;&amp;quot;&amp;gt;Dans ce cas, je vous invite à boycotter et à faire boycotter ces fabricants afin de faire pression sur eux&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Prérequis&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Microprocesseur&#039;&#039;&#039; : Intel x86 à base de microprocesseur 386 minimum (ou compatible comme AMD, CYRIX, etc.) &amp;lt;br /&amp;gt; (Je ne traite ici que des plates-formes &amp;quot;compatibles IBM PC&amp;quot;) &amp;lt;br /&amp;gt; Il existe des versions de Linux pour le matériel plus vieux (286, etc.), mais cela dépasse le cadre de cette rubrique. &amp;lt;br /&amp;gt; Il existe aussi des distributions de Linux pour 680xx ([http://www.mklinux.org MkLinux]), PowerPC (Linux PPC, [http://www.debian.org/ports/powerpc debian PPC], [http://qa.mandriva.com/twiki/bin/view/Main/MdkPpcPort Mandriva PPC] ou [http://www.gentoo.org/doc/en/gentoo-ppc-install.xml Gentoo PPC]), [http://www.debian.org/ports/alpha Alpha], etc. &lt;br /&gt;
* &#039;&#039;&#039;Disque dur&#039;&#039;&#039; : prévoyez pour le système lui-même de l&#039;ordre de 3 Go pour une distribution assez récente, surtout si vous installez X Window (le sous-système graphique de Linux) avec des environnements de bureau de type [http://www.kde.org KDE] ou [http://www.gnome.org Gnome] (très à la mode dans les distributions actuelles). Prévoyez aussi environ 256 Mo supplémentaires pour le Swap (i.e. mémoire virtuelle, on en reparle [#partitions plus tard]). &amp;lt;br /&amp;gt; Avec ça, vous allez déjà pouvoir faire tourner plein de choses. Sachez cependant que des &amp;quot;mini distributions&amp;quot; (ou parmi les distributions &amp;quot;classiques&amp;quot;, la Slackware ; parmi les distributions light basé sur slackware, il existe [http://drinou.tuxfamily.org drinou-linux]) passent avec 100 ou 150 Mo de disque dur, mais là, pas question d&#039;avoir un système graphique (encore que ...), ni de grosses applications de style base de données, etc.&lt;br /&gt;
* &#039;&#039;&#039;Mémoire&#039;&#039;&#039; : prévoyez environ 128 à 256 Mo avec un système X (ça passe avec 64 Mo, mais avec les nouveaux environnements sous X ça risque de ramer) et plus vous en avez : mieux c&#039;est. &amp;lt;br /&amp;gt; Là aussi, c&#039;est juste une recommendation pour utiliser les logiciels les plus courants compris dans les distributions. Maintenant, si vous prévoyez de faire de votre serveur Linux une vraie usine à gaz (serveur WEB, base de données SQL, proxy serveur, OpenOffice.org...), prévoyez plus de mémoire. &amp;lt;br /&amp;gt; Si vous avez peu de mémoire, vous risquez de ne pas pouvoir installer l&#039;interface graphique Xorg. &lt;br /&gt;
&lt;br /&gt;
D&#039;une manière général, il vaut mieux éviter de recycler un vieux pc si vous voulez essayer un système linux. Bien que ça soit possible, c&#039;est loin d&#039;être idéal pour une première expérience, les distributions modernes venant par défaut avec la plupart des fonctionnalités activés pour un plus grand confort de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons de plus près le matériel supporté. Sachez qu&#039;une liste assez complète se trouve dans le Hardware-HOWTO ([http://www.linuxdoc.org/HOWTO/Hardware-HOWTO.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) sur le site TLDP ([http://www.tldp.org The Linux Documentation Project &amp;lt;&#039;&#039;www.tldp.org&amp;gt;&#039;&#039;]). &amp;lt;br /&amp;gt; En général :&lt;br /&gt;
&lt;br /&gt;
* Les &#039;&#039;&#039;disques durs&#039;&#039;&#039; SCSI et IDE ainsi que leurs contrôleurs sont supportés dans la plupart des cas. Pour faire fonctionner un disque Serial ATA vous risquez d&#039;avoir quelques problèmes avec l&#039;installation par défaut des distributions : prévoyez un disque IDE standard pour faire l&#039;installation et vous verrez après comment installer l&#039;éventuel driver Serial ATA.&lt;br /&gt;
* Les &#039;&#039;&#039;cartes réseau&#039;&#039;&#039; de type compatible NE2000 ISA ou PCI, ainsi que les cartes 3COM, HP, AMD... sont très bien supportées. En fait, la très grande majorité des cartes réseau fonctionnent sous Linux sans problème.&lt;br /&gt;
* Les &#039;&#039;&#039;modems&#039;&#039;&#039; compatibles HAYES (attention toutefois à certains US ROBOTICS) mais &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;évitez de préférence les &amp;quot;soft-modems&amp;quot; qui ne marchent que sous Windows&amp;lt;/span&amp;gt; (US Robotics Winmodem, modems internes PCI en général). En fait, la communauté Linux a développé des drivers pour la plupart de ces modems depuis quelques temps, cependant leur installation reste &amp;quot;pénible&amp;quot;, mais c&#039;est de moins en moins vrai. &amp;lt;br /&amp;gt; En bref, les modems &amp;lt;u&amp;gt;externes&amp;lt;/u&amp;gt; sur port série ainsi que les modems sur bus &amp;lt;u&amp;gt;ISA&amp;lt;/u&amp;gt; sont OK, évitez les modems internes PCI (mais vous devriez pourvoir faire fonctionner la plupart de ceux-ci moyennant un petit investissement technique). &amp;lt;br /&amp;gt; Les &#039;&#039;&#039;modems ADSL&#039;&#039;&#039; : ECI USB et Alcatel/Thomson SpeedTouch USB sont supportés, ainsi que la plupart des modem BeWAN. Tous les modems ADSL Ethernet sont supportés. &amp;lt;br /&amp;gt; Les fournisseurs d&#039;accès restent souvent un problème. Certains providers (AOL pour ne pas le citer) rendent la connexion depuis Linux très complexe, allant jusqu&#039;à tenter de faire interdire certains logiciels de connexion ([http://www.peng.apinc.org penggy]) alors qu&#039;ils n&#039;en fournissent pas !&lt;br /&gt;
* Les &#039;&#039;&#039;cartes graphiques&#039;&#039;&#039; : toutes les cartes anciennes de type S3, S3 Virge, Trident, Cirrus Logic, etc. passent sans problèmes, mais attention aux dernières cartes vidéo très à la mode sous Windows... Je vous conseille si vous voulez de bonnes performances des cartes de type Matrox G200, les 3Dfx (toute génération, même la Rush est paraît-il supportée). Les cartes vidéo évoluent très vite, et peu de constructeurs font des efforts pour X... Attention donc. Pour une liste à jour, allez sur le site de XFree (voir dans les liens). Au niveau de l&#039;accélération 3D, les cartes 3Dfx sont parfaitement supportées (voir la [../hardware/3dfx.php3 rubrique 3Dfx]), mais [http://www.xfree.org XFree 4.2.x] a changé la donne. La plupart des cartes NVidia fonctionnent sans problème en 2D et assez bien en 3D (pour peu que vous installiez les drivers &#039;closed-source&#039; de chez NVidia). La plupart des cartes de chez ATI fonctionnent aussi en 2D (y compris les Radeon 8500, ...) et certaines sont supportées en 3D accélérée par XFree 4.3.0.&lt;br /&gt;
* Carte &#039;&#039;&#039;série multiports&#039;&#039;&#039;.&lt;br /&gt;
* Carte &#039;&#039;&#039;tuner TV&#039;&#039;&#039; : les cartes à base de chipset BT8xx (848, 878...) sont très bien supportées (comme la Mìro PCTV). Voir la [../hardware/tv.php3 rubrique TV]. Les cartes ATI ALL in Wonder disposent aussi de drivers, voir [http://gatos.sourceforge.net gatos.sourceforge.net].&lt;br /&gt;
* De plus en plus de webcams sont supportées. Les webcams philips sont supportées par un driver spécifique, et beaucoup de webcams sont prises en charge par le module [http://alpha.dyndns.org/ov511 OV511] ou par le module [http://webcam.sourceforge.net CPiA].&lt;br /&gt;
* &#039;&#039;&#039;Scanner&#039;&#039;&#039; : évitez absolument les scanners parallèles (quoi que ca commence à bouger de ce côté-là, mais pour l&#039;instant ils ne sont pas très bien supportés). Par contre, beaucoup de scanner SCSI fonctionnent très bien (Voir la home page de [http://www.mostang.com/sane/ SANE] pour les scanners supportés), en particulier certains scanner n&#039;ont plus de driver pour Windows 2000 et XP mais en ont pour Linux ;-). De plus en plus de scanner USB sont également supportés.&lt;br /&gt;
* &#039;&#039;&#039;Imprimante&#039;&#039;&#039; : évitez certaines anciennes Hewlett Packard jet d&#039;encre qui sont en fait des win-imprimantes (ex : HP820 Cxi) ne fonctionnant que sous Windows 9x (même pas NT !). La plupart des imprimantes LASER fonctionnent très bien, mais des win-imprimantes y sont aussi apparues :-(.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;ZIP&#039;&#039;&#039; sur port parallèle, SCSI ou USB : aucun problème.&lt;br /&gt;
* Lecteur JAZ, ZIP, de bandes, etc... SCSI : tous très bien supportés, il n&#039;y a quasiment pas de configuration à faire.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;CD-ROM&#039;&#039;&#039; et &#039;&#039;&#039;graveur&#039;&#039;&#039; : les graveurs SCSI sont très faciles à configurer ; pour configurer un graveur IDE, allez voir la rubrique [/trucs/?aff_item=8 Trucs]. En bref, les graveurs SCSI ou IDE fonctionnent sous Linux sans problème, les distributions récentes les configurent automatiquement et vous n&#039;aurez aucun souci.&lt;br /&gt;
* Les périphériques &#039;&#039;&#039;USB&#039;&#039;&#039; sont relativement bien supporté quand les constructeurs fournissent des documentations techniques. Ainsi, les souris USB, les claviers USB (même ceux ayant des touches supplémentaires, voir : [http://lineak.sourceforge.net/ LinEAK]), les webcams, les modems ADSL, les appareils photos numériques, les USB-Keys, etc. sont très bien supportés, sauf exception...&lt;br /&gt;
* Les &#039;&#039;&#039;DVD&#039;&#039;&#039; sont maintenant très bien supportés, essentiellement par plusieurs logiciels : xine, mplayer ou oggle. Les graveurs de DVD sont eux aussi assez bien supportés (de la même façon que les graveurs de CD, et par les mêmes logiciels).&lt;br /&gt;
&lt;br /&gt;
Voilà, cette liste est très incomplète mais permet de débuter. Pour une liste plus complète de matériels supportés, allez voir le Hardware-HOWTO ([http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) pour les matériels spécifiques.&lt;br /&gt;
&lt;br /&gt;
== 2. Choisir sa distribution ==&lt;br /&gt;
&lt;br /&gt;
Il y a dans les listes de distribution et sur Usenet des débats acharnés où chacun cherche à prouver que &amp;quot;sa&amp;quot; distribution est meilleure que les autres. C&#039;est avant tout une question de goût personnel. Voici les principales distributions :&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;Distribution&#039;&#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot; |&lt;br /&gt;
&#039;&#039;Commentaire&#039;&#039;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&#039;&#039;type de&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;paquet&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Fedora&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
la plus connue. Assez simple à installer pour un débutant mais pas la plus simple à maintenir à mon goût.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Mandriva&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est aujourd&#039;hui la distribution la plus utilisée sur les Desktops. C&#039;est certainement l&#039;un des plus faciles à installer, elle dispose d&#039;un [http://www.mandriva.com/fr/ bon site] pour avoir des correctifs, forums... et de plus elle est francisée (elle est réalisée par une société &amp;lt;span style=&amp;quot;color:#3333FF;&amp;quot;&amp;gt;fra&amp;lt;/span&amp;gt;nça&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;ise&amp;lt;/span&amp;gt;). Vu le support qu&#039;il y a derrière, grâce à leur site et leurs listes de diffusions, je trouve que cette distribution est un bon choix pour un débutant. De plus, cette distribution est complètement libre.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;SuSE&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
très bonne distribution pour les débutants aussi (installation simple) et bon site aussi pour le support.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Debian&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
c&#039;est vraiment &#039;&#039;&#039;LA&#039;&#039;&#039; distribution libre (elle ne comporte que des logiciels libres) et à part : le groupe de développeurs ne met à la disposition des personnes intéressées que l&#039;image ISO de la distribution : il n&#039;y a pas de société pour la commercialiser - et aucun impératif marketing, au contraire : la distribution sort quand les développeurs responsables du projet Debian estiment que tout est bon (ce qui donne des décalages entre ce qui était annoncé et la date réelle de sortie !). Bref, c&#039;est une distribution très stable, mais plutôt pour les initiés.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;deb&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Slackware&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
je la trouve excellente ; l&#039;installation n&#039;est pas toute simple, mais je trouve sa maintenance plus aisée que sur les Red-Hat. Bref, c&#039;est une distribution pour les initiés. Par contre, la Slackware est souvent en retard par rapport aux autres distributions au niveau des versions des logiciels. &amp;lt;br /&amp;gt; Cette distribution permet de s&#039;installer dans très peu de place disque (moins de 100 Mo) en ne choisissant que les packages indispensables.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.tar.gz&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Gentoo&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est une distribution &#039;source&#039; : on démarre avec un CD bootable en mode texte, on lit la documentation fournie et on compile tous les outils qu&#039;on va utiliser. C&#039;est une distribution qu&#039;on choisit lorsqu&#039;on a un peu de pratique.&amp;lt;br /&amp;gt; Sa grande qualité : un excellent gestionnaire de package inspiré des &amp;quot;ports&amp;quot; de BSD.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.ebuild&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
• Il existe encore bien d&#039;autres distributions...&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La facilité de trouver des paquets &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; milite également en faveur de Fedora et de Mandriva, mais on trouve également tout en &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt;, ce qui permet d&#039;installer tout logiciel sur toute distribution ; il suffit de le compiler si le package ne contient pas une version binaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se procurer une distribution&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous avez une bonne connexion au Net (ADSL, câble ou LS à votre travail) vous pouvez télécharger une distribution complète. Mandriva, Fedora et Debian sont disponibles en image ISO (un seul fichier d&#039;environ 700 Mo qu&#039;il suffit ensuite de graver sur un CD). &amp;lt;br /&amp;gt; Si vous souhaitez/devez acheter une distribution, vous la trouverez dans les librairies, FNAC, etc. Optez pour l&#039;une d&#039;elle avec si possible un gros livre fourni avec. Evitez aussi les distributions en boîte à plus de 60 euros, on est souvent déçu par le soit-disant contenu. Mandriva vend un DVD comportant tous les logiciels de la distribution, il est très pratique. De plus, de nombreux magazines informatiques proposent régulièrement sans supplément de prix (vers les 6 ou 7 euros donc) une distribution toute récente. Vous pouvez également trouver tout un tas de CD à bas prix en suivant ce [http://mandrivastore.com lien] chez Mandriva, ou chez [http://www.ikarios.com Ikarios].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Débuter&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous commencez avec Linux, je vous conseille de choisir Mandriva ou SuSE, ou mieux : commencez par tester Linux avec le Live-CD de [http://www.knoppixfr.org/ Knoppix] : c&#039;est une distribution qui est conçue pour fonctionner depuis le CD, sans s&#039;installer sur le disque dur. Pour tester Linux en grandeur nature sur votre matériel, c&#039;est l&#039;idéal.&lt;br /&gt;
&lt;br /&gt;
== 3. Préparer ses disques durs. ==&lt;br /&gt;
&lt;br /&gt;
Je ne vais pas vous décrire toute la procédure d&#039;installation, mais vous donner des conseils utiles, avec un peu d&#039;explications. Le installation-HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) ou le [http://www.tldp.org/LDP/gs/index.html Guide d&#039;installation et de démarrage] (en anglais) sont là pour ça, les docs des distribs et des centaines d&#039;autres sites aussi.&lt;br /&gt;
&lt;br /&gt;
=== Un peu de théorie ===&lt;br /&gt;
&lt;br /&gt;
==== Les systèmes de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Le système de fichiers (ou File System ou FS), c&#039;est la façon dont le système d&#039;exploitation structure les données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
Comme tout système d&#039;exploitation, Linux dispose de ses propres systèmes de fichiers :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EXT2FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext2&#039;&#039;&#039;) : c&#039;est le système de fichiers historique de Linux, il n&#039;est pas forcément le meilleur choix car, n&#039;étant pas journalisé, si vous éteignez mal votre ordinateur, linux prendra beaucoup de temps pour tester les disques durs (de la même manière que le scandisk de Microsoft).&lt;br /&gt;
* &#039;&#039;&#039;EXT3FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext3&#039;&#039;&#039;) : c&#039;est l&#039;évolution logique du ext2. Il présente l&#039;avantage d&#039;être compatible avec l&#039;ext2 tout en étant journalisé. Il n&#039;implémente toute fois pas les toutes dernières innovations en matière de journalisation. Utilisez ce système de fichiers si vous comptez pouvoir relire des informations depuis votre windows.&lt;br /&gt;
* &#039;&#039;&#039;REISERFS&#039;&#039;&#039; : c&#039;est un système de fichiers journalisé. C&#039;est un bon choix. Il est réimplémenté à partir de zéro et bénéficie de beaucoup d&#039;innovations.&lt;br /&gt;
&lt;br /&gt;
Il en existe d&#039;autres, mais préférez-leur l&#039;un de ceux-là, sauf si vous avez une bonne raison.&lt;br /&gt;
&lt;br /&gt;
Windows utilise quant à lui un système VFAT (partitions limitées à 2 Go) ou FAT32, voire FAT (l&#039;ancien système de fichier du DOS). Vous ne pouvez pas installer Linux sur une partition de ce type, car elles ne gèrent pas les [../admin/permissions.php3 permissions]. Les dernières versions de Windows (NT, 2000 et XP) utilisent aussi le système de fichiers NTFS, mais Microsoft n&#039;a pas fourni les spécifications techniques de ce format et Linux (ainsi que la plupart des autres systèmes d&#039;exploitation) est incapable de le gérer correctement (prévoyez une partition en VFAT-FAT32 pour partager des informations facilement entre Linux et Windows) : Linux sait lire les informations sur une partitions NTFS mais pas en écrire (cette fonctionnalité est en cours de développement).&lt;br /&gt;
&lt;br /&gt;
==== Les disques durs et les partitions sous Linux ====&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, voyons comment Linux identifie et organise les disques durs.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;IDE&#039;&#039;&#039;, la numérotation se fait avec un préfixe &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;hd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;, suivi par une lettre, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier IDE maître, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier esclave, etc. &amp;lt;br /&amp;gt; En résumé on a :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;hda  &amp;lt;/tt&amp;gt; Disque maître sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdb  &amp;lt;/tt&amp;gt; Disque esclave sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdc  &amp;lt;/tt&amp;gt; Disque maître sur le 2eme contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdd  &amp;lt;/tt&amp;gt; Disque esclave sur le 2eme contrôleur IDE&lt;br /&gt;
&lt;br /&gt;
Si vous avez d&#039;autres contrôleurs IDE (hé oui, cela arrive !) la numérotation se poursuit (&amp;lt;tt&amp;gt;hde&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;hdf&amp;lt;/tt&amp;gt;, etc.). &amp;lt;br /&amp;gt; Attention : les lecteurs de CD-ROM IDE apparaissent comme un disque dur. Si votre CD est maître sur la deuxième nappe par exemple, il sera nommé &amp;lt;tt&amp;gt;hdc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;SCSI&#039;&#039;&#039;, cette fois c&#039;est l&#039;ID SCSI qui va donner la lettre, le préfixe étant &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;sd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;. &amp;lt;br /&amp;gt; Prenons par exemple 3 disques scsi d&#039;id 0,1 et 3 on va avoir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;sda  &amp;lt;/tt&amp;gt; Disque d&#039;ID 0&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdb  &amp;lt;/tt&amp;gt; Disque d&#039;ID 1&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdd  &amp;lt;/tt&amp;gt; Disque d&#039;ID 3&lt;br /&gt;
&lt;br /&gt;
Attention : les lecteurs de CD-ROM SCSI, les ZIP, JAZ, etc. SCSI ainsi que les périphériques de stockage USB (appareils photo, clefs USB...) apparaissent comme un disque dur SCSI ; ils se nomment aussi &amp;lt;tt&amp;gt;sdx&amp;lt;/tt&amp;gt; suivant leur ID. Astuce : pour connaître la liste de vos périphériques de ce type, tapez : &amp;lt;code&amp;gt;cdrecord -scanbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;partitions&#039;&#039;&#039; sont quant à elles représentées par le nom du disque dur, suivi d&#039;un chiffre représentant la partition. &amp;lt;br /&amp;gt; Par exemple, la première partition du premier disque IDE se nomme &#039;&#039;&#039;&amp;lt;tt&amp;gt;hda1&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, de même, la troisième partition du disque SCSI d&#039;ID 1 se nommera &#039;&#039;&#039;&amp;lt;tt&amp;gt;sdb3&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Organisation des fichiers sous Linux ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;L&#039;arborescence&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, ou tout autre Unix d&#039;ailleurs, il n&#039;y a pas de lettre représentant le disque dur comme le &amp;lt;tt&amp;gt;C:&amp;lt;/tt&amp;gt; de Windows/DOS. &amp;lt;br /&amp;gt; De plus, le signe &#039;&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;&#039; est remplacé par &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039; pour séparer les répertoires. &amp;lt;br /&amp;gt; Il y a une seule arborescence, qui débute à la &amp;quot;racine&amp;quot;, notée &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039;, et tous les disques durs/partitions apparaissent dans cette arborescence avec leur contenu de façon transparente comme un répertoire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les périphériques&#039;&#039;&#039;&amp;lt;br /&amp;gt; De plus, tout périphérique est identifié à un fichier qui se trouve dans le répertoire &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; (comme &#039;&#039;&#039;dev&#039;&#039;&#039;ice, périphérique en anglais). Par exemple, le disque maître du deuxième port IDE est identifié par &amp;lt;tt&amp;gt;/dev/hdc&amp;lt;/tt&amp;gt;, sa deuxième partition par &amp;lt;tt&amp;gt;/dev/hdc2&amp;lt;/tt&amp;gt;. &amp;lt;br /&amp;gt; Le lecteur de disquette est représenté par &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les partitions / les points de montage&#039;&#039;&#039;&amp;lt;br /&amp;gt; Les partitions que l&#039;on va créer sur les disques durs seront attachées à des répertoires de l&#039;arborescence, ou &amp;quot;&#039;&#039;&#039;points de montage&#039;&#039;&#039;&amp;quot;. C&#039;est ce qu&#039;on appelle &amp;quot;&#039;&#039;monter une partition&#039;&#039;&amp;quot;. Le point de montage est un simple répertoire, vide avant le montage, et qui après le montage, représente le contenu de la partition montée. &amp;lt;br /&amp;gt; Par exemple, supposons que nous ayons créé une partition &amp;lt;tt&amp;gt;/dev/hda2&amp;lt;/tt&amp;gt; (premier disque IDE, 2ème partition) pour contenir le système. On &#039;&#039;montera&#039;&#039; cette partition (automatiquement, heureusement !) dans le répertoire racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;. Si la partition &amp;lt;tt&amp;gt;/dev/hda3&amp;lt;/tt&amp;gt; est destinée à contenir les données utilisateur, on la montera dans le &#039;&#039;point de montage&#039;&#039; (=répertoire) &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;. On verra le contenu de cette partition dans le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; comme si c&#039;était n&#039;importe quel autre répertoire, alors que physiquement les données sont sur une autre partition. &amp;lt;br /&amp;gt; De même, pour accéder à la disquette, on montera le périphérique &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/floppy&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/floppy&amp;lt;/tt&amp;gt; (selon la distribution) et pour accéder au CD-ROM, on montera le périphérique &amp;lt;tt&amp;gt;/dev/cdrom&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/cdrom&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/cdrom&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les répertoires standards&#039;&#039;&#039;&amp;lt;br /&amp;gt; Linux possède des répertoires &amp;quot;spéciaux&amp;quot; à la racine (un peu comme le &amp;lt;tt&amp;gt;C:\windows&amp;lt;/tt&amp;gt;), qui sont classiques dans les systèmes Unix et peuvent ou non représenter un point de montage pour une partition.&lt;br /&gt;
&lt;br /&gt;
On a déjà vu par exemple le répertoire spécial &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; où tous les périphériques sont répertoriés en tant que fichiers, ou encore le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; qui contient les données personnelles des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Chacun des répertoires ci-dessous peut être soit un simple répertoire dans la partition racine, soit le &#039;&#039;point de montage&#039;&#039; d&#039;une autre partition, mais dans tous les cas le résultat est le même : des fichiers dans des répertoires.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Les répertoires standards de Linux sont :&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
La racine du système = la base.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/boot&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers utilisés pour booter le noyau&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/usr&lt;br /&gt;
|&lt;br /&gt;
Programmes, données, accessibles par les utilisateurs et non nécessaires lors du boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/home&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les répertoires de base des utilisateurs et de certains services comme le FTP, le serveur Web, Samba, etc.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/dev &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les périphériques. Le repertoire est en général géré dynamiquement par le système.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/bin&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Programmes nécessaires au boot, et disponibles ensuite à tous les utilisateurs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/sbin&lt;br /&gt;
|&lt;br /&gt;
Programmes nécessaires au boot, disponibles au root uniquement&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/var&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de log, spool d&#039;impression, de mail, etc. En général, fichiers qui changent tout le temps ( variable, d&#039;ou le nom /var )&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/etc &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de configuration du système&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/root&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire home de l&#039;administrateur&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/lib&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Bibliothèques et modules (comme les DLL de Windows) nécessaires au boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/tmp&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers temporaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/mnt&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire proposé pour monter des périphériques (ou /mnt/cdrom, /mnt/floppy, /mnt/zip, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/proc et /sys&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers d&#039;information sur la configuration système (les fichiers sont générés dynamiquement, pas de modifications possibles). Les fichiers dans ce répertoire n&#039;existent pas sur le disque, c&#039;est Linux qui les crée en temps réel lorsque vous en avez besoin.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/opt&lt;br /&gt;
|&lt;br /&gt;
Dans ce répertoire (optionnel), on peut ajouter des logiciels afin qu&#039;ils ne s&#039;installent pas dans les répertoires système. Peu utilisé, sauf par certaines applications commerciales.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et j&#039;en passe...&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passons à la pratique ! ===&lt;br /&gt;
&lt;br /&gt;
On peut installer Linux sur une partition DOS/Windows avec par exemple Linux4win de Mandrake. Cette méthode est pratique car elle nécessite un minimum de travail sur le système d&#039;exploitation d&#039;origine (en général Windows) : Linux s&#039;installe dans un gros fichier sur le disque Windows. &amp;lt;br /&amp;gt; Cependant, je vous déconseille cette méthode, à moins que vous y soyez obligé. Un tel système est très ralenti (au moins d&#039;un facteur 2) et vous allez être très déçu des performances de Linux ; de plus il arrive parfois des problèmes d&#039;incompatibilités avec cette méthode. Au prix où sont les disques durs aujourd&#039;hui et vu leur taille grandissante, vous trouverez bien de la place pour créer des partitions Linux.&lt;br /&gt;
&lt;br /&gt;
==== Préparation ====&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l&#039;installation, vous allez donc devoir libérer de la place pour les nouvelles partitions Linux. Si vous comptez installer Linux sur un disque vierge, pas de problème. Par contre, si vous voulez faire cohabiter Windows et Linux sur le même disque, et que Windows est déjà installé sur la totalité du disque, il va falloir arranger ça :) (à moins que vous ne vouliez réinstaller Windows de zéro).&lt;br /&gt;
&lt;br /&gt;
On va devoir passer de ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;----------------- Windows --------------&amp;gt;&amp;lt;br /&amp;gt; |==========================================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- Windows -&amp;gt; &amp;lt;- place libre pour Linux -&amp;gt;&amp;lt;br /&amp;gt; |=============|============================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alors soit vous virez tout et vous réinstallerez Windows, c&#039;est le plus simple évidemment, &amp;lt;br /&amp;gt; soit vous redimensionnez votre partition Windows. Pour ce faire, utilisez un logiciel approprié, comme FIPS (souvent sur les CD des distributions), ou [http://www.users.intercom.com/~ranish/part/ Partition Manager] (un freeware sous DOS) encore Partition Magic (produit commercial). Pour ça, je vous renvoie à la documentation du logiciel utilisé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 1&amp;lt;/u&amp;gt; : Partition Manager a l&#039;air intéressant, il fonctionne sous DOS, est &#039;&#039;freeware&#039;&#039;, et existe en version française. Il permet de gérer les partitions, de sauver le MBR (Master Boot Record, c&#039;est là que vient s&#039;enregistrer [install.php3#lilo LILO]) dans un fichier, de le restaurer, de modifier la taille d&#039;une partition, de la formater, etc. (Voir la [http://www.users.intercom.com/~ranish/part/ page de Partition Manager].)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 2&amp;lt;/u&amp;gt; : la distribution Mandriva est livrée avec un utilitaire de repartitionnement très performant, sachant même redimensionner les partitions au format NTFS.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, pensez à sauvegarder vos données perso !&lt;br /&gt;
&lt;br /&gt;
==== Installation proprement dite : le partitionnement des disques ====&lt;br /&gt;
&lt;br /&gt;
La plupart des installations commencent de la même façon : on crée une disquette de boot sous DOS/Windows avec l&#039;utilitaire &amp;quot;RAWRITE&amp;quot; (livré sur les CD des distributions), des fois même deux disquettes (pour la Slackware) ; en général le CD de la distribution est bootable (Mandrake par exemple) et il n&#039;y a alors pas besoin de disquette. Puis on boote sur la disquette ou le CD. &amp;lt;br /&amp;gt; Ensuite on suit les indications du programme d&#039;installation, puis on arrive sur le partitionnement des disques (attention à la Slackware où on n&#039;atterrit pas sur ce point directement : après s&#039;être logué en &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; il faut taper &amp;quot;&amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;&amp;quot; AVANT de taper &amp;quot;&amp;lt;tt&amp;gt;setup&amp;lt;/tt&amp;gt;&amp;quot;). Détaillons un peu cette procédure de partitionnement.&lt;br /&gt;
&lt;br /&gt;
Pour partitionner votre disque vous allez appeler la commande &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; suivie du nom du disque sur lequel vous voulez installer Linux, par exemple &amp;quot;&amp;lt;tt&amp;gt;fdisk /dev/hda&amp;lt;/tt&amp;gt;&amp;quot;. Des logiciels plus conviviaux existent comme DiskDruid (disponible lors de l&#039;installation d&#039;une Red Hat par exemple) ou [http://www.linux-mandrake.com/diskdrake/ DiskDrake] de MandrakeSoft fonctionnant en mode graphique (mais il me semble qu&#039;il nécessite que Linux soit déjà installé !).&lt;br /&gt;
&lt;br /&gt;
Je vous renvoie à l&#039;installation HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) pour toutes les commandes de &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; ; les principales sont :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;n  &amp;lt;/tt&amp;gt; Crée une partition, de type linux native (&amp;lt;tt&amp;gt;ext2fs&amp;lt;/tt&amp;gt;) par défaut.&lt;br /&gt;
* &amp;lt;tt&amp;gt;t  &amp;lt;/tt&amp;gt; Change le type d&#039;une partition (83 linux native, 82 linux swap).&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, tapez &amp;quot;&amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt;&amp;quot;, afin d&#039;accéder à la liste de toutes les commandes possibles. C&#039;est assez bien indiqué dans l&#039;installation-HOWTO.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention&#039;&#039;&#039; : le nombre de partitions dites &amp;quot;&#039;&#039;primaires&#039;&#039;&amp;quot; est limité à 4. Ainsi, si vous souhaitez définir plus de 4 partitions sur un même disque, l&#039;une de ces 4 partitions primaires doit être définie comme &amp;quot;&#039;&#039;étendue&#039;&#039;&amp;quot;, elle contiendra alors toutes les autres partitions. Les partitions primaires sont numérotées de 1 à 4, les partitions créés à l&#039;intérieur de la partition étendue sont numérotées à partir de 5.&lt;br /&gt;
&lt;br /&gt;
==== De &#039;&#039;&#039;combien de partitions&#039;&#039;&#039; allez vous avoir besoin ? ====&lt;br /&gt;
&lt;br /&gt;
* Tout d&#039;abord, une partition pour le &#039;&#039;&#039;swap&#039;&#039;&#039;. Le swap c&#039;est la mémoire virtuelle de Linux. La taille ? Ca va dépendre de votre mémoire physique. Une partition de swap de 128Mo avec 64 ou 128 Mo de RAM physique suffit amplement pour une utilisation standard. Je vous conseille donc un swap de 128 Mo : créez sous Linux avec &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; une partition de type 82 de 128 Mo.&lt;br /&gt;
* Pour le reste, vous avez le choix : &amp;lt;br /&amp;gt; La chose la plus simple est une seule partition (en plus du swap), qui contiendra toutes les données (système &amp;amp; utilisateur) ; prenez le plus de place possible (1 Go mini). &amp;lt;br /&amp;gt; En fait, il est intéressant de créer au moins deux partitions : une qui contiendra le système et une autre pour vos données personnelles. Comme ça, vous pouvez réinstaller Linux et même formater la partition système sans perdre vos données perso. Pour la même raison, on peut pousser le raffinement jusqu&#039;à avoir une troisième partition afin de contenir les logiciels que vous installerez par la suite (OpenOffice par exemple). (voir plus haut le tableau des [#repertoires_std répertoires standards])&lt;br /&gt;
À ces partitions, on attribuera des &#039;&#039;points de montage&#039;&#039;. &amp;lt;br /&amp;gt;  - C&#039;est quoi un point de montage ? &amp;lt;br /&amp;gt;  - Ah mais vous n&#039;avez pas lu le paragraphe [#orga_fichiers précédent] ? :-)&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez un serveur : =====&lt;br /&gt;
&lt;br /&gt;
L&#039;une des méthodes les plus utilisées, c&#039;est de mettre le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; sur un petit disque ou une partition, puis &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt; sur un autre disque en point de montage. Si notre système va être un serveur avec beaucoup d&#039;utilisateurs, qui vont avoir beaucoup de données personnelles à stocker, on peut créer aussi un &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; en point de montage sur un autre disque. On va aussi généralement réserver un disque ou une partition pour le répertoire temporaire que l&#039;on montera dans &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, et encore une autre pour le &amp;lt;tt&amp;gt;/var&amp;lt;/tt&amp;gt;. En fait, on ne va laisser dans le disque contenant la racine que les informations qui bougent peu et dont le volume augmente peu. &amp;lt;br /&amp;gt; Ainsi on ne charge pas le disque de point de montage &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; des répertoires &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;, etc., ce qui permet de facilement maintenir le système (si &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; est plein, on prend un disque + gros que l&#039;on monte en &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et on recopie tout dessus, ça permet de ne pas casser le reste...), etc. Ca a plein d&#039;avantages, je vous conseille de faire comme ça si vous avez plusieurs disques. De plus si un disque crashe, si ce n&#039;est pas le disque contenant la racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;, ça permet de rebooter quand même la machine, de travailler un minimum pour réinstaller un disque sans à avoir à réinstaller un système de base. &amp;lt;br /&amp;gt; Remarque : si vous installez un serveur qui sera très sollicité, soyez généreux pour la taille du swap (2 fois la taille de la RAM est un bon début).&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez sur une machine perso : =====&lt;br /&gt;
&lt;br /&gt;
Sur une machine mono-utilisateur, voire mono-disque, on peut faire une partition pour le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; (mini 1Go recommandé 2Go), une pour &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et une pour le swap (128 Mo par exemple). Vous pouvez aussi éventuellement faire une partition pour &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt; qui contiendra les logiciels que vous avez installés vous-même et qui ne proviennent pas de la distribution. Ca permet de mettre à jour voire de réinstaller la distribution sans trop devoir travailler derrière pour que ça fonctionne comme avant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;exemple de partionnement :&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- /dev/hda1 -&amp;gt; &amp;lt;--- /dev/hda2 (étendue) --&amp;gt;&amp;lt;br /&amp;gt;    (primaire)    /dev/hda5    hda6     hda7&amp;lt;br /&amp;gt;  &amp;lt;-- Windows --&amp;gt; &amp;lt;-- / --&amp;gt; &amp;lt;- /home -&amp;gt; &amp;lt;swap&amp;gt; &amp;lt;-pt de montage&amp;lt;br /&amp;gt; |===============|=========|===========|======| &amp;lt;-disque dur&amp;lt;br /&amp;gt;      2,5 Go        2,5 Go      5 Go    128 Mo &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque vous disposez de beaucoup de place sur vos disques (j&#039;ai par exemple 2 disques de 80 Go), pour une utilisation personnelle, 3 ou 4 Go suffisent pour la racine (ou alors 1 Go pour la racine et 2 Go pour /usr), gardez votre swap entre 128 et 512 Mo, et enfin, le reste pour /home (j&#039;ai monté un de mes disques contenant une seule partition dans /mnt/data et j&#039;y stocke mes fichiers multimédia).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot &amp;amp; S. Tchesmeli le 29/11/1999.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/11/1999, J.C. Cardot &amp;amp;amp; S. Tchesmeli&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4268</id>
		<title>Préparer l&#039;installation</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4268"/>
		<updated>2005-10-04T10:38:11Z</updated>

		<summary type="html">&lt;p&gt;Misc : quelques précisions sur /sys, et autres.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installer Linux]]&lt;br /&gt;
= Préparation à l&#039;installation de Linux =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Préparation à l&#039;installation de Linux&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par Jean-Christophe sur la base du travail de Serge&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Cette partie traite de la préparation que vous et votre ordinateur devrez subir avant d&#039;installer Linux ;-)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Vérifier son matériel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Avertissement&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Linux ne supporte pas tous les matériels qui existent dans le commerce ou ailleurs. La faute en revient aux constructeurs qui développent des drivers en général uniquement pour Windows. Les drivers Linux sont généralement développés par des personnes qui possèdent un matériel qu&#039;ils souhaitent utiliser avec Linux ; cela n&#039;est possible que si le fabricant ne garde pas secrètes les spécifications de son matériel, ce qui est malheureusement encore souvent le cas. &amp;lt;span style=&amp;quot;color:#FF6666;&amp;quot;&amp;gt;Dans ce cas, je vous invite à boycotter et à faire boycotter ces fabricants afin de faire pression sur eux&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Prérequis&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Microprocesseur&#039;&#039;&#039; : Intel x86 à base de microprocesseur 386 minimum (ou compatible comme AMD, CYRIX, etc.) &amp;lt;br /&amp;gt; (Je ne traite ici que des plates-formes &amp;quot;compatibles IBM PC&amp;quot;) &amp;lt;br /&amp;gt; Il existe des versions de Linux pour le matériel plus vieux (286, etc.), mais cela dépasse le cadre de cette rubrique. &amp;lt;br /&amp;gt; Il existe aussi des distributions de Linux pour 680xx ([http://www.mklinux.org MkLinux]), PowerPC (Linux PPC, [http://www.debian.org/ports/powerpc debian PPC], [http://qa.mandriva.com/twiki/bin/view/Main/MdkPpcPort Mandriva PPC] ou [http://www.gentoo.org/doc/en/gentoo-ppc-install.xml Gentoo PPC]), [http://www.debian.org/ports/alpha Alpha], etc. &lt;br /&gt;
* &#039;&#039;&#039;Disque dur&#039;&#039;&#039; : prévoyez pour le système lui-même de l&#039;ordre de 3 Go pour une distribution assez récente, surtout si vous installez X Window (le sous-système graphique de Linux) avec des environnements de bureau de type [http://www.kde.org KDE] ou [http://www.gnome.org Gnome] (très à la mode dans les distributions actuelles). Prévoyez aussi environ 256 Mo supplémentaires pour le Swap (i.e. mémoire virtuelle, on en reparle [#partitions plus tard]). &amp;lt;br /&amp;gt; Avec ça, vous allez déjà pouvoir faire tourner plein de choses. Sachez cependant que des &amp;quot;mini distributions&amp;quot; (ou parmi les distributions &amp;quot;classiques&amp;quot;, la Slackware ; parmi les distributions light basé sur slackware, il existe [http://drinou.tuxfamily.org drinou-linux]) passent avec 100 ou 150 Mo de disque dur, mais là, pas question d&#039;avoir un système graphique (encore que ...), ni de grosses applications de style base de données, etc.&lt;br /&gt;
* &#039;&#039;&#039;Mémoire&#039;&#039;&#039; : prévoyez environ 128 à 256 Mo avec un système X (ça passe avec 64 Mo, mais avec les nouveaux environnements sous X ça risque de ramer) et plus vous en avez : mieux c&#039;est. &amp;lt;br /&amp;gt; Là aussi, c&#039;est juste une recommendation pour utiliser les logiciels les plus courants compris dans les distributions. Maintenant, si vous prévoyez de faire de votre serveur Linux une vraie usine à gaz (serveur WEB, base de données SQL, proxy serveur, OpenOffice.org...), prévoyez plus de mémoire. &amp;lt;br /&amp;gt; Si vous avez peu de mémoire, vous risquez de ne pas pouvoir installer l&#039;interface graphique Xorg. &lt;br /&gt;
&lt;br /&gt;
D&#039;une manière général, il vaut mieux éviter de recycler un vieux pc si vous voulez essayer un système linux. Bien que ça soit possible, c&#039;est loin d&#039;être idéal pour une première expérience, les distributions modernes venant par défaut avec la plupart des fonctionnalités activés pour un plus grand confort de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons de plus près le matériel supporté. Sachez qu&#039;une liste assez complète se trouve dans le Hardware-HOWTO ([http://www.linuxdoc.org/HOWTO/Hardware-HOWTO.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) sur le site TLDP ([http://www.tldp.org The Linux Documentation Project &amp;lt;&#039;&#039;www.tldp.org&amp;gt;&#039;&#039;]). &amp;lt;br /&amp;gt; En général :&lt;br /&gt;
&lt;br /&gt;
* Les &#039;&#039;&#039;disques durs&#039;&#039;&#039; SCSI et IDE ainsi que leurs contrôleurs sont supportés dans la plupart des cas. Pour faire fonctionner un disque Serial ATA vous risquez d&#039;avoir quelques problèmes avec l&#039;installation par défaut des distributions : prévoyez un disque IDE standard pour faire l&#039;installation et vous verrez après comment installer l&#039;éventuel driver Serial ATA.&lt;br /&gt;
* Les &#039;&#039;&#039;cartes réseau&#039;&#039;&#039; de type compatible NE2000 ISA ou PCI, ainsi que les cartes 3COM, HP, AMD... sont très bien supportées. En fait, la très grande majorité des cartes réseau fonctionnent sous Linux sans problème.&lt;br /&gt;
* Les &#039;&#039;&#039;modems&#039;&#039;&#039; compatibles HAYES (attention toutefois à certains US ROBOTICS) mais &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;évitez de préférence les &amp;quot;soft-modems&amp;quot; qui ne marchent que sous Windows&amp;lt;/span&amp;gt; (US Robotics Winmodem, modems internes PCI en général). En fait, la communauté Linux a développé des drivers pour la plupart de ces modems depuis quelques temps, cependant leur installation reste &amp;quot;pénible&amp;quot;, mais c&#039;est de moins en moins vrai. &amp;lt;br /&amp;gt; En bref, les modems &amp;lt;u&amp;gt;externes&amp;lt;/u&amp;gt; sur port série ainsi que les modems sur bus &amp;lt;u&amp;gt;ISA&amp;lt;/u&amp;gt; sont OK, évitez les modems internes PCI (mais vous devriez pourvoir faire fonctionner la plupart de ceux-ci moyennant un petit investissement technique). &amp;lt;br /&amp;gt; Les &#039;&#039;&#039;modems ADSL&#039;&#039;&#039; : ECI USB et Alcatel/Thomson SpeedTouch USB sont supportés, ainsi que la plupart des modem BeWAN. Tous les modems ADSL Ethernet sont supportés. &amp;lt;br /&amp;gt; Les fournisseurs d&#039;accès restent souvent un problème. Certains providers (AOL pour ne pas le citer) rendent la connexion depuis Linux très complexe, allant jusqu&#039;à tenter de faire interdire certains logiciels de connexion ([http://www.peng.apinc.org penggy]) alors qu&#039;ils n&#039;en fournissent pas !&lt;br /&gt;
* Les &#039;&#039;&#039;cartes graphiques&#039;&#039;&#039; : toutes les cartes anciennes de type S3, S3 Virge, Trident, Cirrus Logic, etc. passent sans problèmes, mais attention aux dernières cartes vidéo très à la mode sous Windows... Je vous conseille si vous voulez de bonnes performances des cartes de type Matrox G200, les 3Dfx (toute génération, même la Rush est paraît-il supportée). Les cartes vidéo évoluent très vite, et peu de constructeurs font des efforts pour X... Attention donc. Pour une liste à jour, allez sur le site de XFree (voir dans les liens). Au niveau de l&#039;accélération 3D, les cartes 3Dfx sont parfaitement supportées (voir la [../hardware/3dfx.php3 rubrique 3Dfx]), mais [http://www.xfree.org XFree 4.2.x] a changé la donne. La plupart des cartes NVidia fonctionnent sans problème en 2D et assez bien en 3D (pour peu que vous installiez les drivers &#039;closed-source&#039; de chez NVidia). La plupart des cartes de chez ATI fonctionnent aussi en 2D (y compris les Radeon 8500, ...) et certaines sont supportées en 3D accélérée par XFree 4.3.0.&lt;br /&gt;
* Carte &#039;&#039;&#039;série multiports&#039;&#039;&#039;.&lt;br /&gt;
* Carte &#039;&#039;&#039;tuner TV&#039;&#039;&#039; : les cartes à base de chipset BT8xx (848, 878...) sont très bien supportées (comme la Mìro PCTV). Voir la [../hardware/tv.php3 rubrique TV]. Les cartes ATI ALL in Wonder disposent aussi de drivers, voir [http://gatos.sourceforge.net gatos.sourceforge.net].&lt;br /&gt;
* De plus en plus de webcams sont supportées. Les webcams philips sont supportées par un driver spécifique, et beaucoup de webcams sont prises en charge par le module [http://alpha.dyndns.org/ov511 OV511] ou par le module [http://webcam.sourceforge.net CPiA].&lt;br /&gt;
* &#039;&#039;&#039;Scanner&#039;&#039;&#039; : évitez absolument les scanners parallèles (quoi que ca commence à bouger de ce côté-là, mais pour l&#039;instant ils ne sont pas très bien supportés). Par contre, beaucoup de scanner SCSI fonctionnent très bien (Voir la home page de [http://www.mostang.com/sane/ SANE] pour les scanners supportés), en particulier certains scanner n&#039;ont plus de driver pour Windows 2000 et XP mais en ont pour Linux ;-). De plus en plus de scanner USB sont également supportés.&lt;br /&gt;
* &#039;&#039;&#039;Imprimante&#039;&#039;&#039; : évitez certaines anciennes Hewlett Packard jet d&#039;encre qui sont en fait des win-imprimantes (ex : HP820 Cxi) ne fonctionnant que sous Windows 9x (même pas NT !). La plupart des imprimantes LASER fonctionnent très bien, mais des win-imprimantes y sont aussi apparues :-(.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;ZIP&#039;&#039;&#039; sur port parallèle, SCSI ou USB : aucun problème.&lt;br /&gt;
* Lecteur JAZ, ZIP, de bandes, etc... SCSI : tous très bien supportés, il n&#039;y a quasiment pas de configuration à faire.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;CD-ROM&#039;&#039;&#039; et &#039;&#039;&#039;graveur&#039;&#039;&#039; : les graveurs SCSI sont très faciles à configurer ; pour configurer un graveur IDE, allez voir la rubrique [/trucs/?aff_item=8 Trucs]. En bref, les graveurs SCSI ou IDE fonctionnent sous Linux sans problème, les distributions récentes les configurent automatiquement et vous n&#039;aurez aucun souci.&lt;br /&gt;
* Les périphériques &#039;&#039;&#039;USB&#039;&#039;&#039; sont relativement bien supporté quand les constructeurs fournissent des documentations techniques. Ainsi, les souris USB, les claviers USB (même ceux ayant des touches supplémentaires, voir : [http://lineak.sourceforge.net/ LinEAK]), les webcams, les modems ADSL, les appareils photos numériques, les USB-Keys, etc. sont très bien supportés, sauf exception...&lt;br /&gt;
* Les &#039;&#039;&#039;DVD&#039;&#039;&#039; sont maintenant très bien supportés, essentiellement par plusieurs logiciels : xine, mplayer ou oggle. Les graveurs de DVD sont eux aussi assez bien supportés (de la même façon que les graveurs de CD, et par les mêmes logiciels).&lt;br /&gt;
&lt;br /&gt;
Voilà, cette liste est très incomplète mais permet de débuter. Pour une liste plus complète de matériels supportés, allez voir le Hardware-HOWTO ([http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) pour les matériels spécifiques.&lt;br /&gt;
&lt;br /&gt;
== 2. Choisir sa distribution ==&lt;br /&gt;
&lt;br /&gt;
Il y a dans les listes de distribution et sur Usenet des débats acharnés où chacun cherche à prouver que &amp;quot;sa&amp;quot; distribution est meilleure que les autres. C&#039;est avant tout une question de goût personnel. Voici les principales distributions :&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;Distribution&#039;&#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot; |&lt;br /&gt;
&#039;&#039;Commentaire&#039;&#039;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&#039;&#039;type de&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;paquet&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Fedora&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
la plus connue. Assez simple à installer pour un débutant mais pas la plus simple à maintenir à mon goût.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Mandriva&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est aujourd&#039;hui la distribution la plus utilisée sur les Desktops. C&#039;est certainement l&#039;un des plus faciles à installer, elle dispose d&#039;un [http://www.mandriva.com/fr/ bon site] pour avoir des correctifs, forums... et de plus elle est francisée (elle est réalisée par une société &amp;lt;span style=&amp;quot;color:#3333FF;&amp;quot;&amp;gt;fra&amp;lt;/span&amp;gt;nça&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;ise&amp;lt;/span&amp;gt;). Vu le support qu&#039;il y a derrière, grâce à leur site et leurs listes de diffusions, je trouve que cette distribution est un bon choix pour un débutant. De plus, cette distribution est complètement libre.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;SuSE&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
très bonne distribution pour les débutants aussi (installation simple) et bon site aussi pour le support.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Debian&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
c&#039;est vraiment &#039;&#039;&#039;LA&#039;&#039;&#039; distribution libre (elle ne comporte que des logiciels libres) et à part : le groupe de développeurs ne met à la disposition des personnes intéressées que l&#039;image ISO de la distribution : il n&#039;y a pas de société pour la commercialiser - et aucun impératif marketing, au contraire : la distribution sort quand les développeurs responsables du projet Debian estiment que tout est bon (ce qui donne des décalages entre ce qui était annoncé et la date réelle de sortie !). Bref, c&#039;est une distribution très stable, mais plutôt pour les initiés.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;deb&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Slackware&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
je la trouve excellente ; l&#039;installation n&#039;est pas toute simple, mais je trouve sa maintenance plus aisée que sur les Red-Hat. Bref, c&#039;est une distribution pour les initiés. Par contre, la Slackware est souvent en retard par rapport aux autres distributions au niveau des versions des logiciels. &amp;lt;br /&amp;gt; Cette distribution permet de s&#039;installer dans très peu de place disque (moins de 100 Mo) en ne choisissant que les packages indispensables.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.tar.gz&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Gentoo&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est une distribution &#039;source&#039; : on démarre avec un CD bootable en mode texte, on lit la documentation fournie et on compile tous les outils qu&#039;on va utiliser. C&#039;est une distribution qu&#039;on choisit lorsqu&#039;on a un peu de pratique.&amp;lt;br /&amp;gt; Sa grande qualité : un excellent gestionnaire de package inspiré des &amp;quot;ports&amp;quot; de BSD.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.ebuild&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
• Il existe encore bien d&#039;autres distributions...&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La facilité de trouver des paquets &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; milite également en faveur de Fedora et de Mandriva, mais on trouve également tout en &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt;, ce qui permet d&#039;installer tout logiciel sur toute distribution ; il suffit de le compiler si le package ne contient pas une version binaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se procurer une distribution&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous avez une bonne connexion au Net (ADSL, câble ou LS à votre travail) vous pouvez télécharger une distribution complète. Mandriva, Fedora et Debian sont disponibles en image ISO (un seul fichier d&#039;environ 700 Mo qu&#039;il suffit ensuite de graver sur un CD). &amp;lt;br /&amp;gt; Si vous souhaitez/devez acheter une distribution, vous la trouverez dans les librairies, FNAC, etc. Optez pour l&#039;une d&#039;elle avec si possible un gros livre fourni avec. Evitez aussi les distributions en boîte à plus de 60 euros, on est souvent déçu par le soit-disant contenu. Mandriva vend un DVD comportant tous les logiciels de la distribution, il est très pratique. De plus, de nombreux magazines informatiques proposent régulièrement sans supplément de prix (vers les 6 ou 7 euros donc) une distribution toute récente. Vous pouvez également trouver tout un tas de CD à bas prix en suivant ce [http://mandrivastore.com lien] chez Mandriva, ou chez [http://www.ikarios.com Ikarios].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Débuter&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous commencez avec Linux, je vous conseille de choisir Mandriva ou SuSE, ou mieux : commencez par tester Linux avec le Live-CD de [http://www.knoppixfr.org/ Knoppix] : c&#039;est une distribution qui est conçue pour fonctionner depuis le CD, sans s&#039;installer sur le disque dur. Pour tester Linux en grandeur nature sur votre matériel, c&#039;est l&#039;idéal.&lt;br /&gt;
&lt;br /&gt;
== 3. Préparer ses disques durs. ==&lt;br /&gt;
&lt;br /&gt;
Je ne vais pas vous décrire toute la procédure d&#039;installation, mais vous donner des conseils utiles, avec un peu d&#039;explications. Le installation-HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) ou le [http://www.tldp.org/LDP/gs/index.html Guide d&#039;installation et de démarrage] (en anglais) sont là pour ça, les docs des distribs et des centaines d&#039;autres sites aussi.&lt;br /&gt;
&lt;br /&gt;
=== Un peu de théorie ===&lt;br /&gt;
&lt;br /&gt;
==== Les systèmes de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Le système de fichiers (ou File System ou FS), c&#039;est la façon dont le système d&#039;exploitation structure les données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
Comme tout système d&#039;exploitation, Linux dispose de ses propres systèmes de fichiers :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EXT2FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext2&#039;&#039;&#039;) : c&#039;est le système de fichiers historique de Linux, il n&#039;est pas forcément le meilleur choix car, n&#039;étant pas journalisé, si vous éteignez mal votre ordinateur, linux prendra beaucoup de temps pour tester les disques durs (de la même manière que le scandisk de Microsoft).&lt;br /&gt;
* &#039;&#039;&#039;EXT3FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext3&#039;&#039;&#039;) : c&#039;est l&#039;évolution logique du ext2. Il présente l&#039;avantage d&#039;être compatible avec l&#039;ext2 tout en étant journalisé. Il n&#039;implémente toute fois pas les toutes dernières innovations en matière de journalisation. Utilisez ce système de fichiers si vous comptez pouvoir relire des informations depuis votre windows.&lt;br /&gt;
* &#039;&#039;&#039;REISERFS&#039;&#039;&#039; : c&#039;est un système de fichiers journalisé. C&#039;est un bon choix. Il est réimplémenté à partir de zéro et bénéficie de beaucoup d&#039;innovations.&lt;br /&gt;
&lt;br /&gt;
Il en existe d&#039;autres, mais préférez-leur l&#039;un de ceux-là, sauf si vous avez une bonne raison.&lt;br /&gt;
&lt;br /&gt;
Windows utilise quant à lui un système VFAT (partitions limitées à 2 Go) ou FAT32, voire FAT (l&#039;ancien système de fichier du DOS). Vous ne pouvez pas installer Linux sur une partition de ce type, car elles ne gèrent pas les [../admin/permissions.php3 permissions]. Les dernières versions de Windows (NT, 2000 et XP) utilisent aussi le système de fichiers NTFS, mais Microsoft n&#039;a pas fourni les spécifications techniques de ce format et Linux (ainsi que la plupart des autres systèmes d&#039;exploitation) est incapable de le gérer correctement (prévoyez une partition en VFAT-FAT32 pour partager des informations facilement entre Linux et Windows) : Linux sait lire les informations sur une partitions NTFS mais pas en écrire (cette fonctionnalité est en cours de développement).&lt;br /&gt;
&lt;br /&gt;
==== Les disques durs et les partitions sous Linux ====&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, voyons comment Linux identifie et organise les disques durs.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;IDE&#039;&#039;&#039;, la numérotation se fait avec un préfixe &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;hd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;, suivi par une lettre, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier IDE maître, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier esclave, etc. &amp;lt;br /&amp;gt; En résumé on a :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;hda  &amp;lt;/tt&amp;gt; Disque maître sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdb  &amp;lt;/tt&amp;gt; Disque esclave sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdc  &amp;lt;/tt&amp;gt; Disque maître sur le 2eme contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdd  &amp;lt;/tt&amp;gt; Disque esclave sur le 2eme contrôleur IDE&lt;br /&gt;
&lt;br /&gt;
Si vous avez d&#039;autres contrôleurs IDE (hé oui, cela arrive !) la numérotation se poursuit (&amp;lt;tt&amp;gt;hde&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;hdf&amp;lt;/tt&amp;gt;, etc.). &amp;lt;br /&amp;gt; Attention : les lecteurs de CD-ROM IDE apparaissent comme un disque dur. Si votre CD est maître sur la deuxième nappe par exemple, il sera nommé &amp;lt;tt&amp;gt;hdc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;SCSI&#039;&#039;&#039;, cette fois c&#039;est l&#039;ID SCSI qui va donner la lettre, le préfixe étant &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;sd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;. &amp;lt;br /&amp;gt; Prenons par exemple 3 disques scsi d&#039;id 0,1 et 3 on va avoir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;sda  &amp;lt;/tt&amp;gt; Disque d&#039;ID 0&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdb  &amp;lt;/tt&amp;gt; Disque d&#039;ID 1&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdd  &amp;lt;/tt&amp;gt; Disque d&#039;ID 3&lt;br /&gt;
&lt;br /&gt;
Attention : les lecteurs de CD-ROM SCSI, les ZIP, JAZ, etc. SCSI ainsi que les périphériques de stockage USB (appareils photo, clefs USB...) apparaissent comme un disque dur SCSI ; ils se nomment aussi &amp;lt;tt&amp;gt;sdx&amp;lt;/tt&amp;gt; suivant leur ID. Astuce : pour connaître la liste de vos périphériques de ce type, tapez : &amp;lt;code&amp;gt;cdrecord -scanbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;partitions&#039;&#039;&#039; sont quant à elles représentées par le nom du disque dur, suivi d&#039;un chiffre représentant la partition. &amp;lt;br /&amp;gt; Par exemple, la première partition du premier disque IDE se nomme &#039;&#039;&#039;&amp;lt;tt&amp;gt;hda1&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, de même, la troisième partition du disque SCSI d&#039;ID 1 se nommera &#039;&#039;&#039;&amp;lt;tt&amp;gt;sdb3&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Organisation des fichiers sous Linux ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;L&#039;arborescence&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, ou tout autre Unix d&#039;ailleurs, il n&#039;y a pas de lettre représentant le disque dur comme le &amp;lt;tt&amp;gt;C:&amp;lt;/tt&amp;gt; de Windows/DOS. &amp;lt;br /&amp;gt; De plus, le signe &#039;&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;&#039; est remplacé par &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039; pour séparer les répertoires. &amp;lt;br /&amp;gt; Il y a une seule arborescence, qui débute à la &amp;quot;racine&amp;quot;, notée &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039;, et tous les disques durs/partitions apparaissent dans cette arborescence avec leur contenu de façon transparente comme un répertoire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les périphériques&#039;&#039;&#039;&amp;lt;br /&amp;gt; De plus, tout périphérique est identifié à un fichier qui se trouve dans le répertoire &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; (comme &#039;&#039;&#039;dev&#039;&#039;&#039;ice, périphérique en anglais). Par exemple, le disque maître du deuxième port IDE est identifié par &amp;lt;tt&amp;gt;/dev/hdc&amp;lt;/tt&amp;gt;, sa deuxième partition par &amp;lt;tt&amp;gt;/dev/hdc2&amp;lt;/tt&amp;gt;. &amp;lt;br /&amp;gt; Le lecteur de disquette est représenté par &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les partitions / les points de montage&#039;&#039;&#039;&amp;lt;br /&amp;gt; Les partitions que l&#039;on va créer sur les disques durs seront attachées à des répertoires de l&#039;arborescence, ou &amp;quot;&#039;&#039;&#039;points de montage&#039;&#039;&#039;&amp;quot;. C&#039;est ce qu&#039;on appelle &amp;quot;&#039;&#039;monter une partition&#039;&#039;&amp;quot;. Le point de montage est un simple répertoire, vide avant le montage, et qui après le montage, représente le contenu de la partition montée. &amp;lt;br /&amp;gt; Par exemple, supposons que nous ayons créé une partition &amp;lt;tt&amp;gt;/dev/hda2&amp;lt;/tt&amp;gt; (premier disque IDE, 2ème partition) pour contenir le système. On &#039;&#039;montera&#039;&#039; cette partition (automatiquement, heureusement !) dans le répertoire racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;. Si la partition &amp;lt;tt&amp;gt;/dev/hda3&amp;lt;/tt&amp;gt; est destinée à contenir les données utilisateur, on la montera dans le &#039;&#039;point de montage&#039;&#039; (=répertoire) &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;. On verra le contenu de cette partition dans le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; comme si c&#039;était n&#039;importe quel autre répertoire, alors que physiquement les données sont sur une autre partition. &amp;lt;br /&amp;gt; De même, pour accéder à la disquette, on montera le périphérique &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/floppy&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/floppy&amp;lt;/tt&amp;gt; (selon la distribution) et pour accéder au CD-ROM, on montera le périphérique &amp;lt;tt&amp;gt;/dev/cdrom&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/cdrom&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/cdrom&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les répertoires standards&#039;&#039;&#039;&amp;lt;br /&amp;gt; Linux possède des répertoires &amp;quot;spéciaux&amp;quot; à la racine (un peu comme le &amp;lt;tt&amp;gt;C:\windows&amp;lt;/tt&amp;gt;), qui sont classiques dans les systèmes Unix et peuvent ou non représenter un point de montage pour une partition.&lt;br /&gt;
&lt;br /&gt;
On a déjà vu par exemple le répertoire spécial &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; où tous les périphériques sont répertoriés en tant que fichiers, ou encore le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; qui contient les données personnelles des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Chacun des répertoires ci-dessous peut être soit un simple répertoire dans la partition racine, soit le &#039;&#039;point de montage&#039;&#039; d&#039;une autre partition, mais dans tous les cas le résultat est le même : des fichiers dans des répertoires.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Les répertoires standards de Linux sont :&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
La racine du système = la base.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/boot&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers utilisés pour booter le noyau&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/usr&lt;br /&gt;
|&lt;br /&gt;
Programmes, données, accessibles par les utilisateurs et non nécessaires lors du boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/home&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les répertoires de base des utilisateurs et de certains services comme le FTP, le serveur Web, Samba, etc.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/dev &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les périphériques. Le repertoire est en général géré dynamiquement par le système.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/bin&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Programmes nécessaires au boot, et disponibles ensuite à tous les utilisateurs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/sbin&lt;br /&gt;
|&lt;br /&gt;
Programmes nécessaires au boot, disponibles au root uniquement&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/var&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de log, spool d&#039;impression, de mail, etc. En général, fichiers qui changent tout le temps ( variable, d&#039;ou le nom /var )&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/etc &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de configuration du système&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/root&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire home de l&#039;administrateur&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/lib&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Bibliothèques et modules (comme les DLL de Windows) nécessaires au boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/tmp&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers temporaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/mnt&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire proposé pour monter des périphériques (ou /mnt/cdrom, /mnt/floppy, /mnt/zip, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/proc et /sys&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers d&#039;information sur la configuration système (les fichiers sont générés dynamiquement, pas de modifications possibles). Les fichiers dans ce répertoire n&#039;existent pas sur le disque, c&#039;est Linux qui les crée en temps réel lorsque vous en avez besoin.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/opt&lt;br /&gt;
|&lt;br /&gt;
Dans ce répertoire (optionnel), on peut ajouter des logiciels afin qu&#039;ils ne s&#039;installent pas dans les répertoires système. Peu utilisé, sauf par certaines applications commerciales.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et j&#039;en passe...&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passons à la pratique ! ===&lt;br /&gt;
&lt;br /&gt;
On peut installer Linux sur une partition DOS/Windows avec par exemple Linux4win de Mandrake. Cette méthode est pratique car elle nécessite un minimum de travail sur le système d&#039;exploitation d&#039;origine (en général Windows) : Linux s&#039;installe dans un gros fichier sur le disque Windows. &amp;lt;br /&amp;gt; Cependant, je vous déconseille cette méthode, à moins que vous y soyez obligé. Un tel système est très ralenti (au moins d&#039;un facteur 2) et vous allez être très déçu des performances de Linux ; de plus il arrive parfois des problèmes d&#039;incompatibilités avec cette méthode. Au prix où sont les disques durs aujourd&#039;hui et vu leur taille grandissante, vous trouverez bien de la place pour créer des partitions Linux.&lt;br /&gt;
&lt;br /&gt;
==== Préparation ====&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l&#039;installation, vous allez donc devoir libérer de la place pour les nouvelles partitions Linux. Si vous comptez installer Linux sur un disque vierge, pas de problème. Par contre, si vous voulez faire cohabiter Windows et Linux sur le même disque, et que Windows est déjà installé sur la totalité du disque, il va falloir arranger ça :) (à moins que vous ne vouliez réinstaller Windows de zéro).&lt;br /&gt;
&lt;br /&gt;
On va devoir passer de ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;----------------- Windows --------------&amp;gt;&amp;lt;br /&amp;gt; |==========================================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- Windows -&amp;gt; &amp;lt;- place libre pour Linux -&amp;gt;&amp;lt;br /&amp;gt; |=============|============================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alors soit vous virez tout et vous réinstallerez Windows, c&#039;est le plus simple évidemment, &amp;lt;br /&amp;gt; soit vous redimensionnez votre partition Windows. Pour ce faire, utilisez un logiciel approprié, comme FIPS (souvent sur les CD des distributions), ou [http://www.users.intercom.com/~ranish/part/ Partition Manager] (un freeware sous DOS) encore Partition Magic (produit commercial). Pour ça, je vous renvoie à la documentation du logiciel utilisé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 1&amp;lt;/u&amp;gt; : Partition Manager a l&#039;air intéressant, il fonctionne sous DOS, est &#039;&#039;freeware&#039;&#039;, et existe en version française. Il permet de gérer les partitions, de sauver le MBR (Master Boot Record, c&#039;est là que vient s&#039;enregistrer [install.php3#lilo LILO]) dans un fichier, de le restaurer, de modifier la taille d&#039;une partition, de la formater, etc. (Voir la [http://www.users.intercom.com/~ranish/part/ page de Partition Manager].)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 2&amp;lt;/u&amp;gt; : la distribution Mandrake est livrée avec un utilitaire de repartitionnement très performant, sachant même redimensionner les partitions au format NTFS.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, pensez à sauvegarder vos données perso !&lt;br /&gt;
&lt;br /&gt;
==== Installation proprement dite : le partitionnement des disques ====&lt;br /&gt;
&lt;br /&gt;
La plupart des installations commencent de la même façon : on crée une disquette de boot sous DOS/Windows avec l&#039;utilitaire &amp;quot;RAWRITE&amp;quot; (livré sur les CD des distributions), des fois même deux disquettes (pour la Slackware) ; en général le CD de la distribution est bootable (Mandrake par exemple) et il n&#039;y a alors pas besoin de disquette. Puis on boote sur la disquette ou le CD. &amp;lt;br /&amp;gt; Ensuite on suit les indications du programme d&#039;installation, puis on arrive sur le partitionnement des disques (attention à la Slackware où on n&#039;atterrit pas sur ce point directement : après s&#039;être logué en &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; il faut taper &amp;quot;&amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;&amp;quot; AVANT de taper &amp;quot;&amp;lt;tt&amp;gt;setup&amp;lt;/tt&amp;gt;&amp;quot;). Détaillons un peu cette procédure de partitionnement.&lt;br /&gt;
&lt;br /&gt;
Pour partitionner votre disque vous allez appeler la commande &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; suivie du nom du disque sur lequel vous voulez installer Linux, par exemple &amp;quot;&amp;lt;tt&amp;gt;fdisk /dev/hda&amp;lt;/tt&amp;gt;&amp;quot;. Des logiciels plus conviviaux existent comme DiskDruid (disponible lors de l&#039;installation d&#039;une Red Hat par exemple) ou [http://www.linux-mandrake.com/diskdrake/ DiskDrake] de MandrakeSoft fonctionnant en mode graphique (mais il me semble qu&#039;il nécessite que Linux soit déjà installé !).&lt;br /&gt;
&lt;br /&gt;
Je vous renvoie à l&#039;installation HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) pour toutes les commandes de &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; ; les principales sont :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;n  &amp;lt;/tt&amp;gt; Crée une partition, de type linux native (&amp;lt;tt&amp;gt;ext2fs&amp;lt;/tt&amp;gt;) par défaut.&lt;br /&gt;
* &amp;lt;tt&amp;gt;t  &amp;lt;/tt&amp;gt; Change le type d&#039;une partition (83 linux native, 82 linux swap).&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, tapez &amp;quot;&amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt;&amp;quot;, afin d&#039;accéder à la liste de toutes les commandes possibles. C&#039;est assez bien indiqué dans l&#039;installation-HOWTO.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention&#039;&#039;&#039; : le nombre de partitions dites &amp;quot;&#039;&#039;primaires&#039;&#039;&amp;quot; est limité à 4. Ainsi, si vous souhaitez définir plus de 4 partitions sur un même disque, l&#039;une de ces 4 partitions primaires doit être définie comme &amp;quot;&#039;&#039;étendue&#039;&#039;&amp;quot;, elle contiendra alors toutes les autres partitions. Les partitions primaires sont numérotées de 1 à 4, les partitions créés à l&#039;intérieur de la partition étendue sont numérotées à partir de 5.&lt;br /&gt;
&lt;br /&gt;
==== De &#039;&#039;&#039;combien de partitions&#039;&#039;&#039; allez vous avoir besoin ? ====&lt;br /&gt;
&lt;br /&gt;
* Tout d&#039;abord, une partition pour le &#039;&#039;&#039;swap&#039;&#039;&#039;. Le swap c&#039;est la mémoire virtuelle de Linux. La taille ? Ca va dépendre de votre mémoire physique. Une partition de swap de 128Mo avec 64 ou 128 Mo de RAM physique suffit amplement pour une utilisation standard. Je vous conseille donc un swap de 128 Mo : créez sous Linux avec &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; une partition de type 82 de 128 Mo.&lt;br /&gt;
* Pour le reste, vous avez le choix : &amp;lt;br /&amp;gt; La chose la plus simple est une seule partition (en plus du swap), qui contiendra toutes les données (système &amp;amp; utilisateur) ; prenez le plus de place possible (1 Go mini). &amp;lt;br /&amp;gt; En fait, il est intéressant de créer au moins deux partitions : une qui contiendra le système et une autre pour vos données personnelles. Comme ça, vous pouvez réinstaller Linux et même formater la partition système sans perdre vos données perso. Pour la même raison, on peut pousser le raffinement jusqu&#039;à avoir une troisième partition afin de contenir les logiciels que vous installerez par la suite (OpenOffice par exemple). (voir plus haut le tableau des [#repertoires_std répertoires standards])&lt;br /&gt;
À ces partitions, on attribuera des &#039;&#039;points de montage&#039;&#039;. &amp;lt;br /&amp;gt;  - C&#039;est quoi un point de montage ? &amp;lt;br /&amp;gt;  - Ah mais vous n&#039;avez pas lu le paragraphe [#orga_fichiers précédent] ? :-)&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez un serveur : =====&lt;br /&gt;
&lt;br /&gt;
L&#039;une des méthodes les plus utilisées, c&#039;est de mettre le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; sur un petit disque ou une partition, puis &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt; sur un autre disque en point de montage. Si notre système va être un serveur avec beaucoup d&#039;utilisateurs, qui vont avoir beaucoup de données personnelles à stocker, on peut créer aussi un &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; en point de montage sur un autre disque. On va aussi généralement réserver un disque ou une partition pour le répertoire temporaire que l&#039;on montera dans &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, et encore une autre pour le &amp;lt;tt&amp;gt;/var&amp;lt;/tt&amp;gt;. En fait, on ne va laisser dans le disque contenant la racine que les informations qui bougent peu et dont le volume augmente peu. &amp;lt;br /&amp;gt; Ainsi on ne charge pas le disque de point de montage &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; des répertoires &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;, etc., ce qui permet de facilement maintenir le système (si &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; est plein, on prend un disque + gros que l&#039;on monte en &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et on recopie tout dessus, ça permet de ne pas casser le reste...), etc. Ca a plein d&#039;avantages, je vous conseille de faire comme ça si vous avez plusieurs disques. De plus si un disque crashe, si ce n&#039;est pas le disque contenant la racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;, ça permet de rebooter quand même la machine, de travailler un minimum pour réinstaller un disque sans à avoir à réinstaller un système de base. &amp;lt;br /&amp;gt; Remarque : si vous installez un serveur qui sera très sollicité, soyez généreux pour la taille du swap (2 fois la taille de la RAM est un bon début).&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez sur une machine perso : =====&lt;br /&gt;
&lt;br /&gt;
Sur une machine mono-utilisateur, voire mono-disque, on peut faire une partition pour le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; (mini 1Go recommandé 2Go), une pour &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et une pour le swap (128 Mo par exemple). Vous pouvez aussi éventuellement faire une partition pour &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt; qui contiendra les logiciels que vous avez installés vous-même et qui ne proviennent pas de la distribution. Ca permet de mettre à jour voire de réinstaller la distribution sans trop devoir travailler derrière pour que ça fonctionne comme avant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;exemple de partionnement :&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- /dev/hda1 -&amp;gt; &amp;lt;--- /dev/hda2 (étendue) --&amp;gt;&amp;lt;br /&amp;gt;    (primaire)    /dev/hda5    hda6     hda7&amp;lt;br /&amp;gt;  &amp;lt;-- Windows --&amp;gt; &amp;lt;-- / --&amp;gt; &amp;lt;- /home -&amp;gt; &amp;lt;swap&amp;gt; &amp;lt;-pt de montage&amp;lt;br /&amp;gt; |===============|=========|===========|======| &amp;lt;-disque dur&amp;lt;br /&amp;gt;      2,5 Go        2,5 Go      5 Go    128 Mo &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque vous disposez de beaucoup de place sur vos disques (j&#039;ai par exemple 2 disques de 80 Go), pour une utilisation personnelle, 3 ou 4 Go suffisent pour la racine (ou alors 1 Go pour la racine et 2 Go pour /usr), gardez votre swap entre 128 et 512 Mo, et enfin, le reste pour /home (j&#039;ai monté un de mes disques contenant une seule partition dans /mnt/data et j&#039;y stocke mes fichiers multimédia).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot &amp;amp; S. Tchesmeli le 29/11/1999.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/11/1999, J.C. Cardot &amp;amp;amp; S. Tchesmeli&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4267</id>
		<title>Préparer l&#039;installation</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4267"/>
		<updated>2005-10-04T10:34:45Z</updated>

		<summary type="html">&lt;p&gt;Misc : remplace redhat par fedora, mandrake par mandriva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installer Linux]]&lt;br /&gt;
= Préparation à l&#039;installation de Linux =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Préparation à l&#039;installation de Linux&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par Jean-Christophe sur la base du travail de Serge&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Cette partie traite de la préparation que vous et votre ordinateur devrez subir avant d&#039;installer Linux ;-)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Vérifier son matériel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Avertissement&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Linux ne supporte pas tous les matériels qui existent dans le commerce ou ailleurs. La faute en revient aux constructeurs qui développent des drivers en général uniquement pour Windows. Les drivers Linux sont généralement développés par des personnes qui possèdent un matériel qu&#039;ils souhaitent utiliser avec Linux ; cela n&#039;est possible que si le fabricant ne garde pas secrètes les spécifications de son matériel, ce qui est malheureusement encore souvent le cas. &amp;lt;span style=&amp;quot;color:#FF6666;&amp;quot;&amp;gt;Dans ce cas, je vous invite à boycotter et à faire boycotter ces fabricants afin de faire pression sur eux&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Prérequis&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Microprocesseur&#039;&#039;&#039; : Intel x86 à base de microprocesseur 386 minimum (ou compatible comme AMD, CYRIX, etc.) &amp;lt;br /&amp;gt; (Je ne traite ici que des plates-formes &amp;quot;compatibles IBM PC&amp;quot;) &amp;lt;br /&amp;gt; Il existe des versions de Linux pour le matériel plus vieux (286, etc.), mais cela dépasse le cadre de cette rubrique. &amp;lt;br /&amp;gt; Il existe aussi des distributions de Linux pour 680xx ([http://www.mklinux.org MkLinux]), PowerPC (Linux PPC, [http://www.debian.org/ports/powerpc debian PPC], [http://qa.mandriva.com/twiki/bin/view/Main/MdkPpcPort Mandriva PPC] ou [http://www.gentoo.org/doc/en/gentoo-ppc-install.xml Gentoo PPC]), [http://www.debian.org/ports/alpha Alpha], etc. &lt;br /&gt;
* &#039;&#039;&#039;Disque dur&#039;&#039;&#039; : prévoyez pour le système lui-même de l&#039;ordre de 3 Go pour une distribution assez récente, surtout si vous installez X Window (le sous-système graphique de Linux) avec des environnements de bureau de type [http://www.kde.org KDE] ou [http://www.gnome.org Gnome] (très à la mode dans les distributions actuelles). Prévoyez aussi environ 256 Mo supplémentaires pour le Swap (i.e. mémoire virtuelle, on en reparle [#partitions plus tard]). &amp;lt;br /&amp;gt; Avec ça, vous allez déjà pouvoir faire tourner plein de choses. Sachez cependant que des &amp;quot;mini distributions&amp;quot; (ou parmi les distributions &amp;quot;classiques&amp;quot;, la Slackware ; parmi les distributions light basé sur slackware, il existe [http://drinou.tuxfamily.org drinou-linux]) passent avec 100 ou 150 Mo de disque dur, mais là, pas question d&#039;avoir un système graphique (encore que ...), ni de grosses applications de style base de données, etc.&lt;br /&gt;
* &#039;&#039;&#039;Mémoire&#039;&#039;&#039; : prévoyez environ 128 à 256 Mo avec un système X (ça passe avec 64 Mo, mais avec les nouveaux environnements sous X ça risque de ramer) et plus vous en avez : mieux c&#039;est. &amp;lt;br /&amp;gt; Là aussi, c&#039;est juste une recommendation pour utiliser les logiciels les plus courants compris dans les distributions. Maintenant, si vous prévoyez de faire de votre serveur Linux une vraie usine à gaz (serveur WEB, base de données SQL, proxy serveur, OpenOffice.org...), prévoyez plus de mémoire. &amp;lt;br /&amp;gt; Si vous avez peu de mémoire, vous risquez de ne pas pouvoir installer l&#039;interface graphique Xorg. &lt;br /&gt;
&lt;br /&gt;
D&#039;une manière général, il vaut mieux éviter de recycler un vieux pc si vous voulez essayer un système linux. Bien que ça soit possible, c&#039;est loin d&#039;être idéal pour une première expérience, les distributions modernes venant par défaut avec la plupart des fonctionnalités activés pour un plus grand confort de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons de plus près le matériel supporté. Sachez qu&#039;une liste assez complète se trouve dans le Hardware-HOWTO ([http://www.linuxdoc.org/HOWTO/Hardware-HOWTO.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) sur le site TLDP ([http://www.tldp.org The Linux Documentation Project &amp;lt;&#039;&#039;www.tldp.org&amp;gt;&#039;&#039;]). &amp;lt;br /&amp;gt; En général :&lt;br /&gt;
&lt;br /&gt;
* Les &#039;&#039;&#039;disques durs&#039;&#039;&#039; SCSI et IDE ainsi que leurs contrôleurs sont supportés dans la plupart des cas. Pour faire fonctionner un disque Serial ATA vous risquez d&#039;avoir quelques problèmes avec l&#039;installation par défaut des distributions : prévoyez un disque IDE standard pour faire l&#039;installation et vous verrez après comment installer l&#039;éventuel driver Serial ATA.&lt;br /&gt;
* Les &#039;&#039;&#039;cartes réseau&#039;&#039;&#039; de type compatible NE2000 ISA ou PCI, ainsi que les cartes 3COM, HP, AMD... sont très bien supportées. En fait, la très grande majorité des cartes réseau fonctionnent sous Linux sans problème.&lt;br /&gt;
* Les &#039;&#039;&#039;modems&#039;&#039;&#039; compatibles HAYES (attention toutefois à certains US ROBOTICS) mais &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;évitez de préférence les &amp;quot;soft-modems&amp;quot; qui ne marchent que sous Windows&amp;lt;/span&amp;gt; (US Robotics Winmodem, modems internes PCI en général). En fait, la communauté Linux a développé des drivers pour la plupart de ces modems depuis quelques temps, cependant leur installation reste &amp;quot;pénible&amp;quot;, mais c&#039;est de moins en moins vrai. &amp;lt;br /&amp;gt; En bref, les modems &amp;lt;u&amp;gt;externes&amp;lt;/u&amp;gt; sur port série ainsi que les modems sur bus &amp;lt;u&amp;gt;ISA&amp;lt;/u&amp;gt; sont OK, évitez les modems internes PCI (mais vous devriez pourvoir faire fonctionner la plupart de ceux-ci moyennant un petit investissement technique). &amp;lt;br /&amp;gt; Les &#039;&#039;&#039;modems ADSL&#039;&#039;&#039; : ECI USB et Alcatel/Thomson SpeedTouch USB sont supportés, ainsi que la plupart des modem BeWAN. Tous les modems ADSL Ethernet sont supportés. &amp;lt;br /&amp;gt; Les fournisseurs d&#039;accès restent souvent un problème. Certains providers (AOL pour ne pas le citer) rendent la connexion depuis Linux très complexe, allant jusqu&#039;à tenter de faire interdire certains logiciels de connexion ([http://www.peng.apinc.org penggy]) alors qu&#039;ils n&#039;en fournissent pas !&lt;br /&gt;
* Les &#039;&#039;&#039;cartes graphiques&#039;&#039;&#039; : toutes les cartes anciennes de type S3, S3 Virge, Trident, Cirrus Logic, etc. passent sans problèmes, mais attention aux dernières cartes vidéo très à la mode sous Windows... Je vous conseille si vous voulez de bonnes performances des cartes de type Matrox G200, les 3Dfx (toute génération, même la Rush est paraît-il supportée). Les cartes vidéo évoluent très vite, et peu de constructeurs font des efforts pour X... Attention donc. Pour une liste à jour, allez sur le site de XFree (voir dans les liens). Au niveau de l&#039;accélération 3D, les cartes 3Dfx sont parfaitement supportées (voir la [../hardware/3dfx.php3 rubrique 3Dfx]), mais [http://www.xfree.org XFree 4.2.x] a changé la donne. La plupart des cartes NVidia fonctionnent sans problème en 2D et assez bien en 3D (pour peu que vous installiez les drivers &#039;closed-source&#039; de chez NVidia). La plupart des cartes de chez ATI fonctionnent aussi en 2D (y compris les Radeon 8500, ...) et certaines sont supportées en 3D accélérée par XFree 4.3.0.&lt;br /&gt;
* Carte &#039;&#039;&#039;série multiports&#039;&#039;&#039;.&lt;br /&gt;
* Carte &#039;&#039;&#039;tuner TV&#039;&#039;&#039; : les cartes à base de chipset BT8xx (848, 878...) sont très bien supportées (comme la Mìro PCTV). Voir la [../hardware/tv.php3 rubrique TV]. Les cartes ATI ALL in Wonder disposent aussi de drivers, voir [http://gatos.sourceforge.net gatos.sourceforge.net].&lt;br /&gt;
* De plus en plus de webcams sont supportées. Les webcams philips sont supportées par un driver spécifique, et beaucoup de webcams sont prises en charge par le module [http://alpha.dyndns.org/ov511 OV511] ou par le module [http://webcam.sourceforge.net CPiA].&lt;br /&gt;
* &#039;&#039;&#039;Scanner&#039;&#039;&#039; : évitez absolument les scanners parallèles (quoi que ca commence à bouger de ce côté-là, mais pour l&#039;instant ils ne sont pas très bien supportés). Par contre, beaucoup de scanner SCSI fonctionnent très bien (Voir la home page de [http://www.mostang.com/sane/ SANE] pour les scanners supportés), en particulier certains scanner n&#039;ont plus de driver pour Windows 2000 et XP mais en ont pour Linux ;-). De plus en plus de scanner USB sont également supportés.&lt;br /&gt;
* &#039;&#039;&#039;Imprimante&#039;&#039;&#039; : évitez certaines anciennes Hewlett Packard jet d&#039;encre qui sont en fait des win-imprimantes (ex : HP820 Cxi) ne fonctionnant que sous Windows 9x (même pas NT !). La plupart des imprimantes LASER fonctionnent très bien, mais des win-imprimantes y sont aussi apparues :-(.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;ZIP&#039;&#039;&#039; sur port parallèle, SCSI ou USB : aucun problème.&lt;br /&gt;
* Lecteur JAZ, ZIP, de bandes, etc... SCSI : tous très bien supportés, il n&#039;y a quasiment pas de configuration à faire.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;CD-ROM&#039;&#039;&#039; et &#039;&#039;&#039;graveur&#039;&#039;&#039; : les graveurs SCSI sont très faciles à configurer ; pour configurer un graveur IDE, allez voir la rubrique [/trucs/?aff_item=8 Trucs]. En bref, les graveurs SCSI ou IDE fonctionnent sous Linux sans problème, les distributions récentes les configurent automatiquement et vous n&#039;aurez aucun souci.&lt;br /&gt;
* Les périphériques &#039;&#039;&#039;USB&#039;&#039;&#039; sont relativement bien supporté quand les constructeurs fournissent des documentations techniques. Ainsi, les souris USB, les claviers USB (même ceux ayant des touches supplémentaires, voir : [http://lineak.sourceforge.net/ LinEAK]), les webcams, les modems ADSL, les appareils photos numériques, les USB-Keys, etc. sont très bien supportés, sauf exception...&lt;br /&gt;
* Les &#039;&#039;&#039;DVD&#039;&#039;&#039; sont maintenant très bien supportés, essentiellement par plusieurs logiciels : xine, mplayer ou oggle. Les graveurs de DVD sont eux aussi assez bien supportés (de la même façon que les graveurs de CD, et par les mêmes logiciels).&lt;br /&gt;
&lt;br /&gt;
Voilà, cette liste est très incomplète mais permet de débuter. Pour une liste plus complète de matériels supportés, allez voir le Hardware-HOWTO ([http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) pour les matériels spécifiques.&lt;br /&gt;
&lt;br /&gt;
== 2. Choisir sa distribution ==&lt;br /&gt;
&lt;br /&gt;
Il y a dans les listes de distribution et sur Usenet des débats acharnés où chacun cherche à prouver que &amp;quot;sa&amp;quot; distribution est meilleure que les autres. C&#039;est avant tout une question de goût personnel. Voici les principales distributions :&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;Distribution&#039;&#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot; |&lt;br /&gt;
&#039;&#039;Commentaire&#039;&#039;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&#039;&#039;type de&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;paquet&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Fedora&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
la plus connue. Assez simple à installer pour un débutant mais pas la plus simple à maintenir à mon goût.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Mandriva&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est aujourd&#039;hui la distribution la plus utilisée sur les Desktops. C&#039;est certainement l&#039;un des plus faciles à installer, elle dispose d&#039;un [http://www.mandriva.com/fr/ bon site] pour avoir des correctifs, forums... et de plus elle est francisée (elle est réalisée par une société &amp;lt;span style=&amp;quot;color:#3333FF;&amp;quot;&amp;gt;fra&amp;lt;/span&amp;gt;nça&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;ise&amp;lt;/span&amp;gt;). Vu le support qu&#039;il y a derrière, grâce à leur site et leurs listes de diffusions, je trouve que cette distribution est un bon choix pour un débutant. De plus, cette distribution est complètement libre.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;SuSE&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
très bonne distribution pour les débutants aussi (installation simple) et bon site aussi pour le support.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Debian&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
c&#039;est vraiment &#039;&#039;&#039;LA&#039;&#039;&#039; distribution libre (elle ne comporte que des logiciels libres) et à part : le groupe de développeurs ne met à la disposition des personnes intéressées que l&#039;image ISO de la distribution : il n&#039;y a pas de société pour la commercialiser - et aucun impératif marketing, au contraire : la distribution sort quand les développeurs responsables du projet Debian estiment que tout est bon (ce qui donne des décalages entre ce qui était annoncé et la date réelle de sortie !). Bref, c&#039;est une distribution très stable, mais plutôt pour les initiés.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;deb&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Slackware&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
je la trouve excellente ; l&#039;installation n&#039;est pas toute simple, mais je trouve sa maintenance plus aisée que sur les Red-Hat. Bref, c&#039;est une distribution pour les initiés. Par contre, la Slackware est souvent en retard par rapport aux autres distributions au niveau des versions des logiciels. &amp;lt;br /&amp;gt; Cette distribution permet de s&#039;installer dans très peu de place disque (moins de 100 Mo) en ne choisissant que les packages indispensables.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.tar.gz&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Gentoo&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est une distribution &#039;source&#039; : on démarre avec un CD bootable en mode texte, on lit la documentation fournie et on compile tous les outils qu&#039;on va utiliser. C&#039;est une distribution qu&#039;on choisit lorsqu&#039;on a un peu de pratique.&amp;lt;br /&amp;gt; Sa grande qualité : un excellent gestionnaire de package inspiré des &amp;quot;ports&amp;quot; de BSD.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.ebuild&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
• Il existe encore bien d&#039;autres distributions...&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La facilité de trouver des paquets &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; milite également en faveur de Fedora et de Mandriva, mais on trouve également tout en &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt;, ce qui permet d&#039;installer tout logiciel sur toute distribution ; il suffit de le compiler si le package ne contient pas une version binaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se procurer une distribution&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous avez une bonne connexion au Net (ADSL, câble ou LS à votre travail) vous pouvez télécharger une distribution complète. Mandriva, Fedora et Debian sont disponibles en image ISO (un seul fichier d&#039;environ 700 Mo qu&#039;il suffit ensuite de graver sur un CD). &amp;lt;br /&amp;gt; Si vous souhaitez/devez acheter une distribution, vous la trouverez dans les librairies, FNAC, etc. Optez pour l&#039;une d&#039;elle avec si possible un gros livre fourni avec. Evitez aussi les distributions en boîte à plus de 60 euros, on est souvent déçu par le soit-disant contenu. Mandriva vend un DVD comportant tous les logiciels de la distribution, il est très pratique. De plus, de nombreux magazines informatiques proposent régulièrement sans supplément de prix (vers les 6 ou 7 euros donc) une distribution toute récente. Vous pouvez également trouver tout un tas de CD à bas prix en suivant ce [http://mandrivastore.com lien] chez Mandriva, ou chez [http://www.ikarios.com Ikarios].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Débuter&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous commencez avec Linux, je vous conseille de choisir Mandriva ou SuSE, ou mieux : commencez par tester Linux avec le Live-CD de [http://www.knoppixfr.org/ Knoppix] : c&#039;est une distribution qui est conçue pour fonctionner depuis le CD, sans s&#039;installer sur le disque dur. Pour tester Linux en grandeur nature sur votre matériel, c&#039;est l&#039;idéal.&lt;br /&gt;
&lt;br /&gt;
== 3. Préparer ses disques durs. ==&lt;br /&gt;
&lt;br /&gt;
Je ne vais pas vous décrire toute la procédure d&#039;installation, mais vous donner des conseils utiles, avec un peu d&#039;explications. Le installation-HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) ou le [http://www.tldp.org/LDP/gs/index.html Guide d&#039;installation et de démarrage] (en anglais) sont là pour ça, les docs des distribs et des centaines d&#039;autres sites aussi.&lt;br /&gt;
&lt;br /&gt;
=== Un peu de théorie ===&lt;br /&gt;
&lt;br /&gt;
==== Les systèmes de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Le système de fichiers (ou File System ou FS), c&#039;est la façon dont le système d&#039;exploitation structure les données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
Comme tout système d&#039;exploitation, Linux dispose de ses propres systèmes de fichiers :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EXT2FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext2&#039;&#039;&#039;) : c&#039;est le système de fichiers historique de Linux, il n&#039;est pas forcément le meilleur choix car, n&#039;étant pas journalisé, si vous éteignez mal votre ordinateur, linux prendra beaucoup de temps pour tester les disques durs (de la même manière que le scandisk de Microsoft).&lt;br /&gt;
* &#039;&#039;&#039;EXT3FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext3&#039;&#039;&#039;) : c&#039;est l&#039;évolution logique du ext2. Il présente l&#039;avantage d&#039;être compatible avec l&#039;ext2 tout en étant journalisé. Il n&#039;implémente toute fois pas les toutes dernières innovations en matière de journalisation. Utilisez ce système de fichiers si vous comptez pouvoir relire des informations depuis votre windows.&lt;br /&gt;
* &#039;&#039;&#039;REISERFS&#039;&#039;&#039; : c&#039;est un système de fichiers journalisé. C&#039;est un bon choix. Il est réimplémenté à partir de zéro et bénéficie de beaucoup d&#039;innovations.&lt;br /&gt;
&lt;br /&gt;
Il en existe d&#039;autres, mais préférez-leur l&#039;un de ceux-là, sauf si vous avez une bonne raison.&lt;br /&gt;
&lt;br /&gt;
Windows utilise quant à lui un système VFAT (partitions limitées à 2 Go) ou FAT32, voire FAT (l&#039;ancien système de fichier du DOS). Vous ne pouvez pas installer Linux sur une partition de ce type, car elles ne gèrent pas les [../admin/permissions.php3 permissions]. Les dernières versions de Windows (NT, 2000 et XP) utilisent aussi le système de fichiers NTFS, mais Microsoft n&#039;a pas fourni les spécifications techniques de ce format et Linux (ainsi que la plupart des autres systèmes d&#039;exploitation) est incapable de le gérer correctement (prévoyez une partition en VFAT-FAT32 pour partager des informations facilement entre Linux et Windows) : Linux sait lire les informations sur une partitions NTFS mais pas en écrire (cette fonctionnalité est en cours de développement).&lt;br /&gt;
&lt;br /&gt;
==== Les disques durs et les partitions sous Linux ====&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, voyons comment Linux identifie et organise les disques durs.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;IDE&#039;&#039;&#039;, la numérotation se fait avec un préfixe &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;hd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;, suivi par une lettre, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier IDE maître, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier esclave, etc. &amp;lt;br /&amp;gt; En résumé on a :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;hda  &amp;lt;/tt&amp;gt; Disque maître sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdb  &amp;lt;/tt&amp;gt; Disque esclave sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdc  &amp;lt;/tt&amp;gt; Disque maître sur le 2eme contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdd  &amp;lt;/tt&amp;gt; Disque esclave sur le 2eme contrôleur IDE&lt;br /&gt;
&lt;br /&gt;
Si vous avez d&#039;autres contrôleurs IDE (hé oui, cela arrive !) la numérotation se poursuit (&amp;lt;tt&amp;gt;hde&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;hdf&amp;lt;/tt&amp;gt;, etc.). &amp;lt;br /&amp;gt; Attention : les lecteurs de CD-ROM IDE apparaissent comme un disque dur. Si votre CD est maître sur la deuxième nappe par exemple, il sera nommé &amp;lt;tt&amp;gt;hdc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;SCSI&#039;&#039;&#039;, cette fois c&#039;est l&#039;ID SCSI qui va donner la lettre, le préfixe étant &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;sd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;. &amp;lt;br /&amp;gt; Prenons par exemple 3 disques scsi d&#039;id 0,1 et 3 on va avoir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;sda  &amp;lt;/tt&amp;gt; Disque d&#039;ID 0&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdb  &amp;lt;/tt&amp;gt; Disque d&#039;ID 1&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdd  &amp;lt;/tt&amp;gt; Disque d&#039;ID 3&lt;br /&gt;
&lt;br /&gt;
Attention : les lecteurs de CD-ROM SCSI, les ZIP, JAZ, etc. SCSI ainsi que les périphériques de stockage USB (appareils photo, clefs USB...) apparaissent comme un disque dur SCSI ; ils se nomment aussi &amp;lt;tt&amp;gt;sdx&amp;lt;/tt&amp;gt; suivant leur ID. Astuce : pour connaître la liste de vos périphériques de ce type, tapez : &amp;lt;code&amp;gt;cdrecord -scanbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;partitions&#039;&#039;&#039; sont quant à elles représentées par le nom du disque dur, suivi d&#039;un chiffre représentant la partition. &amp;lt;br /&amp;gt; Par exemple, la première partition du premier disque IDE se nomme &#039;&#039;&#039;&amp;lt;tt&amp;gt;hda1&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, de même, la troisième partition du disque SCSI d&#039;ID 1 se nommera &#039;&#039;&#039;&amp;lt;tt&amp;gt;sdb3&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Organisation des fichiers sous Linux ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;L&#039;arborescence&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, ou tout autre Unix d&#039;ailleurs, il n&#039;y a pas de lettre représentant le disque dur comme le &amp;lt;tt&amp;gt;C:&amp;lt;/tt&amp;gt; de Windows/DOS. &amp;lt;br /&amp;gt; De plus, le signe &#039;&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;&#039; est remplacé par &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039; pour séparer les répertoires. &amp;lt;br /&amp;gt; Il y a une seule arborescence, qui débute à la &amp;quot;racine&amp;quot;, notée &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039;, et tous les disques durs/partitions apparaissent dans cette arborescence avec leur contenu de façon transparente comme un répertoire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les périphériques&#039;&#039;&#039;&amp;lt;br /&amp;gt; De plus, tout périphérique est identifié à un fichier qui se trouve dans le répertoire &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; (comme &#039;&#039;&#039;dev&#039;&#039;&#039;ice, périphérique en anglais). Par exemple, le disque maître du deuxième port IDE est identifié par &amp;lt;tt&amp;gt;/dev/hdc&amp;lt;/tt&amp;gt;, sa deuxième partition par &amp;lt;tt&amp;gt;/dev/hdc2&amp;lt;/tt&amp;gt;. &amp;lt;br /&amp;gt; Le lecteur de disquette est représenté par &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les partitions / les points de montage&#039;&#039;&#039;&amp;lt;br /&amp;gt; Les partitions que l&#039;on va créer sur les disques durs seront attachées à des répertoires de l&#039;arborescence, ou &amp;quot;&#039;&#039;&#039;points de montage&#039;&#039;&#039;&amp;quot;. C&#039;est ce qu&#039;on appelle &amp;quot;&#039;&#039;monter une partition&#039;&#039;&amp;quot;. Le point de montage est un simple répertoire, vide avant le montage, et qui après le montage, représente le contenu de la partition montée. &amp;lt;br /&amp;gt; Par exemple, supposons que nous ayons créé une partition &amp;lt;tt&amp;gt;/dev/hda2&amp;lt;/tt&amp;gt; (premier disque IDE, 2ème partition) pour contenir le système. On &#039;&#039;montera&#039;&#039; cette partition (automatiquement, heureusement !) dans le répertoire racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;. Si la partition &amp;lt;tt&amp;gt;/dev/hda3&amp;lt;/tt&amp;gt; est destinée à contenir les données utilisateur, on la montera dans le &#039;&#039;point de montage&#039;&#039; (=répertoire) &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;. On verra le contenu de cette partition dans le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; comme si c&#039;était n&#039;importe quel autre répertoire, alors que physiquement les données sont sur une autre partition. &amp;lt;br /&amp;gt; De même, pour accéder à la disquette, on montera le périphérique &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/floppy&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/floppy&amp;lt;/tt&amp;gt; (selon la distribution) et pour accéder au CD-ROM, on montera le périphérique &amp;lt;tt&amp;gt;/dev/cdrom&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/cdrom&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/cdrom&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les répertoires standards&#039;&#039;&#039;&amp;lt;br /&amp;gt; Linux possède des répertoires &amp;quot;spéciaux&amp;quot; à la racine (un peu comme le &amp;lt;tt&amp;gt;C:\windows&amp;lt;/tt&amp;gt;), qui sont classiques dans les systèmes Unix et peuvent ou non représenter un point de montage pour une partition.&lt;br /&gt;
&lt;br /&gt;
On a déjà vu par exemple le répertoire spécial &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; où tous les périphériques sont répertoriés en tant que fichiers, ou encore le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; qui contient les données personnelles des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Chacun des répertoires ci-dessous peut être soit un simple répertoire dans la partition racine, soit le &#039;&#039;point de montage&#039;&#039; d&#039;une autre partition, mais dans tous les cas le résultat est le même : des fichiers dans des répertoires.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Les répertoires standards de Linux sont :&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
La racine du système = la base.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/boot&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers utilisés pour booter le noyau&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/usr&lt;br /&gt;
|&lt;br /&gt;
Programmes, données, accessibles par les utilisateurs et non nécessaires lors du boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/home&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les répertoires de base des utilisateurs et de certains services comme le FTP, le serveur Web, Samba, etc.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/dev &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les périphériques&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/bin&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Programmes nécessaires au boot, et disponibles ensuite à tous les utilisateurs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/sbin&lt;br /&gt;
|&lt;br /&gt;
Programmes nécessaires au boot, disponibles au root uniquement&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/var&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de log, spool d&#039;impression, de mail, etc. En général, fichiers qui changent tout le temps&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/etc &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de configuration du système&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/root&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire home de l&#039;administrateur&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/lib&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Bibliothèques et modules (comme les DLL de Windows) nécessaires au boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/tmp&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers temporaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/mnt&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire proposé pour monter des périphériques (ou /mnt/cdrom, /mnt/floppy, /mnt/zip, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/proc&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers d&#039;information sur la configuration système (les fichiers sont générés dynamiquement, pas de modifications possibles). Les fichiers dans ce répertoire n&#039;existent pas sur le disque, c&#039;est Linux qui les crée en temps réel lorsque vous en avez besoin.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/opt&lt;br /&gt;
|&lt;br /&gt;
Dans ce répertoire (optionnel), on peut ajouter des logiciels afin qu&#039;ils ne s&#039;installent pas dans les répertoires système.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et j&#039;en passe...&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passons à la pratique ! ===&lt;br /&gt;
&lt;br /&gt;
On peut installer Linux sur une partition DOS/Windows avec par exemple Linux4win de Mandrake. Cette méthode est pratique car elle nécessite un minimum de travail sur le système d&#039;exploitation d&#039;origine (en général Windows) : Linux s&#039;installe dans un gros fichier sur le disque Windows. &amp;lt;br /&amp;gt; Cependant, je vous déconseille cette méthode, à moins que vous y soyez obligé. Un tel système est très ralenti (au moins d&#039;un facteur 2) et vous allez être très déçu des performances de Linux ; de plus il arrive parfois des problèmes d&#039;incompatibilités avec cette méthode. Au prix où sont les disques durs aujourd&#039;hui et vu leur taille grandissante, vous trouverez bien de la place pour créer des partitions Linux.&lt;br /&gt;
&lt;br /&gt;
==== Préparation ====&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l&#039;installation, vous allez donc devoir libérer de la place pour les nouvelles partitions Linux. Si vous comptez installer Linux sur un disque vierge, pas de problème. Par contre, si vous voulez faire cohabiter Windows et Linux sur le même disque, et que Windows est déjà installé sur la totalité du disque, il va falloir arranger ça :) (à moins que vous ne vouliez réinstaller Windows de zéro).&lt;br /&gt;
&lt;br /&gt;
On va devoir passer de ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;----------------- Windows --------------&amp;gt;&amp;lt;br /&amp;gt; |==========================================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- Windows -&amp;gt; &amp;lt;- place libre pour Linux -&amp;gt;&amp;lt;br /&amp;gt; |=============|============================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alors soit vous virez tout et vous réinstallerez Windows, c&#039;est le plus simple évidemment, &amp;lt;br /&amp;gt; soit vous redimensionnez votre partition Windows. Pour ce faire, utilisez un logiciel approprié, comme FIPS (souvent sur les CD des distributions), ou [http://www.users.intercom.com/~ranish/part/ Partition Manager] (un freeware sous DOS) encore Partition Magic (produit commercial). Pour ça, je vous renvoie à la documentation du logiciel utilisé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 1&amp;lt;/u&amp;gt; : Partition Manager a l&#039;air intéressant, il fonctionne sous DOS, est &#039;&#039;freeware&#039;&#039;, et existe en version française. Il permet de gérer les partitions, de sauver le MBR (Master Boot Record, c&#039;est là que vient s&#039;enregistrer [install.php3#lilo LILO]) dans un fichier, de le restaurer, de modifier la taille d&#039;une partition, de la formater, etc. (Voir la [http://www.users.intercom.com/~ranish/part/ page de Partition Manager].)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 2&amp;lt;/u&amp;gt; : la distribution Mandrake est livrée avec un utilitaire de repartitionnement très performant, sachant même redimensionner les partitions au format NTFS.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, pensez à sauvegarder vos données perso !&lt;br /&gt;
&lt;br /&gt;
==== Installation proprement dite : le partitionnement des disques ====&lt;br /&gt;
&lt;br /&gt;
La plupart des installations commencent de la même façon : on crée une disquette de boot sous DOS/Windows avec l&#039;utilitaire &amp;quot;RAWRITE&amp;quot; (livré sur les CD des distributions), des fois même deux disquettes (pour la Slackware) ; en général le CD de la distribution est bootable (Mandrake par exemple) et il n&#039;y a alors pas besoin de disquette. Puis on boote sur la disquette ou le CD. &amp;lt;br /&amp;gt; Ensuite on suit les indications du programme d&#039;installation, puis on arrive sur le partitionnement des disques (attention à la Slackware où on n&#039;atterrit pas sur ce point directement : après s&#039;être logué en &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; il faut taper &amp;quot;&amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;&amp;quot; AVANT de taper &amp;quot;&amp;lt;tt&amp;gt;setup&amp;lt;/tt&amp;gt;&amp;quot;). Détaillons un peu cette procédure de partitionnement.&lt;br /&gt;
&lt;br /&gt;
Pour partitionner votre disque vous allez appeler la commande &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; suivie du nom du disque sur lequel vous voulez installer Linux, par exemple &amp;quot;&amp;lt;tt&amp;gt;fdisk /dev/hda&amp;lt;/tt&amp;gt;&amp;quot;. Des logiciels plus conviviaux existent comme DiskDruid (disponible lors de l&#039;installation d&#039;une Red Hat par exemple) ou [http://www.linux-mandrake.com/diskdrake/ DiskDrake] de MandrakeSoft fonctionnant en mode graphique (mais il me semble qu&#039;il nécessite que Linux soit déjà installé !).&lt;br /&gt;
&lt;br /&gt;
Je vous renvoie à l&#039;installation HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) pour toutes les commandes de &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; ; les principales sont :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;n  &amp;lt;/tt&amp;gt; Crée une partition, de type linux native (&amp;lt;tt&amp;gt;ext2fs&amp;lt;/tt&amp;gt;) par défaut.&lt;br /&gt;
* &amp;lt;tt&amp;gt;t  &amp;lt;/tt&amp;gt; Change le type d&#039;une partition (83 linux native, 82 linux swap).&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, tapez &amp;quot;&amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt;&amp;quot;, afin d&#039;accéder à la liste de toutes les commandes possibles. C&#039;est assez bien indiqué dans l&#039;installation-HOWTO.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention&#039;&#039;&#039; : le nombre de partitions dites &amp;quot;&#039;&#039;primaires&#039;&#039;&amp;quot; est limité à 4. Ainsi, si vous souhaitez définir plus de 4 partitions sur un même disque, l&#039;une de ces 4 partitions primaires doit être définie comme &amp;quot;&#039;&#039;étendue&#039;&#039;&amp;quot;, elle contiendra alors toutes les autres partitions. Les partitions primaires sont numérotées de 1 à 4, les partitions créés à l&#039;intérieur de la partition étendue sont numérotées à partir de 5.&lt;br /&gt;
&lt;br /&gt;
==== De &#039;&#039;&#039;combien de partitions&#039;&#039;&#039; allez vous avoir besoin ? ====&lt;br /&gt;
&lt;br /&gt;
* Tout d&#039;abord, une partition pour le &#039;&#039;&#039;swap&#039;&#039;&#039;. Le swap c&#039;est la mémoire virtuelle de Linux. La taille ? Ca va dépendre de votre mémoire physique. Une partition de swap de 128Mo avec 64 ou 128 Mo de RAM physique suffit amplement pour une utilisation standard. Je vous conseille donc un swap de 128 Mo : créez sous Linux avec &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; une partition de type 82 de 128 Mo.&lt;br /&gt;
* Pour le reste, vous avez le choix : &amp;lt;br /&amp;gt; La chose la plus simple est une seule partition (en plus du swap), qui contiendra toutes les données (système &amp;amp; utilisateur) ; prenez le plus de place possible (1 Go mini). &amp;lt;br /&amp;gt; En fait, il est intéressant de créer au moins deux partitions : une qui contiendra le système et une autre pour vos données personnelles. Comme ça, vous pouvez réinstaller Linux et même formater la partition système sans perdre vos données perso. Pour la même raison, on peut pousser le raffinement jusqu&#039;à avoir une troisième partition afin de contenir les logiciels que vous installerez par la suite (OpenOffice par exemple). (voir plus haut le tableau des [#repertoires_std répertoires standards])&lt;br /&gt;
À ces partitions, on attribuera des &#039;&#039;points de montage&#039;&#039;. &amp;lt;br /&amp;gt;  - C&#039;est quoi un point de montage ? &amp;lt;br /&amp;gt;  - Ah mais vous n&#039;avez pas lu le paragraphe [#orga_fichiers précédent] ? :-)&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez un serveur : =====&lt;br /&gt;
&lt;br /&gt;
L&#039;une des méthodes les plus utilisées, c&#039;est de mettre le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; sur un petit disque ou une partition, puis &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt; sur un autre disque en point de montage. Si notre système va être un serveur avec beaucoup d&#039;utilisateurs, qui vont avoir beaucoup de données personnelles à stocker, on peut créer aussi un &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; en point de montage sur un autre disque. On va aussi généralement réserver un disque ou une partition pour le répertoire temporaire que l&#039;on montera dans &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, et encore une autre pour le &amp;lt;tt&amp;gt;/var&amp;lt;/tt&amp;gt;. En fait, on ne va laisser dans le disque contenant la racine que les informations qui bougent peu et dont le volume augmente peu. &amp;lt;br /&amp;gt; Ainsi on ne charge pas le disque de point de montage &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; des répertoires &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;, etc., ce qui permet de facilement maintenir le système (si &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; est plein, on prend un disque + gros que l&#039;on monte en &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et on recopie tout dessus, ça permet de ne pas casser le reste...), etc. Ca a plein d&#039;avantages, je vous conseille de faire comme ça si vous avez plusieurs disques. De plus si un disque crashe, si ce n&#039;est pas le disque contenant la racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;, ça permet de rebooter quand même la machine, de travailler un minimum pour réinstaller un disque sans à avoir à réinstaller un système de base. &amp;lt;br /&amp;gt; Remarque : si vous installez un serveur qui sera très sollicité, soyez généreux pour la taille du swap (2 fois la taille de la RAM est un bon début).&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez sur une machine perso : =====&lt;br /&gt;
&lt;br /&gt;
Sur une machine mono-utilisateur, voire mono-disque, on peut faire une partition pour le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; (mini 1Go recommandé 2Go), une pour &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et une pour le swap (128 Mo par exemple). Vous pouvez aussi éventuellement faire une partition pour &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt; qui contiendra les logiciels que vous avez installés vous-même et qui ne proviennent pas de la distribution. Ca permet de mettre à jour voire de réinstaller la distribution sans trop devoir travailler derrière pour que ça fonctionne comme avant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;exemple de partionnement :&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- /dev/hda1 -&amp;gt; &amp;lt;--- /dev/hda2 (étendue) --&amp;gt;&amp;lt;br /&amp;gt;    (primaire)    /dev/hda5    hda6     hda7&amp;lt;br /&amp;gt;  &amp;lt;-- Windows --&amp;gt; &amp;lt;-- / --&amp;gt; &amp;lt;- /home -&amp;gt; &amp;lt;swap&amp;gt; &amp;lt;-pt de montage&amp;lt;br /&amp;gt; |===============|=========|===========|======| &amp;lt;-disque dur&amp;lt;br /&amp;gt;      2,5 Go        2,5 Go      5 Go    128 Mo &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque vous disposez de beaucoup de place sur vos disques (j&#039;ai par exemple 2 disques de 80 Go), pour une utilisation personnelle, 3 ou 4 Go suffisent pour la racine (ou alors 1 Go pour la racine et 2 Go pour /usr), gardez votre swap entre 128 et 512 Mo, et enfin, le reste pour /home (j&#039;ai monté un de mes disques contenant une seule partition dans /mnt/data et j&#039;y stocke mes fichiers multimédia).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot &amp;amp; S. Tchesmeli le 29/11/1999.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/11/1999, J.C. Cardot &amp;amp;amp; S. Tchesmeli&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4266</id>
		<title>Préparer l&#039;installation</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Pr%C3%A9parer_l%27installation&amp;diff=4266"/>
		<updated>2005-10-04T10:30:29Z</updated>

		<summary type="html">&lt;p&gt;Misc : remplacement de mandrake par mandriva, réajustement de la configuration pour une distribution moderne, et un warning sur le fait de ne pas réutiliser un vieux pc pour un premier linux&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installer Linux]]&lt;br /&gt;
= Préparation à l&#039;installation de Linux =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Préparation à l&#039;installation de Linux&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par Jean-Christophe sur la base du travail de Serge&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Cette partie traite de la préparation que vous et votre ordinateur devrez subir avant d&#039;installer Linux ;-)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Vérifier son matériel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Avertissement&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Linux ne supporte pas tous les matériels qui existent dans le commerce ou ailleurs. La faute en revient aux constructeurs qui développent des drivers en général uniquement pour Windows. Les drivers Linux sont généralement développés par des personnes qui possèdent un matériel qu&#039;ils souhaitent utiliser avec Linux ; cela n&#039;est possible que si le fabricant ne garde pas secrètes les spécifications de son matériel, ce qui est malheureusement encore souvent le cas. &amp;lt;span style=&amp;quot;color:#FF6666;&amp;quot;&amp;gt;Dans ce cas, je vous invite à boycotter et à faire boycotter ces fabricants afin de faire pression sur eux&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Prérequis&amp;lt;/u&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Microprocesseur&#039;&#039;&#039; : Intel x86 à base de microprocesseur 386 minimum (ou compatible comme AMD, CYRIX, etc.) &amp;lt;br /&amp;gt; (Je ne traite ici que des plates-formes &amp;quot;compatibles IBM PC&amp;quot;) &amp;lt;br /&amp;gt; Il existe des versions de Linux pour le matériel plus vieux (286, etc.), mais cela dépasse le cadre de cette rubrique. &amp;lt;br /&amp;gt; Il existe aussi des distributions de Linux pour 680xx ([http://www.mklinux.org MkLinux]), PowerPC (Linux PPC, [http://www.debian.org/ports/powerpc debian PPC], [http://qa.mandriva.com/twiki/bin/view/Main/MdkPpcPort Mandriva PPC] ou [http://www.gentoo.org/doc/en/gentoo-ppc-install.xml Gentoo PPC]), [http://www.debian.org/ports/alpha Alpha], etc. &lt;br /&gt;
* &#039;&#039;&#039;Disque dur&#039;&#039;&#039; : prévoyez pour le système lui-même de l&#039;ordre de 3 Go pour une distribution assez récente, surtout si vous installez X Window (le sous-système graphique de Linux) avec des environnements de bureau de type [http://www.kde.org KDE] ou [http://www.gnome.org Gnome] (très à la mode dans les distributions actuelles). Prévoyez aussi environ 256 Mo supplémentaires pour le Swap (i.e. mémoire virtuelle, on en reparle [#partitions plus tard]). &amp;lt;br /&amp;gt; Avec ça, vous allez déjà pouvoir faire tourner plein de choses. Sachez cependant que des &amp;quot;mini distributions&amp;quot; (ou parmi les distributions &amp;quot;classiques&amp;quot;, la Slackware ; parmi les distributions light basé sur slackware, il existe [http://drinou.tuxfamily.org drinou-linux]) passent avec 100 ou 150 Mo de disque dur, mais là, pas question d&#039;avoir un système graphique (encore que ...), ni de grosses applications de style base de données, etc.&lt;br /&gt;
* &#039;&#039;&#039;Mémoire&#039;&#039;&#039; : prévoyez environ 128 à 256 Mo avec un système X (ça passe avec 64 Mo, mais avec les nouveaux environnements sous X ça risque de ramer) et plus vous en avez : mieux c&#039;est. &amp;lt;br /&amp;gt; Là aussi, c&#039;est juste une recommendation pour utiliser les logiciels les plus courants compris dans les distributions. Maintenant, si vous prévoyez de faire de votre serveur Linux une vraie usine à gaz (serveur WEB, base de données SQL, proxy serveur, OpenOffice.org...), prévoyez plus de mémoire. &amp;lt;br /&amp;gt; Si vous avez peu de mémoire, vous risquez de ne pas pouvoir installer l&#039;interface graphique Xorg. &lt;br /&gt;
&lt;br /&gt;
D&#039;une manière général, il vaut mieux éviter de recycler un vieux pc si vous voulez essayer un système linux. Bien que ça soit possible, c&#039;est loin d&#039;être idéal pour une première expérience, les distributions modernes venant par défaut avec la plupart des fonctionnalités activés pour un plus grand confort de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
Maintenant voyons de plus près le matériel supporté. Sachez qu&#039;une liste assez complète se trouve dans le Hardware-HOWTO ([http://www.linuxdoc.org/HOWTO/Hardware-HOWTO.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) sur le site TLDP ([http://www.tldp.org The Linux Documentation Project &amp;lt;&#039;&#039;www.tldp.org&amp;gt;&#039;&#039;]). &amp;lt;br /&amp;gt; En général :&lt;br /&gt;
&lt;br /&gt;
* Les &#039;&#039;&#039;disques durs&#039;&#039;&#039; SCSI et IDE ainsi que leurs contrôleurs sont supportés dans la plupart des cas. Pour faire fonctionner un disque Serial ATA vous risquez d&#039;avoir quelques problèmes avec l&#039;installation par défaut des distributions : prévoyez un disque IDE standard pour faire l&#039;installation et vous verrez après comment installer l&#039;éventuel driver Serial ATA.&lt;br /&gt;
* Les &#039;&#039;&#039;cartes réseau&#039;&#039;&#039; de type compatible NE2000 ISA ou PCI, ainsi que les cartes 3COM, HP, AMD... sont très bien supportées. En fait, la très grande majorité des cartes réseau fonctionnent sous Linux sans problème.&lt;br /&gt;
* Les &#039;&#039;&#039;modems&#039;&#039;&#039; compatibles HAYES (attention toutefois à certains US ROBOTICS) mais &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;évitez de préférence les &amp;quot;soft-modems&amp;quot; qui ne marchent que sous Windows&amp;lt;/span&amp;gt; (US Robotics Winmodem, modems internes PCI en général). En fait, la communauté Linux a développé des drivers pour la plupart de ces modems depuis quelques temps, cependant leur installation reste &amp;quot;pénible&amp;quot;, mais c&#039;est de moins en moins vrai. &amp;lt;br /&amp;gt; En bref, les modems &amp;lt;u&amp;gt;externes&amp;lt;/u&amp;gt; sur port série ainsi que les modems sur bus &amp;lt;u&amp;gt;ISA&amp;lt;/u&amp;gt; sont OK, évitez les modems internes PCI (mais vous devriez pourvoir faire fonctionner la plupart de ceux-ci moyennant un petit investissement technique). &amp;lt;br /&amp;gt; Les &#039;&#039;&#039;modems ADSL&#039;&#039;&#039; : ECI USB et Alcatel/Thomson SpeedTouch USB sont supportés, ainsi que la plupart des modem BeWAN. Tous les modems ADSL Ethernet sont supportés. &amp;lt;br /&amp;gt; Les fournisseurs d&#039;accès restent souvent un problème. Certains providers (AOL pour ne pas le citer) rendent la connexion depuis Linux très complexe, allant jusqu&#039;à tenter de faire interdire certains logiciels de connexion ([http://www.peng.apinc.org penggy]) alors qu&#039;ils n&#039;en fournissent pas !&lt;br /&gt;
* Les &#039;&#039;&#039;cartes graphiques&#039;&#039;&#039; : toutes les cartes anciennes de type S3, S3 Virge, Trident, Cirrus Logic, etc. passent sans problèmes, mais attention aux dernières cartes vidéo très à la mode sous Windows... Je vous conseille si vous voulez de bonnes performances des cartes de type Matrox G200, les 3Dfx (toute génération, même la Rush est paraît-il supportée). Les cartes vidéo évoluent très vite, et peu de constructeurs font des efforts pour X... Attention donc. Pour une liste à jour, allez sur le site de XFree (voir dans les liens). Au niveau de l&#039;accélération 3D, les cartes 3Dfx sont parfaitement supportées (voir la [../hardware/3dfx.php3 rubrique 3Dfx]), mais [http://www.xfree.org XFree 4.2.x] a changé la donne. La plupart des cartes NVidia fonctionnent sans problème en 2D et assez bien en 3D (pour peu que vous installiez les drivers &#039;closed-source&#039; de chez NVidia). La plupart des cartes de chez ATI fonctionnent aussi en 2D (y compris les Radeon 8500, ...) et certaines sont supportées en 3D accélérée par XFree 4.3.0.&lt;br /&gt;
* Carte &#039;&#039;&#039;série multiports&#039;&#039;&#039;.&lt;br /&gt;
* Carte &#039;&#039;&#039;tuner TV&#039;&#039;&#039; : les cartes à base de chipset BT8xx (848, 878...) sont très bien supportées (comme la Mìro PCTV). Voir la [../hardware/tv.php3 rubrique TV]. Les cartes ATI ALL in Wonder disposent aussi de drivers, voir [http://gatos.sourceforge.net gatos.sourceforge.net].&lt;br /&gt;
* De plus en plus de webcams sont supportées. Les webcams philips sont supportées par un driver spécifique, et beaucoup de webcams sont prises en charge par le module [http://alpha.dyndns.org/ov511 OV511] ou par le module [http://webcam.sourceforge.net CPiA].&lt;br /&gt;
* &#039;&#039;&#039;Scanner&#039;&#039;&#039; : évitez absolument les scanners parallèles (quoi que ca commence à bouger de ce côté-là, mais pour l&#039;instant ils ne sont pas très bien supportés). Par contre, beaucoup de scanner SCSI fonctionnent très bien (Voir la home page de [http://www.mostang.com/sane/ SANE] pour les scanners supportés), en particulier certains scanner n&#039;ont plus de driver pour Windows 2000 et XP mais en ont pour Linux ;-). De plus en plus de scanner USB sont également supportés.&lt;br /&gt;
* &#039;&#039;&#039;Imprimante&#039;&#039;&#039; : évitez certaines anciennes Hewlett Packard jet d&#039;encre qui sont en fait des win-imprimantes (ex : HP820 Cxi) ne fonctionnant que sous Windows 9x (même pas NT !). La plupart des imprimantes LASER fonctionnent très bien, mais des win-imprimantes y sont aussi apparues :-(.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;ZIP&#039;&#039;&#039; sur port parallèle, SCSI ou USB : aucun problème.&lt;br /&gt;
* Lecteur JAZ, ZIP, de bandes, etc... SCSI : tous très bien supportés, il n&#039;y a quasiment pas de configuration à faire.&lt;br /&gt;
* Lecteur &#039;&#039;&#039;CD-ROM&#039;&#039;&#039; et &#039;&#039;&#039;graveur&#039;&#039;&#039; : les graveurs SCSI sont très faciles à configurer ; pour configurer un graveur IDE, allez voir la rubrique [/trucs/?aff_item=8 Trucs]. En bref, les graveurs SCSI ou IDE fonctionnent sous Linux sans problème, les distributions récentes les configurent automatiquement et vous n&#039;aurez aucun souci.&lt;br /&gt;
* Les périphériques &#039;&#039;&#039;USB&#039;&#039;&#039; sont relativement bien supporté quand les constructeurs fournissent des documentations techniques. Ainsi, les souris USB, les claviers USB (même ceux ayant des touches supplémentaires, voir : [http://lineak.sourceforge.net/ LinEAK]), les webcams, les modems ADSL, les appareils photos numériques, les USB-Keys, etc. sont très bien supportés, sauf exception...&lt;br /&gt;
* Les &#039;&#039;&#039;DVD&#039;&#039;&#039; sont maintenant très bien supportés, essentiellement par plusieurs logiciels : xine, mplayer ou oggle. Les graveurs de DVD sont eux aussi assez bien supportés (de la même façon que les graveurs de CD, et par les mêmes logiciels).&lt;br /&gt;
&lt;br /&gt;
Voilà, cette liste est très incomplète mais permet de débuter. Pour une liste plus complète de matériels supportés, allez voir le Hardware-HOWTO ([http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Hardware-HOWTO.html  français]) pour les matériels spécifiques.&lt;br /&gt;
&lt;br /&gt;
== 2. Choisir sa distribution ==&lt;br /&gt;
&lt;br /&gt;
Il y a dans les listes de distribution et sur Usenet des débats acharnés où chacun cherche à prouver que &amp;quot;sa&amp;quot; distribution est meilleure que les autres. C&#039;est avant tout une question de goût personnel. Voici les principales distributions :&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;Distribution&#039;&#039;&lt;br /&gt;
| width=&amp;quot;70%&amp;quot; |&lt;br /&gt;
&#039;&#039;Commentaire&#039;&#039;&lt;br /&gt;
| width=&amp;quot;10%&amp;quot; |&lt;br /&gt;
&#039;&#039;type de&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;paquet&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Red-Hat&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
la plus connue. Assez simple à installer pour un débutant mais pas la plus simple à maintenir à mon goût.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Mandrake&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est aujourd&#039;hui la distribution la plus utilisée sur les Desktop. C&#039;est certainement l&#039;un des plus faciles à installer, elle dispose d&#039;un [http://www.linux-mandrake.com/fr/ bon site] pour avoir des correctifs, forums... et de plus elle est francisée (elle est réalisée par une société &amp;lt;span style=&amp;quot;color:#3333FF;&amp;quot;&amp;gt;fra&amp;lt;/span&amp;gt;nça&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt;ise&amp;lt;/span&amp;gt;). Vu le support qu&#039;il y a derrière, grâce à leur site et leurs listes de diffusions, je trouve que cette distribution est un bon choix pour un débutant. De plus, cette distribution est complètement libre.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;SuSE&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
très bonne distribution pour les débutants aussi (installation simple) et bon site aussi pour le support.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;rpm&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Debian&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
c&#039;est vraiment &#039;&#039;&#039;LA&#039;&#039;&#039; distribution libre (elle ne comporte que des logiciels libres) et à part : le groupe de développeurs ne met à la disposition des personnes intéressées que l&#039;image ISO de la distribution : il n&#039;y a pas de société pour la commercialiser - et aucun impératif marketing, au contraire : la distribution sort quand les développeurs responsables du projet Debian estiment que tout est bon (ce qui donne des décalages entre ce qui était annoncé et la date réelle de sortie !). Bref, c&#039;est une distribution très stable, mais plutôt pour les initiés.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;deb&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Slackware&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
je la trouve excellente ; l&#039;installation n&#039;est pas toute simple, mais je trouve sa maintenance plus aisée que sur les Red-Hat. Bref, c&#039;est une distribution pour les initiés. Par contre, la Slackware est souvent en retard par rapport aux autres distributions au niveau des versions des logiciels. &amp;lt;br /&amp;gt; Cette distribution permet de s&#039;installer dans très peu de place disque (moins de 100 Mo) en ne choisissant que les packages indispensables.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.tar.gz&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
• &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF8080;&amp;quot;&amp;gt;Gentoo&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
C&#039;est une distribution &#039;source&#039; : on démarre avec un CD bootable en mode texte, on lit la documentation fournie et on compile tous les outils qu&#039;on va utiliser. C&#039;est une distribution qu&#039;on choisit lorsqu&#039;on a un peu de pratique.&amp;lt;br /&amp;gt; Sa grande qualité : un excellent gestionnaire de package inspiré des &amp;quot;ports&amp;quot; de BSD.&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;.ebuild&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
• Il existe encore bien d&#039;autres distributions...&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La facilité de trouver des paquets &amp;lt;tt&amp;gt;rpm&amp;lt;/tt&amp;gt; milite également en faveur de Red Hat et de Mandrake, mais on trouve également tout en &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt;, ce qui permet d&#039;installer tout logiciel sur toute distribution ; il suffit de le compiler si le package ne contient pas une version binaire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Se procurer une distribution&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous avez une bonne connexion au Net (ADSL, câble ou LS à votre travail) vous pouvez télécharger une distribution complète. Mandrake, RedHat et Debian sont disponibles en image ISO (un seul fichier d&#039;environ 700 Mo qu&#039;il suffit ensuite de graver sur un CD). &amp;lt;br /&amp;gt; Si vous souhaitez/devez acheter une distribution, vous la trouverez dans les librairies, FNAC, etc. Optez pour l&#039;une d&#039;elle avec si possible un gros livre fourni avec. Evitez aussi les distributions en boîte à plus de 60 euros, on est souvent déçu par le soit-disant contenu. Mandrake vend un DVD comportant tous les logiciels de la distribution, il est très pratique. De plus, de nombreux magazines informatiques proposent régulièrement sans supplément de prix (vers les 6 ou 7 euros donc) une distribution toute récente. Vous pouvez également trouver tout un tas de CD à bas prix en suivant ce [http://www.linux-mandrake.com/en/europe.php3 lien] chez Mandrake, ou chez [http://www.ikarios.com Ikarios].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Débuter&#039;&#039;&#039; : &amp;lt;br /&amp;gt; Si vous commencez avec Linux, je vous conseille de choisir Mandrake ou SuSE, ou mieux : commencez par tester Linux avec le Live-CD de [http://www.knoppixfr.org/ Knoppix] : c&#039;est une distribution qui est conçue pour fonctionner depuis le CD, sans s&#039;installer sur le disque dur. Pour tester Linux en grandeur nature sur votre matériel, c&#039;est l&#039;idéal.&lt;br /&gt;
&lt;br /&gt;
== 3. Préparer ses disques durs. ==&lt;br /&gt;
&lt;br /&gt;
Je ne vais pas vous décrire toute la procédure d&#039;installation, mais vous donner des conseils utiles, avec un peu d&#039;explications. Le installation-HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) ou le [http://www.tldp.org/LDP/gs/index.html Guide d&#039;installation et de démarrage] (en anglais) sont là pour ça, les docs des distribs et des centaines d&#039;autres sites aussi.&lt;br /&gt;
&lt;br /&gt;
=== Un peu de théorie ===&lt;br /&gt;
&lt;br /&gt;
==== Les systèmes de fichiers ====&lt;br /&gt;
&lt;br /&gt;
Le système de fichiers (ou File System ou FS), c&#039;est la façon dont le système d&#039;exploitation structure les données sur le disque dur.&lt;br /&gt;
&lt;br /&gt;
Comme tout système d&#039;exploitation, Linux dispose de ses propres systèmes de fichiers :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EXT2FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext2&#039;&#039;&#039;) : c&#039;est le système de fichiers historique de Linux, il n&#039;est pas forcément le meilleur choix car, n&#039;étant pas journalisé, si vous éteignez mal votre ordinateur, linux prendra beaucoup de temps pour tester les disques durs (de la même manière que le scandisk de Microsoft).&lt;br /&gt;
* &#039;&#039;&#039;EXT3FS&#039;&#039;&#039; (ou &#039;&#039;&#039;ext3&#039;&#039;&#039;) : c&#039;est l&#039;évolution logique du ext2. Il présente l&#039;avantage d&#039;être compatible avec l&#039;ext2 tout en étant journalisé. Il n&#039;implémente toute fois pas les toutes dernières innovations en matière de journalisation. Utilisez ce système de fichiers si vous comptez pouvoir relire des informations depuis votre windows.&lt;br /&gt;
* &#039;&#039;&#039;REISERFS&#039;&#039;&#039; : c&#039;est un système de fichiers journalisé. C&#039;est un bon choix. Il est réimplémenté à partir de zéro et bénéficie de beaucoup d&#039;innovations.&lt;br /&gt;
&lt;br /&gt;
Il en existe d&#039;autres, mais préférez-leur l&#039;un de ceux-là, sauf si vous avez une bonne raison.&lt;br /&gt;
&lt;br /&gt;
Windows utilise quant à lui un système VFAT (partitions limitées à 2 Go) ou FAT32, voire FAT (l&#039;ancien système de fichier du DOS). Vous ne pouvez pas installer Linux sur une partition de ce type, car elles ne gèrent pas les [../admin/permissions.php3 permissions]. Les dernières versions de Windows (NT, 2000 et XP) utilisent aussi le système de fichiers NTFS, mais Microsoft n&#039;a pas fourni les spécifications techniques de ce format et Linux (ainsi que la plupart des autres systèmes d&#039;exploitation) est incapable de le gérer correctement (prévoyez une partition en VFAT-FAT32 pour partager des informations facilement entre Linux et Windows) : Linux sait lire les informations sur une partitions NTFS mais pas en écrire (cette fonctionnalité est en cours de développement).&lt;br /&gt;
&lt;br /&gt;
==== Les disques durs et les partitions sous Linux ====&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord, voyons comment Linux identifie et organise les disques durs.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;IDE&#039;&#039;&#039;, la numérotation se fait avec un préfixe &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;hd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;, suivi par une lettre, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier IDE maître, &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot; pour le premier esclave, etc. &amp;lt;br /&amp;gt; En résumé on a :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;hda  &amp;lt;/tt&amp;gt; Disque maître sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdb  &amp;lt;/tt&amp;gt; Disque esclave sur le 1er contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdc  &amp;lt;/tt&amp;gt; Disque maître sur le 2eme contrôleur IDE&lt;br /&gt;
* &amp;lt;tt&amp;gt;hdd  &amp;lt;/tt&amp;gt; Disque esclave sur le 2eme contrôleur IDE&lt;br /&gt;
&lt;br /&gt;
Si vous avez d&#039;autres contrôleurs IDE (hé oui, cela arrive !) la numérotation se poursuit (&amp;lt;tt&amp;gt;hde&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;hdf&amp;lt;/tt&amp;gt;, etc.). &amp;lt;br /&amp;gt; Attention : les lecteurs de CD-ROM IDE apparaissent comme un disque dur. Si votre CD est maître sur la deuxième nappe par exemple, il sera nommé &amp;lt;tt&amp;gt;hdc&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les disques &#039;&#039;&#039;SCSI&#039;&#039;&#039;, cette fois c&#039;est l&#039;ID SCSI qui va donner la lettre, le préfixe étant &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;sd&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;. &amp;lt;br /&amp;gt; Prenons par exemple 3 disques scsi d&#039;id 0,1 et 3 on va avoir :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;sda  &amp;lt;/tt&amp;gt; Disque d&#039;ID 0&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdb  &amp;lt;/tt&amp;gt; Disque d&#039;ID 1&lt;br /&gt;
* &amp;lt;tt&amp;gt;sdd  &amp;lt;/tt&amp;gt; Disque d&#039;ID 3&lt;br /&gt;
&lt;br /&gt;
Attention : les lecteurs de CD-ROM SCSI, les ZIP, JAZ, etc. SCSI ainsi que les périphériques de stockage USB (appareils photo, clefs USB...) apparaissent comme un disque dur SCSI ; ils se nomment aussi &amp;lt;tt&amp;gt;sdx&amp;lt;/tt&amp;gt; suivant leur ID. Astuce : pour connaître la liste de vos périphériques de ce type, tapez : &amp;lt;code&amp;gt;cdrecord -scanbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;partitions&#039;&#039;&#039; sont quant à elles représentées par le nom du disque dur, suivi d&#039;un chiffre représentant la partition. &amp;lt;br /&amp;gt; Par exemple, la première partition du premier disque IDE se nomme &#039;&#039;&#039;&amp;lt;tt&amp;gt;hda1&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, de même, la troisième partition du disque SCSI d&#039;ID 1 se nommera &#039;&#039;&#039;&amp;lt;tt&amp;gt;sdb3&amp;lt;/tt&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Organisation des fichiers sous Linux ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;L&#039;arborescence&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, ou tout autre Unix d&#039;ailleurs, il n&#039;y a pas de lettre représentant le disque dur comme le &amp;lt;tt&amp;gt;C:&amp;lt;/tt&amp;gt; de Windows/DOS. &amp;lt;br /&amp;gt; De plus, le signe &#039;&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;&#039; est remplacé par &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039; pour séparer les répertoires. &amp;lt;br /&amp;gt; Il y a une seule arborescence, qui débute à la &amp;quot;racine&amp;quot;, notée &#039;&amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;&#039;, et tous les disques durs/partitions apparaissent dans cette arborescence avec leur contenu de façon transparente comme un répertoire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les périphériques&#039;&#039;&#039;&amp;lt;br /&amp;gt; De plus, tout périphérique est identifié à un fichier qui se trouve dans le répertoire &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; (comme &#039;&#039;&#039;dev&#039;&#039;&#039;ice, périphérique en anglais). Par exemple, le disque maître du deuxième port IDE est identifié par &amp;lt;tt&amp;gt;/dev/hdc&amp;lt;/tt&amp;gt;, sa deuxième partition par &amp;lt;tt&amp;gt;/dev/hdc2&amp;lt;/tt&amp;gt;. &amp;lt;br /&amp;gt; Le lecteur de disquette est représenté par &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les partitions / les points de montage&#039;&#039;&#039;&amp;lt;br /&amp;gt; Les partitions que l&#039;on va créer sur les disques durs seront attachées à des répertoires de l&#039;arborescence, ou &amp;quot;&#039;&#039;&#039;points de montage&#039;&#039;&#039;&amp;quot;. C&#039;est ce qu&#039;on appelle &amp;quot;&#039;&#039;monter une partition&#039;&#039;&amp;quot;. Le point de montage est un simple répertoire, vide avant le montage, et qui après le montage, représente le contenu de la partition montée. &amp;lt;br /&amp;gt; Par exemple, supposons que nous ayons créé une partition &amp;lt;tt&amp;gt;/dev/hda2&amp;lt;/tt&amp;gt; (premier disque IDE, 2ème partition) pour contenir le système. On &#039;&#039;montera&#039;&#039; cette partition (automatiquement, heureusement !) dans le répertoire racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;. Si la partition &amp;lt;tt&amp;gt;/dev/hda3&amp;lt;/tt&amp;gt; est destinée à contenir les données utilisateur, on la montera dans le &#039;&#039;point de montage&#039;&#039; (=répertoire) &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;. On verra le contenu de cette partition dans le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; comme si c&#039;était n&#039;importe quel autre répertoire, alors que physiquement les données sont sur une autre partition. &amp;lt;br /&amp;gt; De même, pour accéder à la disquette, on montera le périphérique &amp;lt;tt&amp;gt;/dev/fd0&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/floppy&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/floppy&amp;lt;/tt&amp;gt; (selon la distribution) et pour accéder au CD-ROM, on montera le périphérique &amp;lt;tt&amp;gt;/dev/cdrom&amp;lt;/tt&amp;gt; dans le point de montage &amp;lt;tt&amp;gt;/mnt/cdrom&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;/cdrom&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les répertoires standards&#039;&#039;&#039;&amp;lt;br /&amp;gt; Linux possède des répertoires &amp;quot;spéciaux&amp;quot; à la racine (un peu comme le &amp;lt;tt&amp;gt;C:\windows&amp;lt;/tt&amp;gt;), qui sont classiques dans les systèmes Unix et peuvent ou non représenter un point de montage pour une partition.&lt;br /&gt;
&lt;br /&gt;
On a déjà vu par exemple le répertoire spécial &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; où tous les périphériques sont répertoriés en tant que fichiers, ou encore le répertoire &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; qui contient les données personnelles des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Chacun des répertoires ci-dessous peut être soit un simple répertoire dans la partition racine, soit le &#039;&#039;point de montage&#039;&#039; d&#039;une autre partition, mais dans tous les cas le résultat est le même : des fichiers dans des répertoires.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Les répertoires standards de Linux sont :&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
La racine du système = la base.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/boot&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers utilisés pour booter le noyau&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/usr&lt;br /&gt;
|&lt;br /&gt;
Programmes, données, accessibles par les utilisateurs et non nécessaires lors du boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/home&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les répertoires de base des utilisateurs et de certains services comme le FTP, le serveur Web, Samba, etc.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/dev &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Tous les périphériques&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/bin&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Programmes nécessaires au boot, et disponibles ensuite à tous les utilisateurs&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/sbin&lt;br /&gt;
|&lt;br /&gt;
Programmes nécessaires au boot, disponibles au root uniquement&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/var&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de log, spool d&#039;impression, de mail, etc. En général, fichiers qui changent tout le temps&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/etc &lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers de configuration du système&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/root&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire home de l&#039;administrateur&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/lib&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Bibliothèques et modules (comme les DLL de Windows) nécessaires au boot&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/tmp&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers temporaires&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/mnt&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Répertoire proposé pour monter des périphériques (ou /mnt/cdrom, /mnt/floppy, /mnt/zip, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;20%&amp;quot; |&lt;br /&gt;
/proc&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; |&lt;br /&gt;
Fichiers d&#039;information sur la configuration système (les fichiers sont générés dynamiquement, pas de modifications possibles). Les fichiers dans ce répertoire n&#039;existent pas sur le disque, c&#039;est Linux qui les crée en temps réel lorsque vous en avez besoin.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
/opt&lt;br /&gt;
|&lt;br /&gt;
Dans ce répertoire (optionnel), on peut ajouter des logiciels afin qu&#039;ils ne s&#039;installent pas dans les répertoires système.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et j&#039;en passe...&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passons à la pratique ! ===&lt;br /&gt;
&lt;br /&gt;
On peut installer Linux sur une partition DOS/Windows avec par exemple Linux4win de Mandrake. Cette méthode est pratique car elle nécessite un minimum de travail sur le système d&#039;exploitation d&#039;origine (en général Windows) : Linux s&#039;installe dans un gros fichier sur le disque Windows. &amp;lt;br /&amp;gt; Cependant, je vous déconseille cette méthode, à moins que vous y soyez obligé. Un tel système est très ralenti (au moins d&#039;un facteur 2) et vous allez être très déçu des performances de Linux ; de plus il arrive parfois des problèmes d&#039;incompatibilités avec cette méthode. Au prix où sont les disques durs aujourd&#039;hui et vu leur taille grandissante, vous trouverez bien de la place pour créer des partitions Linux.&lt;br /&gt;
&lt;br /&gt;
==== Préparation ====&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l&#039;installation, vous allez donc devoir libérer de la place pour les nouvelles partitions Linux. Si vous comptez installer Linux sur un disque vierge, pas de problème. Par contre, si vous voulez faire cohabiter Windows et Linux sur le même disque, et que Windows est déjà installé sur la totalité du disque, il va falloir arranger ça :) (à moins que vous ne vouliez réinstaller Windows de zéro).&lt;br /&gt;
&lt;br /&gt;
On va devoir passer de ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;----------------- Windows --------------&amp;gt;&amp;lt;br /&amp;gt; |==========================================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- Windows -&amp;gt; &amp;lt;- place libre pour Linux -&amp;gt;&amp;lt;br /&amp;gt; |=============|============================| &amp;lt;- disque dur &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alors soit vous virez tout et vous réinstallerez Windows, c&#039;est le plus simple évidemment, &amp;lt;br /&amp;gt; soit vous redimensionnez votre partition Windows. Pour ce faire, utilisez un logiciel approprié, comme FIPS (souvent sur les CD des distributions), ou [http://www.users.intercom.com/~ranish/part/ Partition Manager] (un freeware sous DOS) encore Partition Magic (produit commercial). Pour ça, je vous renvoie à la documentation du logiciel utilisé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 1&amp;lt;/u&amp;gt; : Partition Manager a l&#039;air intéressant, il fonctionne sous DOS, est &#039;&#039;freeware&#039;&#039;, et existe en version française. Il permet de gérer les partitions, de sauver le MBR (Master Boot Record, c&#039;est là que vient s&#039;enregistrer [install.php3#lilo LILO]) dans un fichier, de le restaurer, de modifier la taille d&#039;une partition, de la formater, etc. (Voir la [http://www.users.intercom.com/~ranish/part/ page de Partition Manager].)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Remarque 2&amp;lt;/u&amp;gt; : la distribution Mandrake est livrée avec un utilitaire de repartitionnement très performant, sachant même redimensionner les partitions au format NTFS.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, pensez à sauvegarder vos données perso !&lt;br /&gt;
&lt;br /&gt;
==== Installation proprement dite : le partitionnement des disques ====&lt;br /&gt;
&lt;br /&gt;
La plupart des installations commencent de la même façon : on crée une disquette de boot sous DOS/Windows avec l&#039;utilitaire &amp;quot;RAWRITE&amp;quot; (livré sur les CD des distributions), des fois même deux disquettes (pour la Slackware) ; en général le CD de la distribution est bootable (Mandrake par exemple) et il n&#039;y a alors pas besoin de disquette. Puis on boote sur la disquette ou le CD. &amp;lt;br /&amp;gt; Ensuite on suit les indications du programme d&#039;installation, puis on arrive sur le partitionnement des disques (attention à la Slackware où on n&#039;atterrit pas sur ce point directement : après s&#039;être logué en &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; il faut taper &amp;quot;&amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;&amp;quot; AVANT de taper &amp;quot;&amp;lt;tt&amp;gt;setup&amp;lt;/tt&amp;gt;&amp;quot;). Détaillons un peu cette procédure de partitionnement.&lt;br /&gt;
&lt;br /&gt;
Pour partitionner votre disque vous allez appeler la commande &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; suivie du nom du disque sur lequel vous voulez installer Linux, par exemple &amp;quot;&amp;lt;tt&amp;gt;fdisk /dev/hda&amp;lt;/tt&amp;gt;&amp;quot;. Des logiciels plus conviviaux existent comme DiskDruid (disponible lors de l&#039;installation d&#039;une Red Hat par exemple) ou [http://www.linux-mandrake.com/diskdrake/ DiskDrake] de MandrakeSoft fonctionnant en mode graphique (mais il me semble qu&#039;il nécessite que Linux soit déjà installé !).&lt;br /&gt;
&lt;br /&gt;
Je vous renvoie à l&#039;installation HOWTO ([http://www.tldp.org/HOWTO/Installation-HOWTO/index.html anglais]/[http://www.freenix.org/unix/linux/HOWTO/Installation-HOWTO.html  français]) pour toutes les commandes de &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; ; les principales sont :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;n  &amp;lt;/tt&amp;gt; Crée une partition, de type linux native (&amp;lt;tt&amp;gt;ext2fs&amp;lt;/tt&amp;gt;) par défaut.&lt;br /&gt;
* &amp;lt;tt&amp;gt;t  &amp;lt;/tt&amp;gt; Change le type d&#039;une partition (83 linux native, 82 linux swap).&lt;br /&gt;
&lt;br /&gt;
Dans &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt;, tapez &amp;quot;&amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt;&amp;quot;, afin d&#039;accéder à la liste de toutes les commandes possibles. C&#039;est assez bien indiqué dans l&#039;installation-HOWTO.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Attention&#039;&#039;&#039; : le nombre de partitions dites &amp;quot;&#039;&#039;primaires&#039;&#039;&amp;quot; est limité à 4. Ainsi, si vous souhaitez définir plus de 4 partitions sur un même disque, l&#039;une de ces 4 partitions primaires doit être définie comme &amp;quot;&#039;&#039;étendue&#039;&#039;&amp;quot;, elle contiendra alors toutes les autres partitions. Les partitions primaires sont numérotées de 1 à 4, les partitions créés à l&#039;intérieur de la partition étendue sont numérotées à partir de 5.&lt;br /&gt;
&lt;br /&gt;
==== De &#039;&#039;&#039;combien de partitions&#039;&#039;&#039; allez vous avoir besoin ? ====&lt;br /&gt;
&lt;br /&gt;
* Tout d&#039;abord, une partition pour le &#039;&#039;&#039;swap&#039;&#039;&#039;. Le swap c&#039;est la mémoire virtuelle de Linux. La taille ? Ca va dépendre de votre mémoire physique. Une partition de swap de 128Mo avec 64 ou 128 Mo de RAM physique suffit amplement pour une utilisation standard. Je vous conseille donc un swap de 128 Mo : créez sous Linux avec &amp;lt;tt&amp;gt;fdisk&amp;lt;/tt&amp;gt; une partition de type 82 de 128 Mo.&lt;br /&gt;
* Pour le reste, vous avez le choix : &amp;lt;br /&amp;gt; La chose la plus simple est une seule partition (en plus du swap), qui contiendra toutes les données (système &amp;amp; utilisateur) ; prenez le plus de place possible (1 Go mini). &amp;lt;br /&amp;gt; En fait, il est intéressant de créer au moins deux partitions : une qui contiendra le système et une autre pour vos données personnelles. Comme ça, vous pouvez réinstaller Linux et même formater la partition système sans perdre vos données perso. Pour la même raison, on peut pousser le raffinement jusqu&#039;à avoir une troisième partition afin de contenir les logiciels que vous installerez par la suite (OpenOffice par exemple). (voir plus haut le tableau des [#repertoires_std répertoires standards])&lt;br /&gt;
À ces partitions, on attribuera des &#039;&#039;points de montage&#039;&#039;. &amp;lt;br /&amp;gt;  - C&#039;est quoi un point de montage ? &amp;lt;br /&amp;gt;  - Ah mais vous n&#039;avez pas lu le paragraphe [#orga_fichiers précédent] ? :-)&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez un serveur : =====&lt;br /&gt;
&lt;br /&gt;
L&#039;une des méthodes les plus utilisées, c&#039;est de mettre le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; sur un petit disque ou une partition, puis &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt; sur un autre disque en point de montage. Si notre système va être un serveur avec beaucoup d&#039;utilisateurs, qui vont avoir beaucoup de données personnelles à stocker, on peut créer aussi un &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; en point de montage sur un autre disque. On va aussi généralement réserver un disque ou une partition pour le répertoire temporaire que l&#039;on montera dans &amp;lt;tt&amp;gt;/tmp&amp;lt;/tt&amp;gt;, et encore une autre pour le &amp;lt;tt&amp;gt;/var&amp;lt;/tt&amp;gt;. En fait, on ne va laisser dans le disque contenant la racine que les informations qui bougent peu et dont le volume augmente peu. &amp;lt;br /&amp;gt; Ainsi on ne charge pas le disque de point de montage &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; des répertoires &amp;lt;tt&amp;gt;/usr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt;, etc., ce qui permet de facilement maintenir le système (si &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; est plein, on prend un disque + gros que l&#039;on monte en &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et on recopie tout dessus, ça permet de ne pas casser le reste...), etc. Ca a plein d&#039;avantages, je vous conseille de faire comme ça si vous avez plusieurs disques. De plus si un disque crashe, si ce n&#039;est pas le disque contenant la racine &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt;, ça permet de rebooter quand même la machine, de travailler un minimum pour réinstaller un disque sans à avoir à réinstaller un système de base. &amp;lt;br /&amp;gt; Remarque : si vous installez un serveur qui sera très sollicité, soyez généreux pour la taille du swap (2 fois la taille de la RAM est un bon début).&lt;br /&gt;
&lt;br /&gt;
===== Si vous installez sur une machine perso : =====&lt;br /&gt;
&lt;br /&gt;
Sur une machine mono-utilisateur, voire mono-disque, on peut faire une partition pour le &amp;lt;tt&amp;gt;/&amp;lt;/tt&amp;gt; (mini 1Go recommandé 2Go), une pour &amp;lt;tt&amp;gt;/home&amp;lt;/tt&amp;gt; et une pour le swap (128 Mo par exemple). Vous pouvez aussi éventuellement faire une partition pour &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt; qui contiendra les logiciels que vous avez installés vous-même et qui ne proviennent pas de la distribution. Ca permet de mettre à jour voire de réinstaller la distribution sans trop devoir travailler derrière pour que ça fonctionne comme avant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;exemple de partionnement :&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;  &amp;lt;- /dev/hda1 -&amp;gt; &amp;lt;--- /dev/hda2 (étendue) --&amp;gt;&amp;lt;br /&amp;gt;    (primaire)    /dev/hda5    hda6     hda7&amp;lt;br /&amp;gt;  &amp;lt;-- Windows --&amp;gt; &amp;lt;-- / --&amp;gt; &amp;lt;- /home -&amp;gt; &amp;lt;swap&amp;gt; &amp;lt;-pt de montage&amp;lt;br /&amp;gt; |===============|=========|===========|======| &amp;lt;-disque dur&amp;lt;br /&amp;gt;      2,5 Go        2,5 Go      5 Go    128 Mo &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsque vous disposez de beaucoup de place sur vos disques (j&#039;ai par exemple 2 disques de 80 Go), pour une utilisation personnelle, 3 ou 4 Go suffisent pour la racine (ou alors 1 Go pour la racine et 2 Go pour /usr), gardez votre swap entre 128 et 512 Mo, et enfin, le reste pour /home (j&#039;ai monté un de mes disques contenant une seule partition dans /mnt/data et j&#039;y stocke mes fichiers multimédia).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot &amp;amp; S. Tchesmeli le 29/11/1999.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 29/11/1999, J.C. Cardot &amp;amp;amp; S. Tchesmeli&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Utilisateur:Misc&amp;diff=4207</id>
		<title>Utilisateur:Misc</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Utilisateur:Misc&amp;diff=4207"/>
		<updated>2005-10-03T09:20:39Z</updated>

		<summary type="html">&lt;p&gt;Misc : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Aide:Comment_%C3%A9diter_une_page&amp;diff=4206</id>
		<title>Aide:Comment éditer une page</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Aide:Comment_%C3%A9diter_une_page&amp;diff=4206"/>
		<updated>2005-10-03T09:13:33Z</updated>

		<summary type="html">&lt;p&gt;Misc : ajout de la page francaise&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
D&#039;abord, la référence en matière de consignes d&#039;édition : la [http://meta.wikimedia.org/wiki/MediaWiki_User&#039;s_Guide:_Editing_overview page de wikimedia], et sa [http://meta.wikimedia.org/wiki/Aide:Édition traduction francaise].&lt;br /&gt;
&lt;br /&gt;
= Les spécificités de Léa =&lt;br /&gt;
* dans la mesure du possible, tout code (script, ligne de commande, etc...) devrait être entouré des tags &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt; .... &amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt; pour les codes sur une ligne, et &amp;lt;nowiki&amp;gt;&amp;lt;code multi&amp;gt; .... &amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt; pour les codes de plusieurs ligne. Exemple : &amp;lt;code&amp;gt;un code sur&lt;br /&gt;
&lt;br /&gt;
une &lt;br /&gt;
&lt;br /&gt;
ligne (tapé sur &lt;br /&gt;
&lt;br /&gt;
plusieurs)&amp;lt;/code&amp;gt; et un &amp;lt;code multi&amp;gt;code&lt;br /&gt;
  sur&lt;br /&gt;
    plusieurs&lt;br /&gt;
       lignes (bien entendu tapé sur plusieurs)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* DONNEZ UNE LICENCE À VOS DOCUMENTS (voir : [[Lea_Linux:Copyright]])&lt;br /&gt;
* mettez votre nom et éventuellement couriel en début de document en tapant un truc du genre : &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;par &amp;lt;div class=&#039;leapar&#039;&amp;gt;votre nom, email&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
à compléter .....&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4205</id>
		<title>RPM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4205"/>
		<updated>2005-10-03T09:06:45Z</updated>

		<summary type="html">&lt;p&gt;Misc : multiligne pour la sortie de rpm -qa&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe &#039;Jice&#039; Cardot &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installer des programmes sous Linux est très simple quand on utilise les bons outils...&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Le format RPM (RedHat Package Manager), a été, comme son nom l&#039;indique, créé à l&#039;origine pour la distribution RedHat. Depuis, de nombreuses distributions l&#039;ont utilisé, on peut citer par exemple Mandrake ou SuSe. D&#039;autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Qu&#039;est-ce qu&#039;un package ?&#039;&#039;&#039; C&#039;est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l&#039;installation ou de la désinstallation de l&#039;application. Ce fichier contient également toutes les dépendances à d&#039;autres applications, bibliothèques, etc.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l&#039;ensemble des fichiers d&#039;un programme (le fichier rpm lui-même)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d&#039;installer et de gérer les packages RPM. L&#039;installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.&lt;br /&gt;
&lt;br /&gt;
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d&#039;administrateur (root).&lt;br /&gt;
&lt;br /&gt;
Nous allons voir ici deux méthodes pour gérer les paquets RPM :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [#cdes le programme &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;],&lt;br /&gt;
* [#urpm les programmes &amp;lt;code&amp;gt;urpm*&amp;lt;/code&amp;gt; de Mandrake].&lt;br /&gt;
&lt;br /&gt;
Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :&lt;br /&gt;
&lt;br /&gt;
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l&#039;indétermination.&lt;br /&gt;
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; s&#039;adresse à la base de données des paquetages installés, qui consigne les noms courts en plus des noms de fichiers complets. L&#039;indication du numéro de version n&#039;est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).&lt;br /&gt;
&lt;br /&gt;
== Les commandes rpm usuelles ==&lt;br /&gt;
&lt;br /&gt;
=== Pour installer un nouveau paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ivh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, si vous installez un paquetage par cette méthode et qu&#039;il existe déjà sur votre système dans une version inférieure, vous risquez d&#039;avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.&amp;lt;br /&amp;gt; Les options &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; ne sont pas obligatoires, &amp;lt;code&amp;gt; -i&amp;lt;/code&amp;gt; est suffisant pour faire une installation. L&#039;option &amp;lt;code&amp;gt; h&amp;lt;/code&amp;gt; provoque l&#039;affichage d&#039;une barre de progression (ça fait très pro sur l&#039;écran !) et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; rend l&#039;installation bavarde, ce qui fournit des messages plus explicites en cas d&#039;erreur. L&#039;option &amp;lt;code&amp;gt; -vh&amp;lt;/code&amp;gt; peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.&lt;br /&gt;
&lt;br /&gt;
=== Pour mettre à jour un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;U&amp;quot; comme &amp;quot;Upgrade&amp;quot; (mise à jour en anglais).&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne s&#039;applique pas pour upgrader un noyau, voir la [../kernel/kernel.php3#precompile rubrique noyau] à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Enfin, pour remplacer un paquetage par un paquetage plus ancien (&amp;quot;downgrader&amp;quot;), la commande à utiliser est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh --oldpackage toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour supprimer un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;rpm -e toto&amp;lt;br /&amp;gt; rpm -e toto-version&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;quot; correspond à &amp;quot;erase&amp;quot; (effacer en anglais). &amp;lt;br /&amp;gt; La syntaxe complète (avec numéro de version) permet de distinguer deux versions d&#039;un même paquetage qui auraient été installées ensemble.&lt;br /&gt;
&lt;br /&gt;
=== Pour faire des requêtes sur les paquetages : ===&lt;br /&gt;
&lt;br /&gt;
Afficher la liste de tous les paquetages déjà installés J&#039;imagine que &amp;quot;&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&amp;quot; doit signifier &amp;quot;all&amp;quot; ;-) :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour afficher la liste page par page...  &lt;br /&gt;
&lt;br /&gt;
Trouve un paquetage identifié par son nom (toto) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La recherche peut s&#039;appliquer à une partie seulement du nom, par exemple &amp;lt;code&amp;gt;rpm -qa | grep &#039;util&#039;&amp;lt;/code&amp;gt; vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !&lt;br /&gt;
&lt;br /&gt;
Pour trier par date d&#039;installation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa --last&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour trier par taille :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -qa --queryformat &#039;%{name} %{size}\n&#039; | sort -n +1 | column -t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Jolie ligne de commande n&#039;est-ce pas ? ;-)&lt;br /&gt;
&lt;br /&gt;
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ql toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On dira que &amp;quot;&amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&amp;quot; est l&#039;initiale de &amp;quot;list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qi toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On parie que &amp;quot;&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;quot; est mis pour &amp;quot;information&amp;quot; ? &amp;lt;br /&amp;gt; La même chose sur un paquetage pas encore installé : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qip toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&amp;quot; comme &amp;quot;package&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nota :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* L&#039;option &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; s&#039;applique aussi à d&#039;autres syntaxes, par exemple &amp;lt;code&amp;gt;rpm -qlp toto.rpm&amp;lt;/code&amp;gt; pour avoir la liste des fichiers d&#039;un paquetage non encore installé.&lt;br /&gt;
* Les options de requêtes peuvent se cumuler. Par exemple &amp;lt;code&amp;gt;rpm -ql&#039;&#039;&#039;ip&#039;&#039;&#039; toto.rpm&amp;lt;/code&amp;gt; donnera  à la fois les infos et la liste des fichiers du paquetage toto.rpm.&lt;br /&gt;
&lt;br /&gt;
=== Retrouver le paquetage d&#039;origine d&#039;un fichier : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qf /usr/lib/toto.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut se produire que vous vous trouviez en face d&#039;un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d&#039;une aide précieuse. Ici le &#039;&amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&#039; signifie fichier (file en anglais).&lt;br /&gt;
&lt;br /&gt;
Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?&amp;lt;br /&amp;gt; Si vous utilisez Mandrake (voir [#urpm la partie sur urpm plus bas] ), la commande suivante fera l&#039;affaire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf le_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;for i in *.rpm ; do rpm -qpli $i | grep le_fichier &amp;amp;&amp;amp; echo $i ; done&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ou bien :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -q -p -filesbypkg *.rpm | grep le_fichier&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester l&#039;installation d&#039;une paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --test toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l&#039;installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas installer le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --nodeps toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deuxièmement : forcer l&#039;installation, en cas de conflit avec certains autres &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --force toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, combinez les deux options pour vraiment obliger &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; à procéder à l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas désinstaller le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche la liste des paquetages dont le nom contient toto, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;toto-1.1&lt;br /&gt;
toto-1.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -e toto-1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désinstalle le paquetage désigné par son nom &#039;&#039;&#039;et&#039;&#039;&#039; son numéro de version. &lt;br /&gt;
&lt;br /&gt;
=== Extraire des fichiers d&#039;un RPM : ===&lt;br /&gt;
&lt;br /&gt;
Certains outils comme Midnight Commander (mc, ou gmc) permettent d&#039;ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d&#039;autres répertoires.&amp;lt;br /&amp;gt; Vous pouvez aussi convertir le rpm en archive cpio (l&#039;ancêtre de tar), par la commande &amp;lt;code&amp;gt;rpm2cpio&amp;lt;/code&amp;gt;, et ensuite utiliser la commande &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt; pour extraire le ou les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Installer un RPM dans un autre système Linux que celui qui tourne : ===&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --root=/mnt/racine /chemin/package.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser l&#039;option &amp;lt;code&amp;gt;--root=/mnt/racine&amp;lt;/code&amp;gt; dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l&#039;autre système Linux.&lt;br /&gt;
&lt;br /&gt;
=== ET TOUJOURS : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;man rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;accès à la page du manuel, le réflexe qu&#039;on devrait toujours avoir...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques précisions concernant rpm ==&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre SRPM et RPM ? ===&lt;br /&gt;
&lt;br /&gt;
Les paquetages SRPM (Source RPM) contiennent les sources d&#039;un logiciel prêtes à être recompilées et transformées en paquetage rpm.&amp;lt;br /&amp;gt; Afin de reconstruire un paquetage rpm à partir d&#039;un srpm (fichier .src.rpm), il faut utiliser la commande :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --rebuild paquetage.src.rpm&amp;lt;br /&amp;gt; &amp;lt;/code&amp;gt;Le paquetage rpm résultant se trouvera dans &amp;lt;code&amp;gt;/usr/src/RPM/RPMS/&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; où &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; est i386, i586, ppc, etc. suivant votre architecture.&lt;br /&gt;
&lt;br /&gt;
Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --recompile paquetage.src.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s&#039;installer, tout en conservant l&#039;intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure &amp;amp;&amp;amp; make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.&lt;br /&gt;
&lt;br /&gt;
Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l&#039;article sur la [../kernel/compil.php3 compilation] .&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les fichiers *.rpmsave et *.rpmnew ? ===&lt;br /&gt;
&lt;br /&gt;
Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.&amp;lt;br /&amp;gt; Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre &amp;quot;installer&amp;quot; et &amp;quot;mettre à jour&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour (&#039;&#039;upgrade&#039;&#039; en anglais) remplace l&#039;ancien paquetage par le nouveau, tandis que l&#039;installation conserve si possible l&#039;ancienne version du programme et installe la nouvelle en parallèle.&lt;br /&gt;
&lt;br /&gt;
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s&#039;il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l&#039;ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d&#039;avoir plusieurs versions d&#039;un bibliothèque installée sur un système.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les paquetages -devel ? ===&lt;br /&gt;
&lt;br /&gt;
Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.&lt;br /&gt;
&lt;br /&gt;
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c&#039;est à dire la version que vous allez utiliser tous les jours.&lt;br /&gt;
&lt;br /&gt;
toto-devel.rpm contient des fichiers (les &amp;quot;entêtes&amp;quot;, etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.&lt;br /&gt;
&lt;br /&gt;
Vous avez besoin d&#039;installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d&#039;après l&#039;archive tar.gz ou le paquetage src.rpm.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commandes urpm* de Mandrake ==&lt;br /&gt;
&lt;br /&gt;
Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :&lt;br /&gt;
&lt;br /&gt;
* résolution automatique et installation/désistallation automatique des paquetages dépendants (rpm indique seulement le nom de paquetages manquants)&lt;br /&gt;
* urpm connaît l&#039;ensemble des paquetages installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org  Penguin Liberation Front] ...)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages en donnant seulement un nom incomplet (exemple : &amp;lt;code&amp;gt;urpmi koffice&amp;lt;/code&amp;gt; pour chercher et installer Koffice, &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (&amp;lt;code&amp;gt;man urpmi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt;, etc.) afin d&#039;en apprendre plus.&lt;br /&gt;
&lt;br /&gt;
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.&lt;br /&gt;
&lt;br /&gt;
=== Configurer urpm ===&lt;br /&gt;
&lt;br /&gt;
==== Ajouter / mettre à jour une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.&amp;lt;br /&amp;gt; Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire &amp;quot;incoming/rpms&amp;quot; dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l&#039;ajouter à votre base de données urpm par la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.&lt;br /&gt;
&lt;br /&gt;
Par la suite, vous pourrez mettre à jour cette source par :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update mes_rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, pour ajouter une source ftp de paquetages, on donne l&#039;URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org  Penguin Liberation Front] et une Mandrake 9.0 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et de la même façon, pour mettre à jour la source de temps en temps :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update plf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;option -a permet de mettre à jour toutes les sources en même temps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ajouter des sources distantes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ajout de Jean-Thomas MUYL&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous possédez une connexion à haut débit (ce n&#039;est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;contrib&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; situées sur internet.&lt;br /&gt;
&lt;br /&gt;
L&#039;outil en ligne à [http://easyurpmi.zarb.org cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un &amp;lt;code&amp;gt;urpmi.removemedia -a&amp;lt;/code&amp;gt; pour ne plus utiliser les cdroms comme sources, et ne plus vous fatiguer à les chercher dans la pile de cd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : le fichier de configuration de urpm est &amp;lt;code&amp;gt;/etc/urpmi/urpmi.cfg&amp;lt;/code&amp;gt; et les bases de données dans &amp;lt;code&amp;gt;/var/lib/urpmi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Supprimer une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Pour supprimer la source mes_rpm, taper :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.removemedia mes_rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installer avec urpmi ===&lt;br /&gt;
&lt;br /&gt;
==== Installer depuis les sources urpm&amp;lt;br /&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande &#039;&#039;&#039;urpmi&#039;&#039;&#039; suivie d&#039;une partie du nom du logiciel. Exemple :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors chercher la version la plus récente du package correspondant, regarder s&#039;il doit installer des packages dépendants (et vous en demander confirmation), et installer l&#039;ensemble des packages.&lt;br /&gt;
&lt;br /&gt;
Dans le cas ou l&#039;argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu&#039;à choisir dans la liste et relancer urpmi avec le bon nom de package.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi -p libe2p.so.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors rechercher quel paquetage fournit &amp;lt;code&amp;gt;libe2p.so.2&amp;lt;/code&amp;gt; et l&#039;installer (ici libext2fs2).&lt;br /&gt;
&lt;br /&gt;
==== Installer directement un ou plusieurs fichiers rpm ====&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mon_paquetage-version.i586.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le package sera mis à jour de la même manière que rpm -U l&#039;aurait fait.&lt;br /&gt;
&lt;br /&gt;
urpmi peut installer plusieurs paquetages d&#039;un coup : par exemple, pour installer la dernière version de KDE que j&#039;ai téléchargée, je me mets dans le répertoire où j&#039;ai mis les rpm, et je tape :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi *.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l&#039;ancien, ou bien une nouvelle librairie qui doit coexister avec l&#039;ancienne), il faut utiliser l&#039;option -i : urpmi -i&lt;br /&gt;
&lt;br /&gt;
urpmi peut également utiliser une url pour installer un paquet. Par exemple, &amp;lt;code&amp;gt;urpmi http://example.com/example.rpm&amp;lt;/code&amp;gt; va installer le paquet aprés l&#039;avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment.&lt;br /&gt;
&lt;br /&gt;
=== Désinstaller avec urpme ===&lt;br /&gt;
&lt;br /&gt;
Pour désinstaller un paquetage, il faut utiliser &#039;&#039;&#039;urpme&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpme mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
désinstallera mplayer. S&#039;il y a des paquetages qui en dépendent, urpme demandera s&#039;il doit les désinstaller également. À utiliser avec précaution ;-)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rechercher avec urpmf (et urpmq) ===&lt;br /&gt;
&lt;br /&gt;
L&#039;outil de choix pour faire de recherches dans les packages rpm et &#039;&#039;&#039; urpmf&#039;&#039;&#039;. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmf toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
renverra la liste de tous les paquetages qui contiennent le fichier toto.&lt;br /&gt;
&lt;br /&gt;
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages du groupe &amp;quot;Games&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf --group Games&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Taille du paquetage &amp;quot;pingus&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --size pingus&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;pingus:size:1102629&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Recherche du mot &amp;quot;pingus&amp;quot; dans les résumés de paquets&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --summary pingus&amp;lt;br /&amp;gt; pingus:summary:Pingus - A free Lemmings clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt; pour de plus amples informations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &#039;&#039;&#039;urpmq&#039;&#039;&#039; vous permet d&#039;autres types de requêtes :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages dont le nom contient la chaîne &amp;quot;toto&amp;quot; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Sur quelle source se trouve le paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq --archive toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Quels paquetages dépendent du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -d toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Nom complet du fichier rpm du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -r toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
Résumé d&#039;une ligne d&#039;un paquet ( summary + nom + cersion ) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; urpmq --summary toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi &amp;lt;code&amp;gt;man urpmq&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le système ===&lt;br /&gt;
&lt;br /&gt;
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.&amp;lt;br /&amp;gt; Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).&amp;lt;br /&amp;gt; Si la source de mise à jour s&#039;appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi.update maj_secu&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; puis :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi --auto-select&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu&#039;il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l&#039;option &amp;lt;code&amp;gt;--auto&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d&#039;ajouter leur nom dans le fichier &amp;lt;code&amp;gt;/etc/urpmi/skip.list&amp;lt;/code&amp;gt; .&amp;lt;br /&amp;gt; Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;kernel&amp;lt;br /&amp;gt; glibc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion sur urpm ===&lt;br /&gt;
&lt;br /&gt;
Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== apt-get sur Redhat ==&lt;br /&gt;
&lt;br /&gt;
Redhat dispose également d&#039;outils pour faciliter la gestion des packages et la mise à jour du système. J&#039;ai testé &amp;lt;code&amp;gt;rpm-get&amp;lt;/code&amp;gt; que je n&#039;ai pas trouvé satisfaisant. Par-contre le portage de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; sur redhat est véritablement une réussite. C&#039;est donc cet utilitaire dont je parlerai concernant Redhat (pour l&#039;article je travaille sur une Redhat 7.3)&lt;br /&gt;
&lt;br /&gt;
Cette version de apt-get pour RPM, même si elle est critiquée parce qu&#039;elle utilise &amp;lt;code&amp;gt;RPM&amp;lt;/code&amp;gt; (contre &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; pour Debian), est extrêmement efficace&lt;br /&gt;
&lt;br /&gt;
Les principaux apports de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des dépendances pour l&#039;installation et la désinstallation de packages&lt;br /&gt;
* Mise à jour complète de la distribution avec les dernières versions des packages existantes&lt;br /&gt;
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet&lt;br /&gt;
&lt;br /&gt;
=== Installation de apt-get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les packages à installer&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Vous devez installer au moins le package [http://apt.freshrpms.net/  apt-get] . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, [http://ftp.freshrpms.net/pub/freshrpms/valhalla/synaptic/synaptic-0.25-fr0.1rh73.i386.rpm synaptic]. &amp;lt;br /&amp;gt;[[Image:rpm-rpm_synaptic.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La configuration&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Elle est très simple. Une fois les packages installés il vous suffit de taper &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/apt.conf&amp;lt;/code&amp;gt; : fichier de configuration de apt-get&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/cache/apt/archives&amp;lt;/code&amp;gt; : contient les packages qui ont été downloadés pour être installés.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commande supplémentaire&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;apt-cdrom&amp;lt;/code&amp;gt; vous permet de rajouter directement au fichier &amp;lt;code&amp;gt;sources.list&amp;lt;/code&amp;gt; des dépôts sur CD-ROM. &amp;lt;br /&amp;gt;La syntaxe de la commande : &amp;lt;code&amp;gt;apt-cdrom --cdrom &amp;lt;point-de-montage&amp;gt; add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple : &#039;&#039;&#039;&amp;lt;code&amp;gt;apt-cdrom --cdrom /mnt/cdrom add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.&lt;br /&gt;
&lt;br /&gt;
=== Installer / Désinstaller / Mettre à jour des packages ===&lt;br /&gt;
&lt;br /&gt;
==== Installer / Mettre à jour un ou plusieurs packages ====&lt;br /&gt;
&lt;br /&gt;
* Pour installer un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install package1 [package2...]&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install mplayer&amp;lt;/code&amp;gt; installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Vous pouvez également choisir d&#039;installer des sources. Pour ce faire, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; &amp;lt;code&amp;gt;apt-get source galeon&amp;lt;/code&amp;gt; vous permet de récupérer le RPM source de galeon.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt;. Il est plus sûr au préalable d&#039;exécuter la commande &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pour mettre à jour la base de données locale et s&#039;assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get upgrade package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get upgrade mplayer&amp;lt;/code&amp;gt; mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.&lt;br /&gt;
&lt;br /&gt;
==== Désinstaller avec apt-get ====&lt;br /&gt;
&lt;br /&gt;
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d&#039;utiliser la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; suivie de l&#039;argument &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get remove package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get remove mplayer&amp;lt;/code&amp;gt; supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.&lt;br /&gt;
&lt;br /&gt;
==== Mettre à jour le système ====&lt;br /&gt;
&lt;br /&gt;
Enfin &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pou s&#039;assurer de disposer des derniers packages. Puis il suffit de lancer la commande &amp;lt;code&amp;gt;apt-get dist-upgrade&amp;lt;/code&amp;gt;. Et le tour est joué ;)&lt;br /&gt;
&lt;br /&gt;
Vous disposez également de la commande &amp;lt;code&amp;gt;apt-get check&amp;lt;/code&amp;gt;. Elle vous permet de vérifier que vous n&#039;avez pas de dépendances non résolues sur votre système.&lt;br /&gt;
&lt;br /&gt;
==== Rechercher des informations sur un package installé ====&lt;br /&gt;
&lt;br /&gt;
Enfin la commande &amp;lt;code&amp;gt;apt-cache&amp;lt;/code&amp;gt; vous permet d&#039;obtenir un certain nombre d&#039;informations sur les packages installés :&lt;br /&gt;
&lt;br /&gt;
* Pour vérifier qu&#039;un package est bien installé, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache search chaine_de_caractères&amp;lt;/code&amp;gt; (la chaîne de caractères peut contenir des expressions régulières).&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez vérifier que mplayer est bien installé :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache search mplayer&amp;lt;br /&amp;gt; mplayer - MPlayer, the Movie Player for Linux.&amp;lt;br /&amp;gt; mplayer-skins - A collection of skins for MPlayer.&amp;lt;br /&amp;gt; transcode - A Linux video stream processing utility.&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour vérifier les dépendances d&#039;un package, on utilisera l&#039;argument &amp;lt;code&amp;gt;depends&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache depends chaine_de_caractères&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez connaitre les dépendances de mplayer :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache depends mplayer&amp;lt;br /&amp;gt; mplayer&amp;lt;br /&amp;gt; Depends: libdvdread&amp;lt;br /&amp;gt; Depends: libdvdcss&amp;lt;br /&amp;gt; libdvdcss2&amp;lt;br /&amp;gt; Depends: gtk+&amp;lt;br /&amp;gt; Depends: SDL&amp;lt;br /&amp;gt; Depends: divx4linux&amp;lt;br /&amp;gt; Depends: lame&amp;lt;br /&amp;gt; Depends: libvorbis&amp;lt;br /&amp;gt; Depends: lirc&amp;lt;br /&amp;gt; Depends: libdv&amp;lt;br /&amp;gt; Depends: aalib&amp;lt;br /&amp;gt; Depends: arts &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot, Anne-Laure Nicolas le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot, Anne-Laure Nicolas&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4183</id>
		<title>RPM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4183"/>
		<updated>2005-10-02T22:30:10Z</updated>

		<summary type="html">&lt;p&gt;Misc : /* Ajouter / mettre à jour une source de paquetages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe &#039;Jice&#039; Cardot &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installer des programmes sous Linux est très simple quand on utilise les bons outils...&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Le format RPM (RedHat Package Manager), a été, comme son nom l&#039;indique, créé à l&#039;origine pour la distribution RedHat. Depuis, de nombreuses distributions l&#039;ont utilisé, on peut citer par exemple Mandrake ou SuSe. D&#039;autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Qu&#039;est-ce qu&#039;un package ?&#039;&#039;&#039; C&#039;est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l&#039;installation ou de la désinstallation de l&#039;application. Ce fichier contient également toutes les dépendances à d&#039;autres applications, bibliothèques, etc.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l&#039;ensemble des fichiers d&#039;un programme (le fichier rpm lui-même)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d&#039;installer et de gérer les packages RPM. L&#039;installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.&lt;br /&gt;
&lt;br /&gt;
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d&#039;administrateur (root).&lt;br /&gt;
&lt;br /&gt;
Nous allons voir ici deux méthodes pour gérer les paquets RPM :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [#cdes le programme &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;],&lt;br /&gt;
* [#urpm les programmes &amp;lt;code&amp;gt;urpm*&amp;lt;/code&amp;gt; de Mandrake].&lt;br /&gt;
&lt;br /&gt;
Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :&lt;br /&gt;
&lt;br /&gt;
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l&#039;indétermination.&lt;br /&gt;
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; s&#039;adresse à la base de données des paquetages installés, qui consigne les noms courts en plus des noms de fichiers complets. L&#039;indication du numéro de version n&#039;est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).&lt;br /&gt;
&lt;br /&gt;
== Les commandes rpm usuelles ==&lt;br /&gt;
&lt;br /&gt;
=== Pour installer un nouveau paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ivh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, si vous installez un paquetage par cette méthode et qu&#039;il existe déjà sur votre système dans une version inférieure, vous risquez d&#039;avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.&amp;lt;br /&amp;gt; Les options &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; ne sont pas obligatoires, &amp;lt;code&amp;gt; -i&amp;lt;/code&amp;gt; est suffisant pour faire une installation. L&#039;option &amp;lt;code&amp;gt; h&amp;lt;/code&amp;gt; provoque l&#039;affichage d&#039;une barre de progression (ça fait très pro sur l&#039;écran !) et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; rend l&#039;installation bavarde, ce qui fournit des messages plus explicites en cas d&#039;erreur. L&#039;option &amp;lt;code&amp;gt; -vh&amp;lt;/code&amp;gt; peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.&lt;br /&gt;
&lt;br /&gt;
=== Pour mettre à jour un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;U&amp;quot; comme &amp;quot;Upgrade&amp;quot; (mise à jour en anglais).&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne s&#039;applique pas pour upgrader un noyau, voir la [../kernel/kernel.php3#precompile rubrique noyau] à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Enfin, pour remplacer un paquetage par un paquetage plus ancien (&amp;quot;downgrader&amp;quot;), la commande à utiliser est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh --oldpackage toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour supprimer un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;rpm -e toto&amp;lt;br /&amp;gt; rpm -e toto-version&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;quot; correspond à &amp;quot;erase&amp;quot; (effacer en anglais). &amp;lt;br /&amp;gt; La syntaxe complète (avec numéro de version) permet de distinguer deux versions d&#039;un même paquetage qui auraient été installées ensemble.&lt;br /&gt;
&lt;br /&gt;
=== Pour faire des requêtes sur les paquetages : ===&lt;br /&gt;
&lt;br /&gt;
Afficher la liste de tous les paquetages déjà installés J&#039;imagine que &amp;quot;&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&amp;quot; doit signifier &amp;quot;all&amp;quot; ;-) :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour afficher la liste page par page...  &lt;br /&gt;
&lt;br /&gt;
Trouve un paquetage identifié par son nom (toto) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La recherche peut s&#039;appliquer à une partie seulement du nom, par exemple &amp;lt;code&amp;gt;rpm -qa | grep &#039;util&#039;&amp;lt;/code&amp;gt; vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !&lt;br /&gt;
&lt;br /&gt;
Pour trier par date d&#039;installation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa --last&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour trier par taille :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -qa --queryformat &#039;%{name} %{size}\n&#039; | sort -n +1 | column -t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Jolie ligne de commande n&#039;est-ce pas ? ;-)&lt;br /&gt;
&lt;br /&gt;
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ql toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On dira que &amp;quot;&amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&amp;quot; est l&#039;initiale de &amp;quot;list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qi toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On parie que &amp;quot;&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;quot; est mis pour &amp;quot;information&amp;quot; ? &amp;lt;br /&amp;gt; La même chose sur un paquetage pas encore installé : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qip toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&amp;quot; comme &amp;quot;package&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nota :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* L&#039;option &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; s&#039;applique aussi à d&#039;autres syntaxes, par exemple &amp;lt;code&amp;gt;rpm -qlp toto.rpm&amp;lt;/code&amp;gt; pour avoir la liste des fichiers d&#039;un paquetage non encore installé.&lt;br /&gt;
* Les options de requêtes peuvent se cumuler. Par exemple &amp;lt;code&amp;gt;rpm -ql&#039;&#039;&#039;ip&#039;&#039;&#039; toto.rpm&amp;lt;/code&amp;gt; donnera  à la fois les infos et la liste des fichiers du paquetage toto.rpm.&lt;br /&gt;
&lt;br /&gt;
=== Retrouver le paquetage d&#039;origine d&#039;un fichier : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qf /usr/lib/toto.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut se produire que vous vous trouviez en face d&#039;un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d&#039;une aide précieuse. Ici le &#039;&amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&#039; signifie fichier (file en anglais).&lt;br /&gt;
&lt;br /&gt;
Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?&amp;lt;br /&amp;gt; Si vous utilisez Mandrake (voir [#urpm la partie sur urpm plus bas] ), la commande suivante fera l&#039;affaire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf le_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;for i in *.rpm ; do rpm -qpli $i | grep le_fichier &amp;amp;&amp;amp; echo $i ; done&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ou bien :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -q -p -filesbypkg *.rpm | grep le_fichier&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester l&#039;installation d&#039;une paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --test toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l&#039;installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas installer le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --nodeps toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deuxièmement : forcer l&#039;installation, en cas de conflit avec certains autres &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --force toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, combinez les deux options pour vraiment obliger &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; à procéder à l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas désinstaller le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche la liste des paquetages dont le nom contient toto, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;toto-1.1&amp;lt;br /&amp;gt;toto-1.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -e toto-1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désinstalle le paquetage désigné par son nom &#039;&#039;&#039;et&#039;&#039;&#039; son numéro de version. &lt;br /&gt;
&lt;br /&gt;
=== Extraire des fichiers d&#039;un RPM : ===&lt;br /&gt;
&lt;br /&gt;
Certains outils comme Midnight Commander (mc, ou gmc) permettent d&#039;ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d&#039;autres répertoires.&amp;lt;br /&amp;gt; Vous pouvez aussi convertir le rpm en archive cpio (l&#039;ancêtre de tar), par la commande &amp;lt;code&amp;gt;rpm2cpio&amp;lt;/code&amp;gt;, et ensuite utiliser la commande &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt; pour extraire le ou les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Installer un RPM dans un autre système Linux que celui qui tourne : ===&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --root=/mnt/racine /chemin/package.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser l&#039;option &amp;lt;code&amp;gt;--root=/mnt/racine&amp;lt;/code&amp;gt; dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l&#039;autre système Linux.&lt;br /&gt;
&lt;br /&gt;
=== ET TOUJOURS : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;man rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;accès à la page du manuel, le réflexe qu&#039;on devrait toujours avoir...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques précisions concernant rpm ==&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre SRPM et RPM ? ===&lt;br /&gt;
&lt;br /&gt;
Les paquetages SRPM (Source RPM) contiennent les sources d&#039;un logiciel prêtes à être recompilées et transformées en paquetage rpm.&amp;lt;br /&amp;gt; Afin de reconstruire un paquetage rpm à partir d&#039;un srpm (fichier .src.rpm), il faut utiliser la commande :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --rebuild paquetage.src.rpm&amp;lt;br /&amp;gt; &amp;lt;/code&amp;gt;Le paquetage rpm résultant se trouvera dans &amp;lt;code&amp;gt;/usr/src/RPM/RPMS/&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; où &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; est i386, i586, ppc, etc. suivant votre architecture.&lt;br /&gt;
&lt;br /&gt;
Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --recompile paquetage.src.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s&#039;installer, tout en conservant l&#039;intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure &amp;amp;&amp;amp; make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.&lt;br /&gt;
&lt;br /&gt;
Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l&#039;article sur la [../kernel/compil.php3 compilation] .&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les fichiers *.rpmsave et *.rpmnew ? ===&lt;br /&gt;
&lt;br /&gt;
Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.&amp;lt;br /&amp;gt; Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre &amp;quot;installer&amp;quot; et &amp;quot;mettre à jour&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour (&#039;&#039;upgrade&#039;&#039; en anglais) remplace l&#039;ancien paquetage par le nouveau, tandis que l&#039;installation conserve si possible l&#039;ancienne version du programme et installe la nouvelle en parallèle.&lt;br /&gt;
&lt;br /&gt;
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s&#039;il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l&#039;ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d&#039;avoir plusieurs versions d&#039;un bibliothèque installée sur un système.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les paquetages -devel ? ===&lt;br /&gt;
&lt;br /&gt;
Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.&lt;br /&gt;
&lt;br /&gt;
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c&#039;est à dire la version que vous allez utiliser tous les jours.&lt;br /&gt;
&lt;br /&gt;
toto-devel.rpm contient des fichiers (les &amp;quot;entêtes&amp;quot;, etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.&lt;br /&gt;
&lt;br /&gt;
Vous avez besoin d&#039;installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d&#039;après l&#039;archive tar.gz ou le paquetage src.rpm.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commandes urpm* de Mandrake ==&lt;br /&gt;
&lt;br /&gt;
Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :&lt;br /&gt;
&lt;br /&gt;
* résolution automatique et installation/désistallation automatique des paquetages dépendants (rpm indique seulement le nom de paquetages manquants)&lt;br /&gt;
* urpm connaît l&#039;ensemble des paquetages installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org  Penguin Liberation Front] ...)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages en donnant seulement un nom incomplet (exemple : &amp;lt;code&amp;gt;urpmi koffice&amp;lt;/code&amp;gt; pour chercher et installer Koffice, &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (&amp;lt;code&amp;gt;man urpmi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt;, etc.) afin d&#039;en apprendre plus.&lt;br /&gt;
&lt;br /&gt;
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.&lt;br /&gt;
&lt;br /&gt;
=== Configurer urpm ===&lt;br /&gt;
&lt;br /&gt;
==== Ajouter / mettre à jour une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.&amp;lt;br /&amp;gt; Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire &amp;quot;incoming/rpms&amp;quot; dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l&#039;ajouter à votre base de données urpm par la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.&lt;br /&gt;
&lt;br /&gt;
Par la suite, vous pourrez mettre à jour cette source par :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update mes_rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, pour ajouter une source ftp de paquetages, on donne l&#039;URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org  Penguin Liberation Front] et une Mandrake 9.0 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et de la même façon, pour mettre à jour la source de temps en temps :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update plf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;option -a permet de mettre à jour toutes les sources en même temps&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update -a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ajouter des sources distantes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ajout de Jean-Thomas MUYL&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous possédez une connexion à haut débit (ce n&#039;est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;contrib&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; situées sur internet.&lt;br /&gt;
&lt;br /&gt;
L&#039;outil en ligne à [http://easyurpmi.zarb.org cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un &amp;lt;code&amp;gt;urpmi.removemedia -a&amp;lt;/code&amp;gt; pour ne plus utiliser les cdroms comme sources, et ne plus vous fatiguer à les chercher dans la pile de cd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : le fichier de configuration de urpm est &amp;lt;code&amp;gt;/etc/urpmi/urpmi.cfg&amp;lt;/code&amp;gt; et les bases de données dans &amp;lt;code&amp;gt;/var/lib/urpmi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Supprimer une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Pour supprimer la source mes_rpm, taper :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.removemedia mes_rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installer avec urpmi ===&lt;br /&gt;
&lt;br /&gt;
==== Installer depuis les sources urpm&amp;lt;br /&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande &#039;&#039;&#039;urpmi&#039;&#039;&#039; suivie d&#039;une partie du nom du logiciel. Exemple :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors chercher la version la plus récente du package correspondant, regarder s&#039;il doit installer des packages dépendants (et vous en demander confirmation), et installer l&#039;ensemble des packages.&lt;br /&gt;
&lt;br /&gt;
Dans le cas ou l&#039;argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu&#039;à choisir dans la liste et relancer urpmi avec le bon nom de package.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi -p libe2p.so.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors rechercher quel paquetage fournit &amp;lt;code&amp;gt;libe2p.so.2&amp;lt;/code&amp;gt; et l&#039;installer (ici libext2fs2).&lt;br /&gt;
&lt;br /&gt;
==== Installer directement un ou plusieurs fichiers rpm ====&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mon_paquetage-version.i586.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le package sera mis à jour de la même manière que rpm -U l&#039;aurait fait.&lt;br /&gt;
&lt;br /&gt;
urpmi peut installer plusieurs paquetages d&#039;un coup : par exemple, pour installer la dernière version de KDE que j&#039;ai téléchargée, je me mets dans le répertoire où j&#039;ai mis les rpm, et je tape :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi *.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l&#039;ancien, ou bien une nouvelle librairie qui doit coexister avec l&#039;ancienne), il faut utiliser l&#039;option -i : urpmi -i&lt;br /&gt;
&lt;br /&gt;
urpmi peut également utiliser une url pour installer un paquet. Par exemple, &amp;lt;code&amp;gt;urpmi http://example.com/example.rpm&amp;lt;/code&amp;gt; va installer le paquet aprés l&#039;avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment.&lt;br /&gt;
&lt;br /&gt;
=== Désinstaller avec urpme ===&lt;br /&gt;
&lt;br /&gt;
Pour désinstaller un paquetage, il faut utiliser &#039;&#039;&#039;urpme&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpme mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
désinstallera mplayer. S&#039;il y a des paquetages qui en dépendent, urpme demandera s&#039;il doit les désinstaller également. À utiliser avec précaution ;-)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rechercher avec urpmf (et urpmq) ===&lt;br /&gt;
&lt;br /&gt;
L&#039;outil de choix pour faire de recherches dans les packages rpm et &#039;&#039;&#039; urpmf&#039;&#039;&#039;. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmf toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
renverra la liste de tous les paquetages qui contiennent le fichier toto.&lt;br /&gt;
&lt;br /&gt;
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages du groupe &amp;quot;Games&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf --group Games&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Taille du paquetage &amp;quot;pingus&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --size pingus&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;pingus:size:1102629&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Recherche du mot &amp;quot;pingus&amp;quot; dans les résumés de paquets&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --summary pingus&amp;lt;br /&amp;gt; pingus:summary:Pingus - A free Lemmings clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt; pour de plus amples informations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &#039;&#039;&#039;urpmq&#039;&#039;&#039; vous permet d&#039;autres types de requêtes :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages dont le nom contient la chaîne &amp;quot;toto&amp;quot; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Sur quelle source se trouve le paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq --archive toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Quels paquetages dépendent du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -d toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Nom complet du fichier rpm du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -r toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
Résumé d&#039;une ligne d&#039;un paquet ( summary + nom + cersion ) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; urpmq --summary toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi &amp;lt;code&amp;gt;man urpmq&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le système ===&lt;br /&gt;
&lt;br /&gt;
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.&amp;lt;br /&amp;gt; Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).&amp;lt;br /&amp;gt; Si la source de mise à jour s&#039;appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi.update maj_secu&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; puis :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi --auto-select&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu&#039;il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l&#039;option &amp;lt;code&amp;gt;--auto&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d&#039;ajouter leur nom dans le fichier &amp;lt;code&amp;gt;/etc/urpmi/skip.list&amp;lt;/code&amp;gt; .&amp;lt;br /&amp;gt; Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;kernel&amp;lt;br /&amp;gt; glibc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion sur urpm ===&lt;br /&gt;
&lt;br /&gt;
Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== apt-get sur Redhat ==&lt;br /&gt;
&lt;br /&gt;
Redhat dispose également d&#039;outils pour faciliter la gestion des packages et la mise à jour du système. J&#039;ai testé &amp;lt;code&amp;gt;rpm-get&amp;lt;/code&amp;gt; que je n&#039;ai pas trouvé satisfaisant. Par-contre le portage de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; sur redhat est véritablement une réussite. C&#039;est donc cet utilitaire dont je parlerai concernant Redhat (pour l&#039;article je travaille sur une Redhat 7.3)&lt;br /&gt;
&lt;br /&gt;
Cette version de apt-get pour RPM, même si elle est critiquée parce qu&#039;elle utilise &amp;lt;code&amp;gt;RPM&amp;lt;/code&amp;gt; (contre &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; pour Debian), est extrêmement efficace&lt;br /&gt;
&lt;br /&gt;
Les principaux apports de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des dépendances pour l&#039;installation et la désinstallation de packages&lt;br /&gt;
* Mise à jour complète de la distribution avec les dernières versions des packages existantes&lt;br /&gt;
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet&lt;br /&gt;
&lt;br /&gt;
=== Installation de apt-get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les packages à installer&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Vous devez installer au moins le package [http://apt.freshrpms.net/  apt-get] . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, [http://ftp.freshrpms.net/pub/freshrpms/valhalla/synaptic/synaptic-0.25-fr0.1rh73.i386.rpm synaptic]. &amp;lt;br /&amp;gt;[[Image:rpm-rpm_synaptic.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La configuration&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Elle est très simple. Une fois les packages installés il vous suffit de taper &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/apt.conf&amp;lt;/code&amp;gt; : fichier de configuration de apt-get&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/cache/apt/archives&amp;lt;/code&amp;gt; : contient les packages qui ont été downloadés pour être installés.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commande supplémentaire&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;apt-cdrom&amp;lt;/code&amp;gt; vous permet de rajouter directement au fichier &amp;lt;code&amp;gt;sources.list&amp;lt;/code&amp;gt; des dépôts sur CD-ROM. &amp;lt;br /&amp;gt;La syntaxe de la commande : &amp;lt;code&amp;gt;apt-cdrom --cdrom &amp;lt;point-de-montage&amp;gt; add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple : &#039;&#039;&#039;&amp;lt;code&amp;gt;apt-cdrom --cdrom /mnt/cdrom add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.&lt;br /&gt;
&lt;br /&gt;
=== Installer / Désinstaller / Mettre à jour des packages ===&lt;br /&gt;
&lt;br /&gt;
==== Installer / Mettre à jour un ou plusieurs packages ====&lt;br /&gt;
&lt;br /&gt;
* Pour installer un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install package1 [package2...]&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install mplayer&amp;lt;/code&amp;gt; installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Vous pouvez également choisir d&#039;installer des sources. Pour ce faire, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; &amp;lt;code&amp;gt;apt-get source galeon&amp;lt;/code&amp;gt; vous permet de récupérer le RPM source de galeon.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt;. Il est plus sûr au préalable d&#039;exécuter la commande &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pour mettre à jour la base de données locale et s&#039;assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get upgrade package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get upgrade mplayer&amp;lt;/code&amp;gt; mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.&lt;br /&gt;
&lt;br /&gt;
==== Désinstaller avec apt-get ====&lt;br /&gt;
&lt;br /&gt;
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d&#039;utiliser la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; suivie de l&#039;argument &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get remove package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get remove mplayer&amp;lt;/code&amp;gt; supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.&lt;br /&gt;
&lt;br /&gt;
==== Mettre à jour le système ====&lt;br /&gt;
&lt;br /&gt;
Enfin &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pou s&#039;assurer de disposer des derniers packages. Puis il suffit de lancer la commande &amp;lt;code&amp;gt;apt-get dist-upgrade&amp;lt;/code&amp;gt;. Et le tour est joué ;)&lt;br /&gt;
&lt;br /&gt;
Vous disposez également de la commande &amp;lt;code&amp;gt;apt-get check&amp;lt;/code&amp;gt;. Elle vous permet de vérifier que vous n&#039;avez pas de dépendances non résolues sur votre système.&lt;br /&gt;
&lt;br /&gt;
==== Rechercher des informations sur un package installé ====&lt;br /&gt;
&lt;br /&gt;
Enfin la commande &amp;lt;code&amp;gt;apt-cache&amp;lt;/code&amp;gt; vous permet d&#039;obtenir un certain nombre d&#039;informations sur les packages installés :&lt;br /&gt;
&lt;br /&gt;
* Pour vérifier qu&#039;un package est bien installé, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache search chaine_de_caractères&amp;lt;/code&amp;gt; (la chaîne de caractères peut contenir des expressions régulières).&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez vérifier que mplayer est bien installé :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache search mplayer&amp;lt;br /&amp;gt; mplayer - MPlayer, the Movie Player for Linux.&amp;lt;br /&amp;gt; mplayer-skins - A collection of skins for MPlayer.&amp;lt;br /&amp;gt; transcode - A Linux video stream processing utility.&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour vérifier les dépendances d&#039;un package, on utilisera l&#039;argument &amp;lt;code&amp;gt;depends&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache depends chaine_de_caractères&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez connaitre les dépendances de mplayer :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache depends mplayer&amp;lt;br /&amp;gt; mplayer&amp;lt;br /&amp;gt; Depends: libdvdread&amp;lt;br /&amp;gt; Depends: libdvdcss&amp;lt;br /&amp;gt; libdvdcss2&amp;lt;br /&amp;gt; Depends: gtk+&amp;lt;br /&amp;gt; Depends: SDL&amp;lt;br /&amp;gt; Depends: divx4linux&amp;lt;br /&amp;gt; Depends: lame&amp;lt;br /&amp;gt; Depends: libvorbis&amp;lt;br /&amp;gt; Depends: lirc&amp;lt;br /&amp;gt; Depends: libdv&amp;lt;br /&amp;gt; Depends: aalib&amp;lt;br /&amp;gt; Depends: arts &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot, Anne-Laure Nicolas le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot, Anne-Laure Nicolas&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4181</id>
		<title>RPM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4181"/>
		<updated>2005-10-02T22:28:25Z</updated>

		<summary type="html">&lt;p&gt;Misc : utilsiation de la nouvelle addresse, note sur la non utilisation des cdroms&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe &#039;Jice&#039; Cardot &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installer des programmes sous Linux est très simple quand on utilise les bons outils...&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Le format RPM (RedHat Package Manager), a été, comme son nom l&#039;indique, créé à l&#039;origine pour la distribution RedHat. Depuis, de nombreuses distributions l&#039;ont utilisé, on peut citer par exemple Mandrake ou SuSe. D&#039;autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Qu&#039;est-ce qu&#039;un package ?&#039;&#039;&#039; C&#039;est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l&#039;installation ou de la désinstallation de l&#039;application. Ce fichier contient également toutes les dépendances à d&#039;autres applications, bibliothèques, etc.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l&#039;ensemble des fichiers d&#039;un programme (le fichier rpm lui-même)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d&#039;installer et de gérer les packages RPM. L&#039;installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.&lt;br /&gt;
&lt;br /&gt;
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d&#039;administrateur (root).&lt;br /&gt;
&lt;br /&gt;
Nous allons voir ici deux méthodes pour gérer les paquets RPM :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [#cdes le programme &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;],&lt;br /&gt;
* [#urpm les programmes &amp;lt;code&amp;gt;urpm*&amp;lt;/code&amp;gt; de Mandrake].&lt;br /&gt;
&lt;br /&gt;
Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :&lt;br /&gt;
&lt;br /&gt;
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l&#039;indétermination.&lt;br /&gt;
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; s&#039;adresse à la base de données des paquetages installés, qui consigne les noms courts en plus des noms de fichiers complets. L&#039;indication du numéro de version n&#039;est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).&lt;br /&gt;
&lt;br /&gt;
== Les commandes rpm usuelles ==&lt;br /&gt;
&lt;br /&gt;
=== Pour installer un nouveau paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ivh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, si vous installez un paquetage par cette méthode et qu&#039;il existe déjà sur votre système dans une version inférieure, vous risquez d&#039;avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.&amp;lt;br /&amp;gt; Les options &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; ne sont pas obligatoires, &amp;lt;code&amp;gt; -i&amp;lt;/code&amp;gt; est suffisant pour faire une installation. L&#039;option &amp;lt;code&amp;gt; h&amp;lt;/code&amp;gt; provoque l&#039;affichage d&#039;une barre de progression (ça fait très pro sur l&#039;écran !) et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; rend l&#039;installation bavarde, ce qui fournit des messages plus explicites en cas d&#039;erreur. L&#039;option &amp;lt;code&amp;gt; -vh&amp;lt;/code&amp;gt; peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.&lt;br /&gt;
&lt;br /&gt;
=== Pour mettre à jour un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;U&amp;quot; comme &amp;quot;Upgrade&amp;quot; (mise à jour en anglais).&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne s&#039;applique pas pour upgrader un noyau, voir la [../kernel/kernel.php3#precompile rubrique noyau] à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Enfin, pour remplacer un paquetage par un paquetage plus ancien (&amp;quot;downgrader&amp;quot;), la commande à utiliser est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh --oldpackage toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour supprimer un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;rpm -e toto&amp;lt;br /&amp;gt; rpm -e toto-version&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;quot; correspond à &amp;quot;erase&amp;quot; (effacer en anglais). &amp;lt;br /&amp;gt; La syntaxe complète (avec numéro de version) permet de distinguer deux versions d&#039;un même paquetage qui auraient été installées ensemble.&lt;br /&gt;
&lt;br /&gt;
=== Pour faire des requêtes sur les paquetages : ===&lt;br /&gt;
&lt;br /&gt;
Afficher la liste de tous les paquetages déjà installés J&#039;imagine que &amp;quot;&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&amp;quot; doit signifier &amp;quot;all&amp;quot; ;-) :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour afficher la liste page par page...  &lt;br /&gt;
&lt;br /&gt;
Trouve un paquetage identifié par son nom (toto) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La recherche peut s&#039;appliquer à une partie seulement du nom, par exemple &amp;lt;code&amp;gt;rpm -qa | grep &#039;util&#039;&amp;lt;/code&amp;gt; vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !&lt;br /&gt;
&lt;br /&gt;
Pour trier par date d&#039;installation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa --last&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour trier par taille :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -qa --queryformat &#039;%{name} %{size}\n&#039; | sort -n +1 | column -t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Jolie ligne de commande n&#039;est-ce pas ? ;-)&lt;br /&gt;
&lt;br /&gt;
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ql toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On dira que &amp;quot;&amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&amp;quot; est l&#039;initiale de &amp;quot;list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qi toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On parie que &amp;quot;&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;quot; est mis pour &amp;quot;information&amp;quot; ? &amp;lt;br /&amp;gt; La même chose sur un paquetage pas encore installé : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qip toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&amp;quot; comme &amp;quot;package&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nota :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* L&#039;option &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; s&#039;applique aussi à d&#039;autres syntaxes, par exemple &amp;lt;code&amp;gt;rpm -qlp toto.rpm&amp;lt;/code&amp;gt; pour avoir la liste des fichiers d&#039;un paquetage non encore installé.&lt;br /&gt;
* Les options de requêtes peuvent se cumuler. Par exemple &amp;lt;code&amp;gt;rpm -ql&#039;&#039;&#039;ip&#039;&#039;&#039; toto.rpm&amp;lt;/code&amp;gt; donnera  à la fois les infos et la liste des fichiers du paquetage toto.rpm.&lt;br /&gt;
&lt;br /&gt;
=== Retrouver le paquetage d&#039;origine d&#039;un fichier : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qf /usr/lib/toto.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut se produire que vous vous trouviez en face d&#039;un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d&#039;une aide précieuse. Ici le &#039;&amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&#039; signifie fichier (file en anglais).&lt;br /&gt;
&lt;br /&gt;
Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?&amp;lt;br /&amp;gt; Si vous utilisez Mandrake (voir [#urpm la partie sur urpm plus bas] ), la commande suivante fera l&#039;affaire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf le_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;for i in *.rpm ; do rpm -qpli $i | grep le_fichier &amp;amp;&amp;amp; echo $i ; done&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ou bien :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -q -p -filesbypkg *.rpm | grep le_fichier&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester l&#039;installation d&#039;une paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --test toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l&#039;installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas installer le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --nodeps toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deuxièmement : forcer l&#039;installation, en cas de conflit avec certains autres &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --force toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, combinez les deux options pour vraiment obliger &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; à procéder à l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas désinstaller le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche la liste des paquetages dont le nom contient toto, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;toto-1.1&amp;lt;br /&amp;gt;toto-1.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -e toto-1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désinstalle le paquetage désigné par son nom &#039;&#039;&#039;et&#039;&#039;&#039; son numéro de version. &lt;br /&gt;
&lt;br /&gt;
=== Extraire des fichiers d&#039;un RPM : ===&lt;br /&gt;
&lt;br /&gt;
Certains outils comme Midnight Commander (mc, ou gmc) permettent d&#039;ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d&#039;autres répertoires.&amp;lt;br /&amp;gt; Vous pouvez aussi convertir le rpm en archive cpio (l&#039;ancêtre de tar), par la commande &amp;lt;code&amp;gt;rpm2cpio&amp;lt;/code&amp;gt;, et ensuite utiliser la commande &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt; pour extraire le ou les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Installer un RPM dans un autre système Linux que celui qui tourne : ===&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --root=/mnt/racine /chemin/package.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser l&#039;option &amp;lt;code&amp;gt;--root=/mnt/racine&amp;lt;/code&amp;gt; dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l&#039;autre système Linux.&lt;br /&gt;
&lt;br /&gt;
=== ET TOUJOURS : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;man rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;accès à la page du manuel, le réflexe qu&#039;on devrait toujours avoir...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques précisions concernant rpm ==&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre SRPM et RPM ? ===&lt;br /&gt;
&lt;br /&gt;
Les paquetages SRPM (Source RPM) contiennent les sources d&#039;un logiciel prêtes à être recompilées et transformées en paquetage rpm.&amp;lt;br /&amp;gt; Afin de reconstruire un paquetage rpm à partir d&#039;un srpm (fichier .src.rpm), il faut utiliser la commande :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --rebuild paquetage.src.rpm&amp;lt;br /&amp;gt; &amp;lt;/code&amp;gt;Le paquetage rpm résultant se trouvera dans &amp;lt;code&amp;gt;/usr/src/RPM/RPMS/&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; où &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; est i386, i586, ppc, etc. suivant votre architecture.&lt;br /&gt;
&lt;br /&gt;
Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --recompile paquetage.src.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s&#039;installer, tout en conservant l&#039;intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure &amp;amp;&amp;amp; make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.&lt;br /&gt;
&lt;br /&gt;
Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l&#039;article sur la [../kernel/compil.php3 compilation] .&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les fichiers *.rpmsave et *.rpmnew ? ===&lt;br /&gt;
&lt;br /&gt;
Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.&amp;lt;br /&amp;gt; Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre &amp;quot;installer&amp;quot; et &amp;quot;mettre à jour&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour (&#039;&#039;upgrade&#039;&#039; en anglais) remplace l&#039;ancien paquetage par le nouveau, tandis que l&#039;installation conserve si possible l&#039;ancienne version du programme et installe la nouvelle en parallèle.&lt;br /&gt;
&lt;br /&gt;
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s&#039;il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l&#039;ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d&#039;avoir plusieurs versions d&#039;un bibliothèque installée sur un système.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les paquetages -devel ? ===&lt;br /&gt;
&lt;br /&gt;
Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.&lt;br /&gt;
&lt;br /&gt;
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c&#039;est à dire la version que vous allez utiliser tous les jours.&lt;br /&gt;
&lt;br /&gt;
toto-devel.rpm contient des fichiers (les &amp;quot;entêtes&amp;quot;, etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.&lt;br /&gt;
&lt;br /&gt;
Vous avez besoin d&#039;installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d&#039;après l&#039;archive tar.gz ou le paquetage src.rpm.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commandes urpm* de Mandrake ==&lt;br /&gt;
&lt;br /&gt;
Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :&lt;br /&gt;
&lt;br /&gt;
* résolution automatique et installation/désistallation automatique des paquetages dépendants (rpm indique seulement le nom de paquetages manquants)&lt;br /&gt;
* urpm connaît l&#039;ensemble des paquetages installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org  Penguin Liberation Front] ...)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages en donnant seulement un nom incomplet (exemple : &amp;lt;code&amp;gt;urpmi koffice&amp;lt;/code&amp;gt; pour chercher et installer Koffice, &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (&amp;lt;code&amp;gt;man urpmi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt;, etc.) afin d&#039;en apprendre plus.&lt;br /&gt;
&lt;br /&gt;
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.&lt;br /&gt;
&lt;br /&gt;
=== Configurer urpm ===&lt;br /&gt;
&lt;br /&gt;
==== Ajouter / mettre à jour une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.&amp;lt;br /&amp;gt; Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire &amp;quot;incoming/rpms&amp;quot; dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l&#039;ajouter à votre base de données urpm par la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.&lt;br /&gt;
&lt;br /&gt;
Par la suite, vous pourrez mettre à jour cette source par :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update mes_rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, pour ajouter une source ftp de paquetages, on donne l&#039;URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org  Penguin Liberation Front] et une Mandrake 9.0 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et de la même façon, pour mettre à jour la source de temps en temps :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update plf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ajouter des sources distantes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ajout de Jean-Thomas MUYL&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous possédez une connexion à haut débit (ce n&#039;est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;contrib&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; situées sur internet.&lt;br /&gt;
&lt;br /&gt;
L&#039;outil en ligne à [http://easyurpmi.zarb.org cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un &amp;lt;code&amp;gt;urpmi.removemedia -a&amp;lt;/code&amp;gt; pour ne plus utiliser les cdroms comme sources, et ne plus vous fatiguer à les chercher dans la pile de cd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : le fichier de configuration de urpm est &amp;lt;code&amp;gt;/etc/urpmi/urpmi.cfg&amp;lt;/code&amp;gt; et les bases de données dans &amp;lt;code&amp;gt;/var/lib/urpmi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Supprimer une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Pour supprimer la source mes_rpm, taper :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.removemedia mes_rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installer avec urpmi ===&lt;br /&gt;
&lt;br /&gt;
==== Installer depuis les sources urpm&amp;lt;br /&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande &#039;&#039;&#039;urpmi&#039;&#039;&#039; suivie d&#039;une partie du nom du logiciel. Exemple :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors chercher la version la plus récente du package correspondant, regarder s&#039;il doit installer des packages dépendants (et vous en demander confirmation), et installer l&#039;ensemble des packages.&lt;br /&gt;
&lt;br /&gt;
Dans le cas ou l&#039;argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu&#039;à choisir dans la liste et relancer urpmi avec le bon nom de package.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi -p libe2p.so.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors rechercher quel paquetage fournit &amp;lt;code&amp;gt;libe2p.so.2&amp;lt;/code&amp;gt; et l&#039;installer (ici libext2fs2).&lt;br /&gt;
&lt;br /&gt;
==== Installer directement un ou plusieurs fichiers rpm ====&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mon_paquetage-version.i586.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le package sera mis à jour de la même manière que rpm -U l&#039;aurait fait.&lt;br /&gt;
&lt;br /&gt;
urpmi peut installer plusieurs paquetages d&#039;un coup : par exemple, pour installer la dernière version de KDE que j&#039;ai téléchargée, je me mets dans le répertoire où j&#039;ai mis les rpm, et je tape :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi *.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l&#039;ancien, ou bien une nouvelle librairie qui doit coexister avec l&#039;ancienne), il faut utiliser l&#039;option -i : urpmi -i&lt;br /&gt;
&lt;br /&gt;
urpmi peut également utiliser une url pour installer un paquet. Par exemple, &amp;lt;code&amp;gt;urpmi http://example.com/example.rpm&amp;lt;/code&amp;gt; va installer le paquet aprés l&#039;avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment.&lt;br /&gt;
&lt;br /&gt;
=== Désinstaller avec urpme ===&lt;br /&gt;
&lt;br /&gt;
Pour désinstaller un paquetage, il faut utiliser &#039;&#039;&#039;urpme&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpme mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
désinstallera mplayer. S&#039;il y a des paquetages qui en dépendent, urpme demandera s&#039;il doit les désinstaller également. À utiliser avec précaution ;-)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rechercher avec urpmf (et urpmq) ===&lt;br /&gt;
&lt;br /&gt;
L&#039;outil de choix pour faire de recherches dans les packages rpm et &#039;&#039;&#039; urpmf&#039;&#039;&#039;. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmf toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
renverra la liste de tous les paquetages qui contiennent le fichier toto.&lt;br /&gt;
&lt;br /&gt;
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages du groupe &amp;quot;Games&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf --group Games&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Taille du paquetage &amp;quot;pingus&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --size pingus&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;pingus:size:1102629&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Recherche du mot &amp;quot;pingus&amp;quot; dans les résumés de paquets&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --summary pingus&amp;lt;br /&amp;gt; pingus:summary:Pingus - A free Lemmings clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt; pour de plus amples informations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &#039;&#039;&#039;urpmq&#039;&#039;&#039; vous permet d&#039;autres types de requêtes :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages dont le nom contient la chaîne &amp;quot;toto&amp;quot; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Sur quelle source se trouve le paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq --archive toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Quels paquetages dépendent du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -d toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Nom complet du fichier rpm du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -r toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
Résumé d&#039;une ligne d&#039;un paquet ( summary + nom + cersion ) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; urpmq --summary toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi &amp;lt;code&amp;gt;man urpmq&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le système ===&lt;br /&gt;
&lt;br /&gt;
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.&amp;lt;br /&amp;gt; Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).&amp;lt;br /&amp;gt; Si la source de mise à jour s&#039;appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi.update maj_secu&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; puis :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi --auto-select&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu&#039;il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l&#039;option &amp;lt;code&amp;gt;--auto&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d&#039;ajouter leur nom dans le fichier &amp;lt;code&amp;gt;/etc/urpmi/skip.list&amp;lt;/code&amp;gt; .&amp;lt;br /&amp;gt; Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;kernel&amp;lt;br /&amp;gt; glibc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion sur urpm ===&lt;br /&gt;
&lt;br /&gt;
Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== apt-get sur Redhat ==&lt;br /&gt;
&lt;br /&gt;
Redhat dispose également d&#039;outils pour faciliter la gestion des packages et la mise à jour du système. J&#039;ai testé &amp;lt;code&amp;gt;rpm-get&amp;lt;/code&amp;gt; que je n&#039;ai pas trouvé satisfaisant. Par-contre le portage de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; sur redhat est véritablement une réussite. C&#039;est donc cet utilitaire dont je parlerai concernant Redhat (pour l&#039;article je travaille sur une Redhat 7.3)&lt;br /&gt;
&lt;br /&gt;
Cette version de apt-get pour RPM, même si elle est critiquée parce qu&#039;elle utilise &amp;lt;code&amp;gt;RPM&amp;lt;/code&amp;gt; (contre &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; pour Debian), est extrêmement efficace&lt;br /&gt;
&lt;br /&gt;
Les principaux apports de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des dépendances pour l&#039;installation et la désinstallation de packages&lt;br /&gt;
* Mise à jour complète de la distribution avec les dernières versions des packages existantes&lt;br /&gt;
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet&lt;br /&gt;
&lt;br /&gt;
=== Installation de apt-get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les packages à installer&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Vous devez installer au moins le package [http://apt.freshrpms.net/  apt-get] . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, [http://ftp.freshrpms.net/pub/freshrpms/valhalla/synaptic/synaptic-0.25-fr0.1rh73.i386.rpm synaptic]. &amp;lt;br /&amp;gt;[[Image:rpm-rpm_synaptic.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La configuration&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Elle est très simple. Une fois les packages installés il vous suffit de taper &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/apt.conf&amp;lt;/code&amp;gt; : fichier de configuration de apt-get&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/cache/apt/archives&amp;lt;/code&amp;gt; : contient les packages qui ont été downloadés pour être installés.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commande supplémentaire&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;apt-cdrom&amp;lt;/code&amp;gt; vous permet de rajouter directement au fichier &amp;lt;code&amp;gt;sources.list&amp;lt;/code&amp;gt; des dépôts sur CD-ROM. &amp;lt;br /&amp;gt;La syntaxe de la commande : &amp;lt;code&amp;gt;apt-cdrom --cdrom &amp;lt;point-de-montage&amp;gt; add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple : &#039;&#039;&#039;&amp;lt;code&amp;gt;apt-cdrom --cdrom /mnt/cdrom add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.&lt;br /&gt;
&lt;br /&gt;
=== Installer / Désinstaller / Mettre à jour des packages ===&lt;br /&gt;
&lt;br /&gt;
==== Installer / Mettre à jour un ou plusieurs packages ====&lt;br /&gt;
&lt;br /&gt;
* Pour installer un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install package1 [package2...]&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install mplayer&amp;lt;/code&amp;gt; installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Vous pouvez également choisir d&#039;installer des sources. Pour ce faire, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; &amp;lt;code&amp;gt;apt-get source galeon&amp;lt;/code&amp;gt; vous permet de récupérer le RPM source de galeon.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt;. Il est plus sûr au préalable d&#039;exécuter la commande &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pour mettre à jour la base de données locale et s&#039;assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get upgrade package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get upgrade mplayer&amp;lt;/code&amp;gt; mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.&lt;br /&gt;
&lt;br /&gt;
==== Désinstaller avec apt-get ====&lt;br /&gt;
&lt;br /&gt;
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d&#039;utiliser la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; suivie de l&#039;argument &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get remove package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get remove mplayer&amp;lt;/code&amp;gt; supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.&lt;br /&gt;
&lt;br /&gt;
==== Mettre à jour le système ====&lt;br /&gt;
&lt;br /&gt;
Enfin &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pou s&#039;assurer de disposer des derniers packages. Puis il suffit de lancer la commande &amp;lt;code&amp;gt;apt-get dist-upgrade&amp;lt;/code&amp;gt;. Et le tour est joué ;)&lt;br /&gt;
&lt;br /&gt;
Vous disposez également de la commande &amp;lt;code&amp;gt;apt-get check&amp;lt;/code&amp;gt;. Elle vous permet de vérifier que vous n&#039;avez pas de dépendances non résolues sur votre système.&lt;br /&gt;
&lt;br /&gt;
==== Rechercher des informations sur un package installé ====&lt;br /&gt;
&lt;br /&gt;
Enfin la commande &amp;lt;code&amp;gt;apt-cache&amp;lt;/code&amp;gt; vous permet d&#039;obtenir un certain nombre d&#039;informations sur les packages installés :&lt;br /&gt;
&lt;br /&gt;
* Pour vérifier qu&#039;un package est bien installé, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache search chaine_de_caractères&amp;lt;/code&amp;gt; (la chaîne de caractères peut contenir des expressions régulières).&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez vérifier que mplayer est bien installé :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache search mplayer&amp;lt;br /&amp;gt; mplayer - MPlayer, the Movie Player for Linux.&amp;lt;br /&amp;gt; mplayer-skins - A collection of skins for MPlayer.&amp;lt;br /&amp;gt; transcode - A Linux video stream processing utility.&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour vérifier les dépendances d&#039;un package, on utilisera l&#039;argument &amp;lt;code&amp;gt;depends&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache depends chaine_de_caractères&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez connaitre les dépendances de mplayer :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache depends mplayer&amp;lt;br /&amp;gt; mplayer&amp;lt;br /&amp;gt; Depends: libdvdread&amp;lt;br /&amp;gt; Depends: libdvdcss&amp;lt;br /&amp;gt; libdvdcss2&amp;lt;br /&amp;gt; Depends: gtk+&amp;lt;br /&amp;gt; Depends: SDL&amp;lt;br /&amp;gt; Depends: divx4linux&amp;lt;br /&amp;gt; Depends: lame&amp;lt;br /&amp;gt; Depends: libvorbis&amp;lt;br /&amp;gt; Depends: lirc&amp;lt;br /&amp;gt; Depends: libdv&amp;lt;br /&amp;gt; Depends: aalib&amp;lt;br /&amp;gt; Depends: arts &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot, Anne-Laure Nicolas le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot, Anne-Laure Nicolas&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4180</id>
		<title>RPM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4180"/>
		<updated>2005-10-02T22:26:49Z</updated>

		<summary type="html">&lt;p&gt;Misc : utilisation d&amp;#039;url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe &#039;Jice&#039; Cardot &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installer des programmes sous Linux est très simple quand on utilise les bons outils...&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Le format RPM (RedHat Package Manager), a été, comme son nom l&#039;indique, créé à l&#039;origine pour la distribution RedHat. Depuis, de nombreuses distributions l&#039;ont utilisé, on peut citer par exemple Mandrake ou SuSe. D&#039;autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Qu&#039;est-ce qu&#039;un package ?&#039;&#039;&#039; C&#039;est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l&#039;installation ou de la désinstallation de l&#039;application. Ce fichier contient également toutes les dépendances à d&#039;autres applications, bibliothèques, etc.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l&#039;ensemble des fichiers d&#039;un programme (le fichier rpm lui-même)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d&#039;installer et de gérer les packages RPM. L&#039;installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.&lt;br /&gt;
&lt;br /&gt;
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d&#039;administrateur (root).&lt;br /&gt;
&lt;br /&gt;
Nous allons voir ici deux méthodes pour gérer les paquets RPM :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [#cdes le programme &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;],&lt;br /&gt;
* [#urpm les programmes &amp;lt;code&amp;gt;urpm*&amp;lt;/code&amp;gt; de Mandrake].&lt;br /&gt;
&lt;br /&gt;
Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :&lt;br /&gt;
&lt;br /&gt;
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l&#039;indétermination.&lt;br /&gt;
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; s&#039;adresse à la base de données des paquetages installés, qui consigne les noms courts en plus des noms de fichiers complets. L&#039;indication du numéro de version n&#039;est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).&lt;br /&gt;
&lt;br /&gt;
== Les commandes rpm usuelles ==&lt;br /&gt;
&lt;br /&gt;
=== Pour installer un nouveau paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ivh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, si vous installez un paquetage par cette méthode et qu&#039;il existe déjà sur votre système dans une version inférieure, vous risquez d&#039;avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.&amp;lt;br /&amp;gt; Les options &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; ne sont pas obligatoires, &amp;lt;code&amp;gt; -i&amp;lt;/code&amp;gt; est suffisant pour faire une installation. L&#039;option &amp;lt;code&amp;gt; h&amp;lt;/code&amp;gt; provoque l&#039;affichage d&#039;une barre de progression (ça fait très pro sur l&#039;écran !) et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; rend l&#039;installation bavarde, ce qui fournit des messages plus explicites en cas d&#039;erreur. L&#039;option &amp;lt;code&amp;gt; -vh&amp;lt;/code&amp;gt; peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.&lt;br /&gt;
&lt;br /&gt;
=== Pour mettre à jour un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;U&amp;quot; comme &amp;quot;Upgrade&amp;quot; (mise à jour en anglais).&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne s&#039;applique pas pour upgrader un noyau, voir la [../kernel/kernel.php3#precompile rubrique noyau] à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Enfin, pour remplacer un paquetage par un paquetage plus ancien (&amp;quot;downgrader&amp;quot;), la commande à utiliser est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh --oldpackage toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour supprimer un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;rpm -e toto&amp;lt;br /&amp;gt; rpm -e toto-version&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;quot; correspond à &amp;quot;erase&amp;quot; (effacer en anglais). &amp;lt;br /&amp;gt; La syntaxe complète (avec numéro de version) permet de distinguer deux versions d&#039;un même paquetage qui auraient été installées ensemble.&lt;br /&gt;
&lt;br /&gt;
=== Pour faire des requêtes sur les paquetages : ===&lt;br /&gt;
&lt;br /&gt;
Afficher la liste de tous les paquetages déjà installés J&#039;imagine que &amp;quot;&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&amp;quot; doit signifier &amp;quot;all&amp;quot; ;-) :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour afficher la liste page par page...  &lt;br /&gt;
&lt;br /&gt;
Trouve un paquetage identifié par son nom (toto) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La recherche peut s&#039;appliquer à une partie seulement du nom, par exemple &amp;lt;code&amp;gt;rpm -qa | grep &#039;util&#039;&amp;lt;/code&amp;gt; vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !&lt;br /&gt;
&lt;br /&gt;
Pour trier par date d&#039;installation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa --last&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour trier par taille :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -qa --queryformat &#039;%{name} %{size}\n&#039; | sort -n +1 | column -t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Jolie ligne de commande n&#039;est-ce pas ? ;-)&lt;br /&gt;
&lt;br /&gt;
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ql toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On dira que &amp;quot;&amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&amp;quot; est l&#039;initiale de &amp;quot;list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qi toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On parie que &amp;quot;&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;quot; est mis pour &amp;quot;information&amp;quot; ? &amp;lt;br /&amp;gt; La même chose sur un paquetage pas encore installé : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qip toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&amp;quot; comme &amp;quot;package&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nota :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* L&#039;option &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; s&#039;applique aussi à d&#039;autres syntaxes, par exemple &amp;lt;code&amp;gt;rpm -qlp toto.rpm&amp;lt;/code&amp;gt; pour avoir la liste des fichiers d&#039;un paquetage non encore installé.&lt;br /&gt;
* Les options de requêtes peuvent se cumuler. Par exemple &amp;lt;code&amp;gt;rpm -ql&#039;&#039;&#039;ip&#039;&#039;&#039; toto.rpm&amp;lt;/code&amp;gt; donnera  à la fois les infos et la liste des fichiers du paquetage toto.rpm.&lt;br /&gt;
&lt;br /&gt;
=== Retrouver le paquetage d&#039;origine d&#039;un fichier : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qf /usr/lib/toto.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut se produire que vous vous trouviez en face d&#039;un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d&#039;une aide précieuse. Ici le &#039;&amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&#039; signifie fichier (file en anglais).&lt;br /&gt;
&lt;br /&gt;
Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?&amp;lt;br /&amp;gt; Si vous utilisez Mandrake (voir [#urpm la partie sur urpm plus bas] ), la commande suivante fera l&#039;affaire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf le_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;for i in *.rpm ; do rpm -qpli $i | grep le_fichier &amp;amp;&amp;amp; echo $i ; done&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ou bien :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -q -p -filesbypkg *.rpm | grep le_fichier&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester l&#039;installation d&#039;une paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --test toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l&#039;installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas installer le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --nodeps toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deuxièmement : forcer l&#039;installation, en cas de conflit avec certains autres &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --force toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, combinez les deux options pour vraiment obliger &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; à procéder à l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas désinstaller le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche la liste des paquetages dont le nom contient toto, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;toto-1.1&amp;lt;br /&amp;gt;toto-1.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -e toto-1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désinstalle le paquetage désigné par son nom &#039;&#039;&#039;et&#039;&#039;&#039; son numéro de version. &lt;br /&gt;
&lt;br /&gt;
=== Extraire des fichiers d&#039;un RPM : ===&lt;br /&gt;
&lt;br /&gt;
Certains outils comme Midnight Commander (mc, ou gmc) permettent d&#039;ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d&#039;autres répertoires.&amp;lt;br /&amp;gt; Vous pouvez aussi convertir le rpm en archive cpio (l&#039;ancêtre de tar), par la commande &amp;lt;code&amp;gt;rpm2cpio&amp;lt;/code&amp;gt;, et ensuite utiliser la commande &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt; pour extraire le ou les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Installer un RPM dans un autre système Linux que celui qui tourne : ===&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --root=/mnt/racine /chemin/package.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser l&#039;option &amp;lt;code&amp;gt;--root=/mnt/racine&amp;lt;/code&amp;gt; dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l&#039;autre système Linux.&lt;br /&gt;
&lt;br /&gt;
=== ET TOUJOURS : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;man rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;accès à la page du manuel, le réflexe qu&#039;on devrait toujours avoir...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques précisions concernant rpm ==&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre SRPM et RPM ? ===&lt;br /&gt;
&lt;br /&gt;
Les paquetages SRPM (Source RPM) contiennent les sources d&#039;un logiciel prêtes à être recompilées et transformées en paquetage rpm.&amp;lt;br /&amp;gt; Afin de reconstruire un paquetage rpm à partir d&#039;un srpm (fichier .src.rpm), il faut utiliser la commande :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --rebuild paquetage.src.rpm&amp;lt;br /&amp;gt; &amp;lt;/code&amp;gt;Le paquetage rpm résultant se trouvera dans &amp;lt;code&amp;gt;/usr/src/RPM/RPMS/&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; où &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; est i386, i586, ppc, etc. suivant votre architecture.&lt;br /&gt;
&lt;br /&gt;
Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --recompile paquetage.src.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s&#039;installer, tout en conservant l&#039;intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure &amp;amp;&amp;amp; make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.&lt;br /&gt;
&lt;br /&gt;
Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l&#039;article sur la [../kernel/compil.php3 compilation] .&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les fichiers *.rpmsave et *.rpmnew ? ===&lt;br /&gt;
&lt;br /&gt;
Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.&amp;lt;br /&amp;gt; Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre &amp;quot;installer&amp;quot; et &amp;quot;mettre à jour&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour (&#039;&#039;upgrade&#039;&#039; en anglais) remplace l&#039;ancien paquetage par le nouveau, tandis que l&#039;installation conserve si possible l&#039;ancienne version du programme et installe la nouvelle en parallèle.&lt;br /&gt;
&lt;br /&gt;
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s&#039;il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l&#039;ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d&#039;avoir plusieurs versions d&#039;un bibliothèque installée sur un système.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les paquetages -devel ? ===&lt;br /&gt;
&lt;br /&gt;
Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.&lt;br /&gt;
&lt;br /&gt;
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c&#039;est à dire la version que vous allez utiliser tous les jours.&lt;br /&gt;
&lt;br /&gt;
toto-devel.rpm contient des fichiers (les &amp;quot;entêtes&amp;quot;, etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.&lt;br /&gt;
&lt;br /&gt;
Vous avez besoin d&#039;installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d&#039;après l&#039;archive tar.gz ou le paquetage src.rpm.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commandes urpm* de Mandrake ==&lt;br /&gt;
&lt;br /&gt;
Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :&lt;br /&gt;
&lt;br /&gt;
* résolution automatique et installation/désistallation automatique des paquetages dépendants (rpm indique seulement le nom de paquetages manquants)&lt;br /&gt;
* urpm connaît l&#039;ensemble des paquetages installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org  Penguin Liberation Front] ...)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages en donnant seulement un nom incomplet (exemple : &amp;lt;code&amp;gt;urpmi koffice&amp;lt;/code&amp;gt; pour chercher et installer Koffice, &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (&amp;lt;code&amp;gt;man urpmi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt;, etc.) afin d&#039;en apprendre plus.&lt;br /&gt;
&lt;br /&gt;
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.&lt;br /&gt;
&lt;br /&gt;
=== Configurer urpm ===&lt;br /&gt;
&lt;br /&gt;
==== Ajouter / mettre à jour une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.&amp;lt;br /&amp;gt; Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire &amp;quot;incoming/rpms&amp;quot; dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l&#039;ajouter à votre base de données urpm par la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.&lt;br /&gt;
&lt;br /&gt;
Par la suite, vous pourrez mettre à jour cette source par :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update mes_rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, pour ajouter une source ftp de paquetages, on donne l&#039;URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org  Penguin Liberation Front] et une Mandrake 9.0 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et de la même façon, pour mettre à jour la source de temps en temps :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update plf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ajouter des sources distantes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ajout de Jean-Thomas MUYL&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous possédez une connexion à haut débit (ce n&#039;est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;contrib&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; situées sur internet.&lt;br /&gt;
&lt;br /&gt;
L&#039;outil en ligne à [http://plf.zarb.org/~nanardon/index.php cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un &amp;lt;code&amp;gt;urpmi.removemedia -a&amp;lt;/code&amp;gt; pour ne plus utiliser les cdroms comme sources, et ainsi être plus à jour !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : le fichier de configuration de urpm est &amp;lt;code&amp;gt;/etc/urpmi/urpmi.cfg&amp;lt;/code&amp;gt; et les bases de données dans &amp;lt;code&amp;gt;/var/lib/urpmi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Supprimer une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Pour supprimer la source mes_rpm, taper :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.removemedia mes_rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installer avec urpmi ===&lt;br /&gt;
&lt;br /&gt;
==== Installer depuis les sources urpm&amp;lt;br /&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande &#039;&#039;&#039;urpmi&#039;&#039;&#039; suivie d&#039;une partie du nom du logiciel. Exemple :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors chercher la version la plus récente du package correspondant, regarder s&#039;il doit installer des packages dépendants (et vous en demander confirmation), et installer l&#039;ensemble des packages.&lt;br /&gt;
&lt;br /&gt;
Dans le cas ou l&#039;argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu&#039;à choisir dans la liste et relancer urpmi avec le bon nom de package.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi -p libe2p.so.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors rechercher quel paquetage fournit &amp;lt;code&amp;gt;libe2p.so.2&amp;lt;/code&amp;gt; et l&#039;installer (ici libext2fs2).&lt;br /&gt;
&lt;br /&gt;
==== Installer directement un ou plusieurs fichiers rpm ====&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mon_paquetage-version.i586.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le package sera mis à jour de la même manière que rpm -U l&#039;aurait fait.&lt;br /&gt;
&lt;br /&gt;
urpmi peut installer plusieurs paquetages d&#039;un coup : par exemple, pour installer la dernière version de KDE que j&#039;ai téléchargée, je me mets dans le répertoire où j&#039;ai mis les rpm, et je tape :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi *.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l&#039;ancien, ou bien une nouvelle librairie qui doit coexister avec l&#039;ancienne), il faut utiliser l&#039;option -i : urpmi -i&lt;br /&gt;
&lt;br /&gt;
urpmi peut également utiliser une url pour installer un paquet. Par exemple, &amp;lt;code&amp;gt;urpmi http://example.com/example.rpm&amp;lt;/code&amp;gt; va installer le paquet aprés l&#039;avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment.&lt;br /&gt;
&lt;br /&gt;
=== Désinstaller avec urpme ===&lt;br /&gt;
&lt;br /&gt;
Pour désinstaller un paquetage, il faut utiliser &#039;&#039;&#039;urpme&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpme mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
désinstallera mplayer. S&#039;il y a des paquetages qui en dépendent, urpme demandera s&#039;il doit les désinstaller également. À utiliser avec précaution ;-)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rechercher avec urpmf (et urpmq) ===&lt;br /&gt;
&lt;br /&gt;
L&#039;outil de choix pour faire de recherches dans les packages rpm et &#039;&#039;&#039; urpmf&#039;&#039;&#039;. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmf toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
renverra la liste de tous les paquetages qui contiennent le fichier toto.&lt;br /&gt;
&lt;br /&gt;
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages du groupe &amp;quot;Games&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf --group Games&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Taille du paquetage &amp;quot;pingus&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --size pingus&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;pingus:size:1102629&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Recherche du mot &amp;quot;pingus&amp;quot; dans les résumés de paquets&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --summary pingus&amp;lt;br /&amp;gt; pingus:summary:Pingus - A free Lemmings clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt; pour de plus amples informations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &#039;&#039;&#039;urpmq&#039;&#039;&#039; vous permet d&#039;autres types de requêtes :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages dont le nom contient la chaîne &amp;quot;toto&amp;quot; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Sur quelle source se trouve le paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq --archive toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Quels paquetages dépendent du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -d toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Nom complet du fichier rpm du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -r toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
Résumé d&#039;une ligne d&#039;un paquet ( summary + nom + cersion ) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; urpmq --summary toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi &amp;lt;code&amp;gt;man urpmq&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le système ===&lt;br /&gt;
&lt;br /&gt;
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.&amp;lt;br /&amp;gt; Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).&amp;lt;br /&amp;gt; Si la source de mise à jour s&#039;appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi.update maj_secu&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; puis :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi --auto-select&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu&#039;il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l&#039;option &amp;lt;code&amp;gt;--auto&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d&#039;ajouter leur nom dans le fichier &amp;lt;code&amp;gt;/etc/urpmi/skip.list&amp;lt;/code&amp;gt; .&amp;lt;br /&amp;gt; Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;kernel&amp;lt;br /&amp;gt; glibc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion sur urpm ===&lt;br /&gt;
&lt;br /&gt;
Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== apt-get sur Redhat ==&lt;br /&gt;
&lt;br /&gt;
Redhat dispose également d&#039;outils pour faciliter la gestion des packages et la mise à jour du système. J&#039;ai testé &amp;lt;code&amp;gt;rpm-get&amp;lt;/code&amp;gt; que je n&#039;ai pas trouvé satisfaisant. Par-contre le portage de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; sur redhat est véritablement une réussite. C&#039;est donc cet utilitaire dont je parlerai concernant Redhat (pour l&#039;article je travaille sur une Redhat 7.3)&lt;br /&gt;
&lt;br /&gt;
Cette version de apt-get pour RPM, même si elle est critiquée parce qu&#039;elle utilise &amp;lt;code&amp;gt;RPM&amp;lt;/code&amp;gt; (contre &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; pour Debian), est extrêmement efficace&lt;br /&gt;
&lt;br /&gt;
Les principaux apports de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des dépendances pour l&#039;installation et la désinstallation de packages&lt;br /&gt;
* Mise à jour complète de la distribution avec les dernières versions des packages existantes&lt;br /&gt;
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet&lt;br /&gt;
&lt;br /&gt;
=== Installation de apt-get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les packages à installer&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Vous devez installer au moins le package [http://apt.freshrpms.net/  apt-get] . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, [http://ftp.freshrpms.net/pub/freshrpms/valhalla/synaptic/synaptic-0.25-fr0.1rh73.i386.rpm synaptic]. &amp;lt;br /&amp;gt;[[Image:rpm-rpm_synaptic.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La configuration&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Elle est très simple. Une fois les packages installés il vous suffit de taper &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/apt.conf&amp;lt;/code&amp;gt; : fichier de configuration de apt-get&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/cache/apt/archives&amp;lt;/code&amp;gt; : contient les packages qui ont été downloadés pour être installés.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commande supplémentaire&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;apt-cdrom&amp;lt;/code&amp;gt; vous permet de rajouter directement au fichier &amp;lt;code&amp;gt;sources.list&amp;lt;/code&amp;gt; des dépôts sur CD-ROM. &amp;lt;br /&amp;gt;La syntaxe de la commande : &amp;lt;code&amp;gt;apt-cdrom --cdrom &amp;lt;point-de-montage&amp;gt; add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple : &#039;&#039;&#039;&amp;lt;code&amp;gt;apt-cdrom --cdrom /mnt/cdrom add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.&lt;br /&gt;
&lt;br /&gt;
=== Installer / Désinstaller / Mettre à jour des packages ===&lt;br /&gt;
&lt;br /&gt;
==== Installer / Mettre à jour un ou plusieurs packages ====&lt;br /&gt;
&lt;br /&gt;
* Pour installer un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install package1 [package2...]&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install mplayer&amp;lt;/code&amp;gt; installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Vous pouvez également choisir d&#039;installer des sources. Pour ce faire, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; &amp;lt;code&amp;gt;apt-get source galeon&amp;lt;/code&amp;gt; vous permet de récupérer le RPM source de galeon.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt;. Il est plus sûr au préalable d&#039;exécuter la commande &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pour mettre à jour la base de données locale et s&#039;assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get upgrade package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get upgrade mplayer&amp;lt;/code&amp;gt; mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.&lt;br /&gt;
&lt;br /&gt;
==== Désinstaller avec apt-get ====&lt;br /&gt;
&lt;br /&gt;
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d&#039;utiliser la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; suivie de l&#039;argument &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get remove package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get remove mplayer&amp;lt;/code&amp;gt; supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.&lt;br /&gt;
&lt;br /&gt;
==== Mettre à jour le système ====&lt;br /&gt;
&lt;br /&gt;
Enfin &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pou s&#039;assurer de disposer des derniers packages. Puis il suffit de lancer la commande &amp;lt;code&amp;gt;apt-get dist-upgrade&amp;lt;/code&amp;gt;. Et le tour est joué ;)&lt;br /&gt;
&lt;br /&gt;
Vous disposez également de la commande &amp;lt;code&amp;gt;apt-get check&amp;lt;/code&amp;gt;. Elle vous permet de vérifier que vous n&#039;avez pas de dépendances non résolues sur votre système.&lt;br /&gt;
&lt;br /&gt;
==== Rechercher des informations sur un package installé ====&lt;br /&gt;
&lt;br /&gt;
Enfin la commande &amp;lt;code&amp;gt;apt-cache&amp;lt;/code&amp;gt; vous permet d&#039;obtenir un certain nombre d&#039;informations sur les packages installés :&lt;br /&gt;
&lt;br /&gt;
* Pour vérifier qu&#039;un package est bien installé, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache search chaine_de_caractères&amp;lt;/code&amp;gt; (la chaîne de caractères peut contenir des expressions régulières).&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez vérifier que mplayer est bien installé :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache search mplayer&amp;lt;br /&amp;gt; mplayer - MPlayer, the Movie Player for Linux.&amp;lt;br /&amp;gt; mplayer-skins - A collection of skins for MPlayer.&amp;lt;br /&amp;gt; transcode - A Linux video stream processing utility.&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour vérifier les dépendances d&#039;un package, on utilisera l&#039;argument &amp;lt;code&amp;gt;depends&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache depends chaine_de_caractères&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez connaitre les dépendances de mplayer :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache depends mplayer&amp;lt;br /&amp;gt; mplayer&amp;lt;br /&amp;gt; Depends: libdvdread&amp;lt;br /&amp;gt; Depends: libdvdcss&amp;lt;br /&amp;gt; libdvdcss2&amp;lt;br /&amp;gt; Depends: gtk+&amp;lt;br /&amp;gt; Depends: SDL&amp;lt;br /&amp;gt; Depends: divx4linux&amp;lt;br /&amp;gt; Depends: lame&amp;lt;br /&amp;gt; Depends: libvorbis&amp;lt;br /&amp;gt; Depends: lirc&amp;lt;br /&amp;gt; Depends: libdv&amp;lt;br /&amp;gt; Depends: aalib&amp;lt;br /&amp;gt; Depends: arts &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot, Anne-Laure Nicolas le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot, Anne-Laure Nicolas&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4179</id>
		<title>RPM</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=RPM&amp;diff=4179"/>
		<updated>2005-10-02T22:24:19Z</updated>

		<summary type="html">&lt;p&gt;Misc : /* Rechercher avec urpmf (et urpmq) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;RPM (RedHat Package Manager), URPM (User RPM) et apt-get (User RPM)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe &#039;Jice&#039; Cardot &amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas MUYL (maston28)&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installer des programmes sous Linux est très simple quand on utilise les bons outils...&amp;lt;br /&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquetages à ce format.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Le format RPM (RedHat Package Manager), a été, comme son nom l&#039;indique, créé à l&#039;origine pour la distribution RedHat. Depuis, de nombreuses distributions l&#039;ont utilisé, on peut citer par exemple Mandrake ou SuSe. D&#039;autres formats de packages dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Qu&#039;est-ce qu&#039;un package ?&#039;&#039;&#039; C&#039;est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l&#039;installation ou de la désinstallation de l&#039;application. Ce fichier contient également toutes les dépendances à d&#039;autres applications, bibliothèques, etc.&amp;lt;br /&amp;gt;&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : on parle indifféremment de package, paquetage ou même paquet pour désigner le fichier qui contient l&#039;ensemble des fichiers d&#039;un programme (le fichier rpm lui-même)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d&#039;installer et de gérer les packages RPM. L&#039;installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.&lt;br /&gt;
&lt;br /&gt;
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui intallent, mettent à jour ou suppriment des paquetages nécessitent des droits d&#039;administrateur (root).&lt;br /&gt;
&lt;br /&gt;
Nous allons voir ici deux méthodes pour gérer les paquets RPM :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [#cdes le programme &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;],&lt;br /&gt;
* [#urpm les programmes &amp;lt;code&amp;gt;urpm*&amp;lt;/code&amp;gt; de Mandrake].&lt;br /&gt;
&lt;br /&gt;
Les noms de paquetages sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :&lt;br /&gt;
&lt;br /&gt;
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l&#039;indétermination.&lt;br /&gt;
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; s&#039;adresse à la base de données des paquetages installés, qui consigne les noms courts en plus des noms de fichiers complets. L&#039;indication du numéro de version n&#039;est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).&lt;br /&gt;
&lt;br /&gt;
== Les commandes rpm usuelles ==&lt;br /&gt;
&lt;br /&gt;
=== Pour installer un nouveau paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ivh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention, si vous installez un paquetage par cette méthode et qu&#039;il existe déjà sur votre système dans une version inférieure, vous risquez d&#039;avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.&amp;lt;br /&amp;gt; Les options &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; ne sont pas obligatoires, &amp;lt;code&amp;gt; -i&amp;lt;/code&amp;gt; est suffisant pour faire une installation. L&#039;option &amp;lt;code&amp;gt; h&amp;lt;/code&amp;gt; provoque l&#039;affichage d&#039;une barre de progression (ça fait très pro sur l&#039;écran !) et &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; rend l&#039;installation bavarde, ce qui fournit des messages plus explicites en cas d&#039;erreur. L&#039;option &amp;lt;code&amp;gt; -vh&amp;lt;/code&amp;gt; peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.&lt;br /&gt;
&lt;br /&gt;
=== Pour mettre à jour un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;U&amp;quot; comme &amp;quot;Upgrade&amp;quot; (mise à jour en anglais).&lt;br /&gt;
&lt;br /&gt;
Attention, ceci ne s&#039;applique pas pour upgrader un noyau, voir la [../kernel/kernel.php3#precompile rubrique noyau] à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Enfin, pour remplacer un paquetage par un paquetage plus ancien (&amp;quot;downgrader&amp;quot;), la commande à utiliser est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -Uvh --oldpackage toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour supprimer un paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;rpm -e toto&amp;lt;br /&amp;gt; rpm -e toto-version&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le &amp;quot;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;quot; correspond à &amp;quot;erase&amp;quot; (effacer en anglais). &amp;lt;br /&amp;gt; La syntaxe complète (avec numéro de version) permet de distinguer deux versions d&#039;un même paquetage qui auraient été installées ensemble.&lt;br /&gt;
&lt;br /&gt;
=== Pour faire des requêtes sur les paquetages : ===&lt;br /&gt;
&lt;br /&gt;
Afficher la liste de tous les paquetages déjà installés J&#039;imagine que &amp;quot;&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&amp;quot; doit signifier &amp;quot;all&amp;quot; ;-) :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour afficher la liste page par page...  &lt;br /&gt;
&lt;br /&gt;
Trouve un paquetage identifié par son nom (toto) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La recherche peut s&#039;appliquer à une partie seulement du nom, par exemple &amp;lt;code&amp;gt;rpm -qa | grep &#039;util&#039;&amp;lt;/code&amp;gt; vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !&lt;br /&gt;
&lt;br /&gt;
Pour trier par date d&#039;installation :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa --last&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour trier par taille :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -qa --queryformat &#039;%{name} %{size}\n&#039; | sort -n +1 | column -t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Jolie ligne de commande n&#039;est-ce pas ? ;-)&lt;br /&gt;
&lt;br /&gt;
Obtenir la liste des fichiers contenus dans un paquetage toto qui est déjà installé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -ql toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On dira que &amp;quot;&amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&amp;quot; est l&#039;initiale de &amp;quot;list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquetage, une brève description de ce que fait le paquetage, des dépendances qui doivent être satisfaites, etc. :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qi toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On parie que &amp;quot;&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&amp;quot; est mis pour &amp;quot;information&amp;quot; ? &amp;lt;br /&amp;gt; La même chose sur un paquetage pas encore installé : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qip toto.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec un &amp;quot;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&amp;quot; comme &amp;quot;package&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Nota :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* L&#039;option &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; s&#039;applique aussi à d&#039;autres syntaxes, par exemple &amp;lt;code&amp;gt;rpm -qlp toto.rpm&amp;lt;/code&amp;gt; pour avoir la liste des fichiers d&#039;un paquetage non encore installé.&lt;br /&gt;
* Les options de requêtes peuvent se cumuler. Par exemple &amp;lt;code&amp;gt;rpm -ql&#039;&#039;&#039;ip&#039;&#039;&#039; toto.rpm&amp;lt;/code&amp;gt; donnera  à la fois les infos et la liste des fichiers du paquetage toto.rpm.&lt;br /&gt;
&lt;br /&gt;
=== Retrouver le paquetage d&#039;origine d&#039;un fichier : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qf /usr/lib/toto.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut se produire que vous vous trouviez en face d&#039;un fichier dont vous vous demandez quel est le paquetage qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d&#039;une aide précieuse. Ici le &#039;&amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&#039; signifie fichier (file en anglais).&lt;br /&gt;
&lt;br /&gt;
Cette commande fonctionne sur les packages installés. Oui, mais si on veut trouver un fichier parmi les paquetages non installés ?&amp;lt;br /&amp;gt; Si vous utilisez Mandrake (voir [#urpm la partie sur urpm plus bas] ), la commande suivante fera l&#039;affaire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf le_fichier&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;for i in *.rpm ; do rpm -qpli $i | grep le_fichier &amp;amp;&amp;amp; echo $i ; done&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; ou bien :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rpm -q -p -filesbypkg *.rpm | grep le_fichier&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester l&#039;installation d&#039;une paquetage : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --test toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Effectue simplement une vérification sans installer le paquetage toto. Permet essentiellement de vérifier si l&#039;installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas installer le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --nodeps toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deuxièmement : forcer l&#039;installation, en cas de conflit avec certains autres &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --force toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, combinez les deux options pour vraiment obliger &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; à procéder à l&#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Si &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; ne veut pas désinstaller le paquetage toto ===&lt;br /&gt;
&lt;br /&gt;
Il suffit alors de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -qa | grep toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche la liste des paquetages dont le nom contient toto, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;toto-1.1&amp;lt;br /&amp;gt;toto-1.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -e toto-1.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Désinstalle le paquetage désigné par son nom &#039;&#039;&#039;et&#039;&#039;&#039; son numéro de version. &lt;br /&gt;
&lt;br /&gt;
=== Extraire des fichiers d&#039;un RPM : ===&lt;br /&gt;
&lt;br /&gt;
Certains outils comme Midnight Commander (mc, ou gmc) permettent d&#039;ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d&#039;autres répertoires.&amp;lt;br /&amp;gt; Vous pouvez aussi convertir le rpm en archive cpio (l&#039;ancêtre de tar), par la commande &amp;lt;code&amp;gt;rpm2cpio&amp;lt;/code&amp;gt;, et ensuite utiliser la commande &amp;lt;code&amp;gt;cpio&amp;lt;/code&amp;gt; pour extraire le ou les fichiers.&lt;br /&gt;
&lt;br /&gt;
=== Installer un RPM dans un autre système Linux que celui qui tourne : ===&lt;br /&gt;
&lt;br /&gt;
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rpm -i --root=/mnt/racine /chemin/package.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser l&#039;option &amp;lt;code&amp;gt;--root=/mnt/racine&amp;lt;/code&amp;gt; dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l&#039;autre système Linux.&lt;br /&gt;
&lt;br /&gt;
=== ET TOUJOURS : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;man rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;accès à la page du manuel, le réflexe qu&#039;on devrait toujours avoir...&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques précisions concernant rpm ==&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre SRPM et RPM ? ===&lt;br /&gt;
&lt;br /&gt;
Les paquetages SRPM (Source RPM) contiennent les sources d&#039;un logiciel prêtes à être recompilées et transformées en paquetage rpm.&amp;lt;br /&amp;gt; Afin de reconstruire un paquetage rpm à partir d&#039;un srpm (fichier .src.rpm), il faut utiliser la commande :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --rebuild paquetage.src.rpm&amp;lt;br /&amp;gt; &amp;lt;/code&amp;gt;Le paquetage rpm résultant se trouvera dans &amp;lt;code&amp;gt;/usr/src/RPM/RPMS/&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; où &amp;lt;code&amp;gt;&amp;lt;arch&amp;gt;&amp;lt;/code&amp;gt; est i386, i586, ppc, etc. suivant votre architecture.&lt;br /&gt;
&lt;br /&gt;
Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;  # rpmbuild --recompile paquetage.src.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s&#039;installer, tout en conservant l&#039;intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure &amp;amp;&amp;amp; make install, cela ne sera pas le cas.) Par exemple, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.&lt;br /&gt;
&lt;br /&gt;
Note : ce processus nécessite que les paquetages -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l&#039;article sur la [../kernel/compil.php3 compilation] .&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les fichiers *.rpmsave et *.rpmnew ? ===&lt;br /&gt;
&lt;br /&gt;
Lorsque rpm installe un paquetage, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.&amp;lt;br /&amp;gt; Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quelle est la différence entre &amp;quot;installer&amp;quot; et &amp;quot;mettre à jour&amp;quot; ? ===&lt;br /&gt;
&lt;br /&gt;
La mise à jour (&#039;&#039;upgrade&#039;&#039; en anglais) remplace l&#039;ancien paquetage par le nouveau, tandis que l&#039;installation conserve si possible l&#039;ancienne version du programme et installe la nouvelle en parallèle.&lt;br /&gt;
&lt;br /&gt;
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s&#039;il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l&#039;ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d&#039;avoir plusieurs versions d&#039;un bibliothèque installée sur un système.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Que sont les paquetages -devel ? ===&lt;br /&gt;
&lt;br /&gt;
Vous avez sans doute remarqué que souvent, pour un package toto.rpm, vous aviez un deuxième package toto-devel.rpm.&lt;br /&gt;
&lt;br /&gt;
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c&#039;est à dire la version que vous allez utiliser tous les jours.&lt;br /&gt;
&lt;br /&gt;
toto-devel.rpm contient des fichiers (les &amp;quot;entêtes&amp;quot;, etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquetage -devel.&lt;br /&gt;
&lt;br /&gt;
Vous avez besoin d&#039;installer les paquetages -devel uniquement si vous désirez compiler des logiciels, que ce soit d&#039;après l&#039;archive tar.gz ou le paquetage src.rpm.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commandes urpm* de Mandrake ==&lt;br /&gt;
&lt;br /&gt;
Le programme rpm de RedHat souffre de nombreuses limitations que Mandrake a dépassées, en créant les outils urpm* (User RPM - à partir de Mandrake 7.0) :&lt;br /&gt;
&lt;br /&gt;
* résolution automatique et installation/désistallation automatique des paquetages dépendants (rpm indique seulement le nom de paquetages manquants)&lt;br /&gt;
* urpm connaît l&#039;ensemble des paquetages installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org  Penguin Liberation Front] ...)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0)&lt;br /&gt;
* urpm permet d&#039;installer des paquetages en donnant seulement un nom incomplet (exemple : &amp;lt;code&amp;gt;urpmi koffice&amp;lt;/code&amp;gt; pour chercher et installer Koffice, &amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (&amp;lt;code&amp;gt;man urpmi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt;, etc.) afin d&#039;en apprendre plus.&lt;br /&gt;
&lt;br /&gt;
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le Gestionnaire de Programmes (Software Manager), qui est une façade ou frontend aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.&lt;br /&gt;
&lt;br /&gt;
=== Configurer urpm ===&lt;br /&gt;
&lt;br /&gt;
==== Ajouter / mettre à jour une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Après avoir installé votre distribution, les CD ont été créés dans la base de données de urpm en tant que source de paquetages.&amp;lt;br /&amp;gt; Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire &amp;quot;incoming/rpms&amp;quot; dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l&#039;ajouter à votre base de données urpm par la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquetages.&lt;br /&gt;
&lt;br /&gt;
Par la suite, vous pourrez mettre à jour cette source par :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update mes_rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, pour ajouter une source ftp de paquetages, on donne l&#039;URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org  Penguin Liberation Front] et une Mandrake 9.0 :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et de la même façon, pour mettre à jour la source de temps en temps :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.update plf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ajouter des sources distantes ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Ajout de Jean-Thomas MUYL&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous possédez une connexion à haut débit (ce n&#039;est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;contrib&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; situées sur internet.&lt;br /&gt;
&lt;br /&gt;
L&#039;outil en ligne à [http://plf.zarb.org/~nanardon/index.php cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un &amp;lt;code&amp;gt;urpmi.removemedia -a&amp;lt;/code&amp;gt; pour ne plus utiliser les cdroms comme sources, et ainsi être plus à jour !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt; : le fichier de configuration de urpm est &amp;lt;code&amp;gt;/etc/urpmi/urpmi.cfg&amp;lt;/code&amp;gt; et les bases de données dans &amp;lt;code&amp;gt;/var/lib/urpmi&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Supprimer une source de paquetages ====&lt;br /&gt;
&lt;br /&gt;
Pour supprimer la source mes_rpm, taper :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi.removemedia mes_rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installer avec urpmi ===&lt;br /&gt;
&lt;br /&gt;
==== Installer depuis les sources urpm&amp;lt;br /&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Pour installer un logiciel avec urpm, rien de pkus simple. Vous tapez simplement la commande &#039;&#039;&#039;urpmi&#039;&#039;&#039; suivie d&#039;une partie du nom du logiciel. Exemple :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors chercher la version la plus récente du package correspondant, regarder s&#039;il doit installer des packages dépendants (et vous en demander confirmation), et installer l&#039;ensemble des packages.&lt;br /&gt;
&lt;br /&gt;
Dans le cas ou l&#039;argument donné à urpmi est ambigü, urpmi renvoie le nom des packages correspondants ; il ne vous reste plus qu&#039;à choisir dans la liste et relancer urpmi avec le bon nom de package.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez installer le package qui fournit une librairie (par exemple), utilisez le modifieur -p :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  # urpmi -p libe2p.so.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
urpmi va alors rechercher quel paquetage fournit &amp;lt;code&amp;gt;libe2p.so.2&amp;lt;/code&amp;gt; et l&#039;installer (ici libext2fs2).&lt;br /&gt;
&lt;br /&gt;
==== Installer directement un ou plusieurs fichiers rpm ====&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi mon_paquetage-version.i586.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le package sera mis à jour de la même manière que rpm -U l&#039;aurait fait.&lt;br /&gt;
&lt;br /&gt;
urpmi peut installer plusieurs paquetages d&#039;un coup : par exemple, pour installer la dernière version de KDE que j&#039;ai téléchargée, je me mets dans le répertoire où j&#039;ai mis les rpm, et je tape :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmi *.rpm&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour installer (et non mettre à jour un package, par exemple pour ajouter un nouveau noyau en parallèle de l&#039;ancien, ou bien une nouvelle librairie qui doit coexister avec l&#039;ancienne), il faut utiliser l&#039;option -i : urpmi -i&lt;br /&gt;
&lt;br /&gt;
=== Désinstaller avec urpme ===&lt;br /&gt;
&lt;br /&gt;
Pour désinstaller un paquetage, il faut utiliser &#039;&#039;&#039;urpme&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpme mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
désinstallera mplayer. S&#039;il y a des paquetages qui en dépendent, urpme demandera s&#039;il doit les désinstaller également. À utiliser avec précaution ;-)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rechercher avec urpmf (et urpmq) ===&lt;br /&gt;
&lt;br /&gt;
L&#039;outil de choix pour faire de recherches dans les packages rpm et &#039;&#039;&#039; urpmf&#039;&#039;&#039;. Cela permet de rechercher non seulement dans les paquetages installés comme avec rpm -q, mais aussi des paquetages installables !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;urpmf toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
renverra la liste de tous les paquetages qui contiennent le fichier toto.&lt;br /&gt;
&lt;br /&gt;
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquetages.&lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages du groupe &amp;quot;Games&amp;quot;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmf --group Games&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Taille du paquetage &amp;quot;pingus&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --size pingus&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;pingus:size:1102629&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; Recherche du mot &amp;quot;pingus&amp;quot; dans les résumés de paquets&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;urpmf --summary pingus&amp;lt;br /&amp;gt; pingus:summary:Pingus - A free Lemmings clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir &amp;lt;code&amp;gt;man urpmf&amp;lt;/code&amp;gt; pour de plus amples informations.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La commande &#039;&#039;&#039;urpmq&#039;&#039;&#039; vous permet d&#039;autres types de requêtes :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liste des paquetages dont le nom contient la chaîne &amp;quot;toto&amp;quot; :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Sur quelle source se trouve le paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq --archive toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Quels paquetages dépendent du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -d toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
 Nom complet du fichier rpm du paquetage toto :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmq -r toto&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
Résumé d&#039;une ligne d&#039;un paquet ( summary + nom + cersion ) :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; urpmq --summary toto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi &amp;lt;code&amp;gt;man urpmq&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mettre à jour le système ===&lt;br /&gt;
&lt;br /&gt;
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que Mandrake publie régulièrement.&amp;lt;br /&amp;gt; Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).&amp;lt;br /&amp;gt; Si la source de mise à jour s&#039;appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi.update maj_secu&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; puis :&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;urpmi --auto-select&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; urpm va alors lister les paquetages mis à jour et vous demander si vous souhaitez les installer (pour qu&#039;il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l&#039;option &amp;lt;code&amp;gt;--auto&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquetages, il suffit d&#039;ajouter leur nom dans le fichier &amp;lt;code&amp;gt;/etc/urpmi/skip.list&amp;lt;/code&amp;gt; .&amp;lt;br /&amp;gt; Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;kernel&amp;lt;br /&amp;gt; glibc&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusion sur urpm ===&lt;br /&gt;
&lt;br /&gt;
Les commandes urpm sont encore trop peu connues, et la maintenance de votre Mandrake sera bien plus aisée avec leur utilisation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== apt-get sur Redhat ==&lt;br /&gt;
&lt;br /&gt;
Redhat dispose également d&#039;outils pour faciliter la gestion des packages et la mise à jour du système. J&#039;ai testé &amp;lt;code&amp;gt;rpm-get&amp;lt;/code&amp;gt; que je n&#039;ai pas trouvé satisfaisant. Par-contre le portage de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; sur redhat est véritablement une réussite. C&#039;est donc cet utilitaire dont je parlerai concernant Redhat (pour l&#039;article je travaille sur une Redhat 7.3)&lt;br /&gt;
&lt;br /&gt;
Cette version de apt-get pour RPM, même si elle est critiquée parce qu&#039;elle utilise &amp;lt;code&amp;gt;RPM&amp;lt;/code&amp;gt; (contre &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; pour Debian), est extrêmement efficace&lt;br /&gt;
&lt;br /&gt;
Les principaux apports de &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des dépendances pour l&#039;installation et la désinstallation de packages&lt;br /&gt;
* Mise à jour complète de la distribution avec les dernières versions des packages existantes&lt;br /&gt;
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet&lt;br /&gt;
&lt;br /&gt;
=== Installation de apt-get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Les packages à installer&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Vous devez installer au moins le package [http://apt.freshrpms.net/  apt-get] . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, [http://ftp.freshrpms.net/pub/freshrpms/valhalla/synaptic/synaptic-0.25-fr0.1rh73.i386.rpm synaptic]. &amp;lt;br /&amp;gt;[[Image:rpm-rpm_synaptic.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;La configuration&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
Elle est très simple. Une fois les packages installés il vous suffit de taper &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt;. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;/etc/apt/apt.conf&amp;lt;/code&amp;gt; : fichier de configuration de apt-get&lt;br /&gt;
* &amp;lt;code&amp;gt;/var/cache/apt/archives&amp;lt;/code&amp;gt; : contient les packages qui ont été downloadés pour être installés.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commande supplémentaire&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;apt-cdrom&amp;lt;/code&amp;gt; vous permet de rajouter directement au fichier &amp;lt;code&amp;gt;sources.list&amp;lt;/code&amp;gt; des dépôts sur CD-ROM. &amp;lt;br /&amp;gt;La syntaxe de la commande : &amp;lt;code&amp;gt;apt-cdrom --cdrom &amp;lt;point-de-montage&amp;gt; add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple : &#039;&#039;&#039;&amp;lt;code&amp;gt;apt-cdrom --cdrom /mnt/cdrom add&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.&lt;br /&gt;
&lt;br /&gt;
=== Installer / Désinstaller / Mettre à jour des packages ===&lt;br /&gt;
&lt;br /&gt;
==== Installer / Mettre à jour un ou plusieurs packages ====&lt;br /&gt;
&lt;br /&gt;
* Pour installer un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install package1 [package2...]&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get install mplayer&amp;lt;/code&amp;gt; installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Vous pouvez également choisir d&#039;installer des sources. Pour ce faire, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; &amp;lt;code&amp;gt;apt-get source galeon&amp;lt;/code&amp;gt; vous permet de récupérer le RPM source de galeon.&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; avec l&#039;argument &amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt;. Il est plus sûr au préalable d&#039;exécuter la commande &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pour mettre à jour la base de données locale et s&#039;assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get upgrade package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get upgrade mplayer&amp;lt;/code&amp;gt; mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.&lt;br /&gt;
&lt;br /&gt;
==== Désinstaller avec apt-get ====&lt;br /&gt;
&lt;br /&gt;
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d&#039;utiliser la commande &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; suivie de l&#039;argument &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : apt-get remove package1 [package2...]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-get remove mplayer&amp;lt;/code&amp;gt; supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.&lt;br /&gt;
&lt;br /&gt;
==== Mettre à jour le système ====&lt;br /&gt;
&lt;br /&gt;
Enfin &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un &amp;lt;code&amp;gt;apt-get update&amp;lt;/code&amp;gt; pou s&#039;assurer de disposer des derniers packages. Puis il suffit de lancer la commande &amp;lt;code&amp;gt;apt-get dist-upgrade&amp;lt;/code&amp;gt;. Et le tour est joué ;)&lt;br /&gt;
&lt;br /&gt;
Vous disposez également de la commande &amp;lt;code&amp;gt;apt-get check&amp;lt;/code&amp;gt;. Elle vous permet de vérifier que vous n&#039;avez pas de dépendances non résolues sur votre système.&lt;br /&gt;
&lt;br /&gt;
==== Rechercher des informations sur un package installé ====&lt;br /&gt;
&lt;br /&gt;
Enfin la commande &amp;lt;code&amp;gt;apt-cache&amp;lt;/code&amp;gt; vous permet d&#039;obtenir un certain nombre d&#039;informations sur les packages installés :&lt;br /&gt;
&lt;br /&gt;
* Pour vérifier qu&#039;un package est bien installé, il suffit d&#039;utiliser l&#039;argument &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache search chaine_de_caractères&amp;lt;/code&amp;gt; (la chaîne de caractères peut contenir des expressions régulières).&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez vérifier que mplayer est bien installé :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache search mplayer&amp;lt;br /&amp;gt; mplayer - MPlayer, the Movie Player for Linux.&amp;lt;br /&amp;gt; mplayer-skins - A collection of skins for MPlayer.&amp;lt;br /&amp;gt; transcode - A Linux video stream processing utility.&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* Pour vérifier les dépendances d&#039;un package, on utilisera l&#039;argument &amp;lt;code&amp;gt;depends&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; : &amp;lt;code&amp;gt;apt-cache depends chaine_de_caractères&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; vous voulez connaitre les dépendances de mplayer :&amp;lt;br /&amp;gt;&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;gt;apt-cache depends mplayer&amp;lt;br /&amp;gt; mplayer&amp;lt;br /&amp;gt; Depends: libdvdread&amp;lt;br /&amp;gt; Depends: libdvdcss&amp;lt;br /&amp;gt; libdvdcss2&amp;lt;br /&amp;gt; Depends: gtk+&amp;lt;br /&amp;gt; Depends: SDL&amp;lt;br /&amp;gt; Depends: divx4linux&amp;lt;br /&amp;gt; Depends: lame&amp;lt;br /&amp;gt; Depends: libvorbis&amp;lt;br /&amp;gt; Depends: lirc&amp;lt;br /&amp;gt; Depends: libdv&amp;lt;br /&amp;gt; Depends: aalib&amp;lt;br /&amp;gt; Depends: arts &amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot, Anne-Laure Nicolas le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot, Anne-Laure Nicolas&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=JPackage&amp;diff=4178</id>
		<title>JPackage</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=JPackage&amp;diff=4178"/>
		<updated>2005-10-02T22:13:44Z</updated>

		<summary type="html">&lt;p&gt;Misc : remplacement de mandrake par mandriva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Développer sous Linux]]&lt;br /&gt;
= Utilisation de Java grâce à Jpackage.org =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Utilisation de Java grâce à Jpackage.org&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:misc@zarb.org Mickael]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installez proprement Java sur une distribution à base de RPM&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le Java, &#039;&#039;saimalsaiproprioetsaipalibre&#039;&#039;, mais souvent on a besoin de l&#039;utiliser, pour tout un tas de bonnes raisons. De plus, il existe de très bons logiciels libres écrits en Java, et il fait partie des langages les plus utilisés par [http://apache.org l&#039;ASF ( Apache Software Fundation]. Malheureusement, il y a rarement des paquets de logiciels Java, car il nécessite une JVM, une machine virtuelle Java, une espèce d&#039;interpréteur de code assembleur d&#039;un processeur qui n&#039;existe pas ( voir [http://en.wikipedia.org/wiki/Java_programming_language Wikipedia] pour une description plus détaillée et sans doute plus claire ).&lt;br /&gt;
&lt;br /&gt;
Et c&#039;est précisément la le problème, la plupart des JVMs ne sont pas libres, donc les distributions ne les incluent pas. Quand aux JVMs libres, elles ne sont pas assez performantes, aussi bien au niveau de la rapidité d&#039;éxecution que du support du language. Quand un distributeur inclue un paquet de JVM, il met peu de programmes Java qui pourraient en bénéficier, et c&#039;est dommage.&lt;br /&gt;
&lt;br /&gt;
C&#039;est la qu&#039;intervient le projet [http://jpackage.org Jpackage]. Il s&#039;agit d&#039;un projet de distribution de RPMs de logiciels Java pour plusieurs distributions. Grâce à eux, installer Tomcat ou Jedit revient à simplement taper &amp;lt;code&amp;gt;urpmi jedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;yum install tomcat4&amp;lt;/code&amp;gt;. Ils proposent des paquets pour [http://www.mandrakelinux/ Mandrakelinux], [http://www.redhat.com/ Red Hat], [http://fedora.redhat.com Fedora], et d&#039;autres distributions ( mais non testées ). Une fois le projet ajouté parmi vos sources de RPMs, vous pouvez donc accéder à [http://eclipse.org eclipse], à [http://ant.apache.org ant], et autres logiciels Java habituellement plus complexes à installer.&lt;br /&gt;
&lt;br /&gt;
Toutefois, il reste le problème de la JVM. Malgré les efforts du projet et les tentatives de prise de contacts, Sun ( et les autres comme IBM, etc ) refusent de laisser des packageurs externes refaire leurs RPMs. Une solution a du être élaborée par les membres de Jpackage, que je vais expliquer dans ce document.&lt;br /&gt;
&lt;br /&gt;
La problématique de base est la suivante : &#039;&#039;&amp;quot;Comment garder la cohérence du système de paquets lors qu&#039;on veut utiliser des logiciels dans des paquets incorrects, non normalisés, ou inexistants ?&amp;quot;&#039;&#039;. La réponse trouvée est de faire ou refaire les paquets. Cela permet de garantir une intégration correcte avec la distribution, d&#039;être sur qu&#039;on les retire sans problème, et d&#039;être sur que tout ne seras pas cassé le jour ou le distributeur change tout, comme Sun semble le faire si souvent. Vous trouverez plus d&#039;explications dans la [http://jpackage.org/faq.php FAQ du projet].&lt;br /&gt;
&lt;br /&gt;
Ce document a été fait en testant sur une distribution Mandrakelinux 10.0, mais devrait être suffisamment générique pour d&#039;autres distributions. N&#039;hésitez à me faire parvenir vos contributions.&lt;br /&gt;
&lt;br /&gt;
== Mise en oeuvre général ==&lt;br /&gt;
&lt;br /&gt;
Vous l&#039;aurez compris, nous allons donc refaire les RPMs du JDK ( Jave Developer Kit, une JVM + un compilateur Java ) afin de pouvoir utiliser jpackage. Le déroulement est le suivant :&lt;br /&gt;
&lt;br /&gt;
* Préparation du home en vue de recompiler le RPM&lt;br /&gt;
* Récupération des archives et autres RPMs nécessaires&lt;br /&gt;
* Recompilation&lt;br /&gt;
* Ajout de jpackage comme média urpmi local&lt;br /&gt;
&lt;br /&gt;
Le but à la fin étant de pouvoir utiliser urpmi ( ou yum, ou apt ) pour installer sans problème un logiciel comme [http://www.jext.org/ jext].&lt;br /&gt;
&lt;br /&gt;
== Préparation du home pour la recompilation de RPM ==&lt;br /&gt;
&lt;br /&gt;
Sans rentrer dans les détails, il existe deux types de RPM. Les RPM binaires, qu&#039;on voit souvent, qui contiennent les logiciels compilés et prêts à l&#039;emploi, et les RPM sources, qui sont utilisés pour faire les RPMs binaires. Un fichier RPM source, ou src.RPM est un RPM qui contient les sources d&#039;un programme, plus des patches, d&#039;autres fichiers, et un fichier de spécification RPM, appelé spec ( car son extension est .spec ). La moitié du travail pour faire un RPM consiste à écrire ce fichier, l&#039;autre étant de faire marcher le spec comme il faut, et la troisième moitié étant de le tester, de coller aux règles de la distribution et de faire le support utilisateur et correction de bugs.&lt;br /&gt;
&lt;br /&gt;
Pour faire un RPM, il existe quelques documentations ( [http://www.rpm.org/RPM-HOWTO/ RPM.org], [http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo qa.mandriva.com], [http://www.linuxfrench.net/gnu_linux/distributions/mandrake/comment_faire_un_RPM_simplement..._article1327.html  linuxfrench.net] ), mais pour le cas qui nous intéresse ( une &amp;quot;simple&amp;quot; recompilation ), seul la partie préparation nous importe.&lt;br /&gt;
&lt;br /&gt;
Pour résumer ces documents, il faut créer une arborescence spéciale destinée aux opérations de RPM dans votre répertoire personel et dire à RPM d&#039;utiliser ces dossiers :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/rpm/{RPMS/{i586,noarch},SRPMS,SPECS,tmp,BUILD,SOURCES}&lt;br /&gt;
 $ cat &amp;lt;&amp;lt; EOF &amp;gt; ~/.rpmmacros&lt;br /&gt;
  %_topdir               $HOME/rpm&lt;br /&gt;
  %_tmppath              /tmp&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La dernière chose à faire, c&#039;est d&#039;installer le paquet rpm-build, afin d&#039;avoir les fichiers pour recompiler un RPM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi rpm-build&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupération des divers archives et SRPM ==&lt;br /&gt;
&lt;br /&gt;
Première étape, le fichier RPM source du JDK de Sun. Afin de montrer que c&#039;est pas un fichier source comme les autres, il est appelé &amp;lt;code&amp;gt;java-1.4.2-sun-1.4.2.nosrc.rpm&amp;lt;/code&amp;gt;. Il faut prendre le fichier source du paquet [http://jpackage.org/rpm.php?id=2879 java-1.4.2-sun-1.4.2].&lt;br /&gt;
&lt;br /&gt;
En général, le SRPM contient les sources du paquet, mais le noeud du problème est justement que seul Sun peut les distribuer. Il faut donc les récupérer à part, sur le [http://java.sun.com/j2se/1.4.2/ site de sun] ( obtenu du champ Url du paquet ). Au moment de la rédaction de cette article, le chemin est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Choisir &amp;quot;Download&amp;quot; , prendre &amp;quot;J2SE v 1.4.2_05 SDK &amp;quot;, accepter le formulaire après l&#039;avoir lu, et enfin, choisir &amp;quot;Linux Platform&amp;quot;, &amp;quot;self-extracting file&amp;quot; ( surtout pas &amp;quot;RPM in self-extracting file&amp;quot; mais bien &amp;quot;self-extracting file&amp;quot; ).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier téléchargé de 30 Mo doit être déposé dans &amp;lt;code&amp;gt;~/rpm/SOURCES/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
La dernière étape, c&#039;est de d&#039;installer le paquet &amp;lt;code&amp;gt;jpackage-utils&amp;lt;/code&amp;gt;. Soit vous récupérez le paquet à la main, soit vous passez par urpmi. Pour l&#039;installation à la main, le paquet est sur le [http://jpackage.org/rpm.php?id=2798 site de jpackage], ou sur les miroirs Mandrakelinux. Pour l&#039;installer, &amp;lt;code&amp;gt; urpmi /le_chemin_vers_le_RPM&amp;lt;/code&amp;gt; devrait suffire.&lt;br /&gt;
&lt;br /&gt;
Pour l&#039;installation via urpmi, [http://easyurpmi.zarb.org/ easy urpmi] doit avoir tout ce qu&#039;il faut, il suffit d&#039;ajouter &#039;jpackage&#039;, de la même façon que toutes les autres sources.&lt;br /&gt;
&lt;br /&gt;
== Recompilation du RPM ==&lt;br /&gt;
&lt;br /&gt;
Si tout va bien, vous devez être en mesure de recompiler le RPM. Vérifier que le fichier &amp;lt;code&amp;gt; j2sdk-1_4_2_04-linux-i586.bin&amp;lt;/code&amp;gt; est dans &amp;lt;code&amp;gt;rpm/SOURCES&amp;lt;/code&amp;gt;, et lancez la recompilation, avec la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;$ rpm --rebuild java-1.4.2-sun-1.4.2.05-3jpp.nosrc.rpm &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le RPM va se charger d&#039;accepter la licence que vous avez déjà acceptée au moment du téléchargement, et de répondre aux questions de l&#039;installeur de Sun. À la fin, vous devriez voir ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/java-1.4.2-sun-1.4.2.04-3jpp-buildroot&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/SRPMS/java-1.4.2-sun-1.4.2.04-3jpp.nosrc.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-devel-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-src-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-demo-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-plugin-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-fonts-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-alsa-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-jdbc-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Executing(%clean): /bin/sh -e /tmp/rpm-tmp.6627&amp;lt;br /&amp;gt; + umask 022&amp;lt;br /&amp;gt; + cd /home/users/misc/rpm/BUILD&amp;lt;br /&amp;gt; + cd j2sdk1.4.2_04&amp;lt;br /&amp;gt; + rm -rf /tmp/java-1.4.2-sun-1.4.2.04-3jpp-buildroot&amp;lt;br /&amp;gt; + exit 0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous avez donc , dans rpm/RPMS/i586/ les RPMs de la JVM. Pour pouvoir exécuter des logiciels en Java, il vous faut java-1.4.2-sun. Le RPM java-1.4.2-sun-devel contient le compilateur et ce qu&#039;il faut pour commencer à développer en Java. Enfin, java-1.4.2-sun-plugin est un plugin Java pour mozilla et konqueror.&lt;br /&gt;
&lt;br /&gt;
== Ajout de jpackage, section nonfree, pour Mandrivalinux ==&lt;br /&gt;
&lt;br /&gt;
Muni de vos RPMs, il va falloir les mettre quelque part pour les utiliser. Pour cela, le plus facile est d&#039;ajouter une source local pour votre gestionnaire de paquet. Copiez les RPMs dans le dossier de votre choix, on va dire &amp;lt;code&amp;gt; /var/local/urpmi/jpackage/&amp;lt;/code&amp;gt;. Puis, il faut génerer les indexes à l&#039;aide du programme genhdlist du paquet rpmtools. Enfin, vous devez ajouter la source à urpmi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# export DEST=/var/local/urpmi/jpackage/ &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # mkdir -p $DEST &amp;lt;br /&amp;gt; # cp -R ~/rpm/RPMS/i586/java* $DEST &amp;lt;br /&amp;gt; # ( cd $DEST; genhdlist )&amp;lt;br /&amp;gt; # urpmi.addmedia jpackage_local file://$DEST with ./hdlist.cz &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et voila, maintenant, &amp;lt;code&amp;gt; urpmi java-1.4.2&amp;lt;/code&amp;gt; vous installera la JVM de Sun, et vous pouvez installer les RPMs de jpackage. Si vous préférez une autre JVM ou une autre version, vous pouvez procédez de la même manière. Les paquets sont normalement installables cote à cote en parallèle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Mickael Scherer le 25/07/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/07/2004, Mickael Scherer&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=JPackage&amp;diff=4177</id>
		<title>JPackage</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=JPackage&amp;diff=4177"/>
		<updated>2005-10-02T22:11:50Z</updated>

		<summary type="html">&lt;p&gt;Misc : S/mandrake/mandriva/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Développer sous Linux]]&lt;br /&gt;
= Utilisation de Java grâce à Jpackage.org =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Utilisation de Java grâce à Jpackage.org&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:misc@zarb.org Mickael]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Installez proprement Java sur une distribution à base de RPM&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le Java, &#039;&#039;saimalsaiproprioetsaipalibre&#039;&#039;, mais souvent on a besoin de l&#039;utiliser, pour tout un tas de bonnes raisons. De plus, il existe de très bons logiciels libres écrits en Java, et il fait partie des langages les plus utilisés par [http://apache.org l&#039;ASF ( Apache Software Fundation]. Malheureusement, il y a rarement des paquets de logiciels Java, car il nécessite une JVM, une machine virtuelle Java, une espèce d&#039;interpréteur de code assembleur d&#039;un processeur qui n&#039;existe pas ( voir [http://en.wikipedia.org/wiki/Java_programming_language Wikipedia] pour une description plus détaillée et sans doute plus claire ).&lt;br /&gt;
&lt;br /&gt;
Et c&#039;est précisément la le problème, la plupart des JVMs ne sont pas libres, donc les distributions ne les incluent pas. Quand aux JVMs libres, elles ne sont pas assez performantes, aussi bien au niveau de la rapidité d&#039;éxecution que du support du language. Quand un distributeur inclue un paquet de JVM, il met peu de programmes Java qui pourraient en bénéficier, et c&#039;est dommage.&lt;br /&gt;
&lt;br /&gt;
C&#039;est la qu&#039;intervient le projet [http://jpackage.org Jpackage]. Il s&#039;agit d&#039;un projet de distribution de RPMs de logiciels Java pour plusieurs distributions. Grâce à eux, installer Tomcat ou Jedit revient à simplement taper &amp;lt;code&amp;gt;urpmi jedit&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;yum install tomcat4&amp;lt;/code&amp;gt;. Ils proposent des paquets pour [http://www.mandrakelinux/ Mandrakelinux], [http://www.redhat.com/ Red Hat], [http://fedora.redhat.com Fedora], et d&#039;autres distributions ( mais non testées ). Une fois le projet ajouté parmi vos sources de RPMs, vous pouvez donc accéder à [http://eclipse.org eclipse], à [http://ant.apache.org ant], et autres logiciels Java habituellement plus complexes à installer.&lt;br /&gt;
&lt;br /&gt;
Toutefois, il reste le problème de la JVM. Malgré les efforts du projet et les tentatives de prise de contacts, Sun ( et les autres comme IBM, etc ) refusent de laisser des packageurs externes refaire leurs RPMs. Une solution a du être élaborée par les membres de Jpackage, que je vais expliquer dans ce document.&lt;br /&gt;
&lt;br /&gt;
La problématique de base est la suivante : &#039;&#039;&amp;quot;Comment garder la cohérence du système de paquets lors qu&#039;on veut utiliser des logiciels dans des paquets incorrects, non normalisés, ou inexistants ?&amp;quot;&#039;&#039;. La réponse trouvée est de faire ou refaire les paquets. Cela permet de garantir une intégration correcte avec la distribution, d&#039;être sur qu&#039;on les retire sans problème, et d&#039;être sur que tout ne seras pas cassé le jour ou le distributeur change tout, comme Sun semble le faire si souvent. Vous trouverez plus d&#039;explications dans la [http://jpackage.org/faq.php FAQ du projet].&lt;br /&gt;
&lt;br /&gt;
Ce document a été fait en testant sur une distribution Mandrakelinux 10.0, mais devrait être suffisamment générique pour d&#039;autres distributions. N&#039;hésitez à me faire parvenir vos contributions.&lt;br /&gt;
&lt;br /&gt;
== Mise en oeuvre général ==&lt;br /&gt;
&lt;br /&gt;
Vous l&#039;aurez compris, nous allons donc refaire les RPMs du JDK ( Jave Developer Kit, une JVM + un compilateur Java ) afin de pouvoir utiliser jpackage. Le déroulement est le suivant :&lt;br /&gt;
&lt;br /&gt;
* Préparation du home en vue de recompiler le RPM&lt;br /&gt;
* Récupération des archives et autres RPMs nécessaires&lt;br /&gt;
* Recompilation&lt;br /&gt;
* Ajout de jpackage comme média urpmi local&lt;br /&gt;
&lt;br /&gt;
Le but à la fin étant de pouvoir utiliser urpmi ( ou yum, ou apt ) pour installer sans problème un logiciel comme [http://www.jext.org/ jext].&lt;br /&gt;
&lt;br /&gt;
== Préparation du home pour la recompilation de RPM ==&lt;br /&gt;
&lt;br /&gt;
Sans rentrer dans les détails, il existe deux types de RPM. Les RPM binaires, qu&#039;on voit souvent, qui contiennent les logiciels compilés et prêts à l&#039;emploi, et les RPM sources, qui sont utilisés pour faire les RPMs binaires. Un fichier RPM source, ou src.RPM est un RPM qui contient les sources d&#039;un programme, plus des patches, d&#039;autres fichiers, et un fichier de spécification RPM, appelé spec ( car son extension est .spec ). La moitié du travail pour faire un RPM consiste à écrire ce fichier, l&#039;autre étant de faire marcher le spec comme il faut, et la troisième moitié étant de le tester, de coller aux règles de la distribution et de faire le support utilisateur et correction de bugs.&lt;br /&gt;
&lt;br /&gt;
Pour faire un RPM, il existe quelques documentations ( [http://www.rpm.org/RPM-HOWTO/ RPM.org], [http://qa.mandrakesoft.com/twiki/bin/view/Main/RpmHowTo qa.mandrakesoft.com], [http://www.linuxfrench.net/gnu_linux/distributions/mandrake/comment_faire_un_RPM_simplement..._article1327.html  linuxfrench.net] ), mais pour le cas qui nous intéresse ( une &amp;quot;simple&amp;quot; recompilation ), seul la partie préparation nous importe.&lt;br /&gt;
&lt;br /&gt;
Pour résumer ces documents, il faut créer une arborescence spéciale destinée aux opérations de RPM dans votre répertoire personel et dire à RPM d&#039;utiliser ces dossiers :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ mkdir -p ~/rpm/{RPMS/{i586,noarch},SRPMS,SPECS,tmp,BUILD,SOURCES}&lt;br /&gt;
 $ cat &amp;lt;&amp;lt; EOF &amp;gt; ~/.rpmmacros&lt;br /&gt;
  %_topdir               $HOME/rpm&lt;br /&gt;
  %_tmppath              /tmp&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La dernière chose à faire, c&#039;est d&#039;installer le paquet rpm-build, afin d&#039;avoir les fichiers pour recompiler un RPM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# urpmi rpm-build&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Récupération des divers archives et SRPM ==&lt;br /&gt;
&lt;br /&gt;
Première étape, le fichier RPM source du JDK de Sun. Afin de montrer que c&#039;est pas un fichier source comme les autres, il est appelé &amp;lt;code&amp;gt;java-1.4.2-sun-1.4.2.nosrc.rpm&amp;lt;/code&amp;gt;. Il faut prendre le fichier source du paquet [http://jpackage.org/rpm.php?id=2879 java-1.4.2-sun-1.4.2].&lt;br /&gt;
&lt;br /&gt;
En général, le SRPM contient les sources du paquet, mais le noeud du problème est justement que seul Sun peut les distribuer. Il faut donc les récupérer à part, sur le [http://java.sun.com/j2se/1.4.2/ site de sun] ( obtenu du champ Url du paquet ). Au moment de la rédaction de cette article, le chemin est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;Choisir &amp;quot;Download&amp;quot; , prendre &amp;quot;J2SE v 1.4.2_05 SDK &amp;quot;, accepter le formulaire après l&#039;avoir lu, et enfin, choisir &amp;quot;Linux Platform&amp;quot;, &amp;quot;self-extracting file&amp;quot; ( surtout pas &amp;quot;RPM in self-extracting file&amp;quot; mais bien &amp;quot;self-extracting file&amp;quot; ).&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le fichier téléchargé de 30 Mo doit être déposé dans &amp;lt;code&amp;gt;~/rpm/SOURCES/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
La dernière étape, c&#039;est de d&#039;installer le paquet &amp;lt;code&amp;gt;jpackage-utils&amp;lt;/code&amp;gt;. Soit vous récupérez le paquet à la main, soit vous passez par urpmi. Pour l&#039;installation à la main, le paquet est sur le [http://jpackage.org/rpm.php?id=2798 site de jpackage], ou sur les miroirs Mandrakelinux. Pour l&#039;installer, &amp;lt;code&amp;gt; urpmi /le_chemin_vers_le_RPM&amp;lt;/code&amp;gt; devrait suffire.&lt;br /&gt;
&lt;br /&gt;
Pour l&#039;installation via urpmi, [http://easyurpmi.zarb.org/ easy urpmi] doit avoir tout ce qu&#039;il faut, il suffit d&#039;ajouter &#039;jpackage&#039;, de la même façon que toutes les autres sources.&lt;br /&gt;
&lt;br /&gt;
== Recompilation du RPM ==&lt;br /&gt;
&lt;br /&gt;
Si tout va bien, vous devez être en mesure de recompiler le RPM. Vérifier que le fichier &amp;lt;code&amp;gt; j2sdk-1_4_2_04-linux-i586.bin&amp;lt;/code&amp;gt; est dans &amp;lt;code&amp;gt;rpm/SOURCES&amp;lt;/code&amp;gt;, et lancez la recompilation, avec la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;$ rpm --rebuild java-1.4.2-sun-1.4.2.05-3jpp.nosrc.rpm &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le RPM va se charger d&#039;accepter la licence que vous avez déjà acceptée au moment du téléchargement, et de répondre aux questions de l&#039;installeur de Sun. À la fin, vous devriez voir ça :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/java-1.4.2-sun-1.4.2.04-3jpp-buildroot&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/SRPMS/java-1.4.2-sun-1.4.2.04-3jpp.nosrc.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-devel-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-src-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-demo-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-plugin-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-fonts-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-alsa-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Wrote: /home/users/misc/rpm/RPMS/i586/java-1.4.2-sun-jdbc-1.4.2.04-3jpp.i586.rpm&amp;lt;br /&amp;gt; Executing(%clean): /bin/sh -e /tmp/rpm-tmp.6627&amp;lt;br /&amp;gt; + umask 022&amp;lt;br /&amp;gt; + cd /home/users/misc/rpm/BUILD&amp;lt;br /&amp;gt; + cd j2sdk1.4.2_04&amp;lt;br /&amp;gt; + rm -rf /tmp/java-1.4.2-sun-1.4.2.04-3jpp-buildroot&amp;lt;br /&amp;gt; + exit 0&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous avez donc , dans rpm/RPMS/i586/ les RPMs de la JVM. Pour pouvoir exécuter des logiciels en Java, il vous faut java-1.4.2-sun. Le RPM java-1.4.2-sun-devel contient le compilateur et ce qu&#039;il faut pour commencer à développer en Java. Enfin, java-1.4.2-sun-plugin est un plugin Java pour mozilla et konqueror.&lt;br /&gt;
&lt;br /&gt;
== Ajout de jpackage, section nonfree, pour Mandrivalinux ==&lt;br /&gt;
&lt;br /&gt;
Muni de vos RPMs, il va falloir les mettre quelque part pour les utiliser. Pour cela, le plus facile est d&#039;ajouter une source local pour votre gestionnaire de paquet. Copiez les RPMs dans le dossier de votre choix, on va dire &amp;lt;code&amp;gt; /var/local/urpmi/jpackage/&amp;lt;/code&amp;gt;. Puis, il faut génerer les indexes à l&#039;aide du programme genhdlist du paquet rpmtools. Enfin, vous devez ajouter la source à urpmi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;# export DEST=/var/local/urpmi/jpackage/ &amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt; # mkdir -p $DEST &amp;lt;br /&amp;gt; # cp -R ~/rpm/RPMS/i586/java* $DEST &amp;lt;br /&amp;gt; # ( cd $DEST; genhdlist )&amp;lt;br /&amp;gt; # urpmi.addmedia jpackage_local file://$DEST with ./hdlist.cz &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et voila, maintenant, &amp;lt;code&amp;gt; urpmi java-1.4.2&amp;lt;/code&amp;gt; vous installera la JVM de Sun, et vous pouvez installer les RPMs de jpackage. Si vous préférez une autre JVM ou une autre version, vous pouvez procédez de la même manière. Les paquets sont normalement installables cote à cote en parallèle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Mickael Scherer le 25/07/2004.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/07/2004, Mickael Scherer&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Misc</name></author>
	</entry>
</feed>