[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Apt howto



Bonsoir,

Je viens de finir la traduction du Apt-howto, je la poste donc pour relecture

Merci d'avance.

-- 
Comment se fait-il que la mathématique, qui est un produit de la pensée humaine
et indépendante de toute expérience, s'adapte d'une si admirable manière aux
objets de la réalité ?
		-- Einstein, Albert
<!doctype debiandoc system>
<debiandoc>
<book>

<title>APT HOWTO</title>

<author>
<name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
</author>
<author>
  Traduction de Julien Louis
  <email>leonptitlouis@ifrance.com</email>
</author>
<version>1.7.7 - mars 2002</version>
<!-- Original version : 1.24 -->

<abstract>
Ce document essaie de fournir à l'utilisateur une bonne compréhension du
fonctionnement de l'utilitaire Debian de gestion des paquets, APT. Son but est
de rendre la vie plus facile aux nouveau utilisateurs Debian et aider ceux qui
veulent approfondir leur compréhension de l'administration de ce système. Il a
été créer pour le projet Debian afin d'aider à améliorer les ressources
disponibles pour l'utilisateur de cette distribution.
</abstract>

<copyright>
<copyrightsummary>
Copyright &copy; 2001 Gustavo Noronha Silva
</copyrightsummary>
<p>
Ce manuel est distribué sous les termes de la licence GNU FDL (licence de
documentation libre). Elle a été écrite dans l'espoir qu'elle soit utile à la
communauté mais ne donne aucune garantie ; utilisez la à vos risques et périls.
</copyright>

<toc>

<chapt>Introduction
<p>
Au commencement, il y avait le .tar.gz. Les utilisateurs devaient compiler
chaque programme qu'ils voulaient utiliser sur leur système GNU/Linux. Quand
Debian fût créée, il était estimé nécessaire que le système inclut un système de
gestion des paquets installés sur la machine. Le nom <prgn>dpkg</prgn> fût donné
à ce système. Ainsi, ce fût la première fois qu'un « système de paquets » était
inclut dans GNU/Linux, longtemps avant que Red Hat ne décide de créer leur
système de « rpm ».
<p>
Un nouveau dilemme est rapidement survenu dans l'esprit des développeurs
GNU/Linux. Ils avaient besoin d'une solution rapide, pratique et efficace pour
installer les paquets qui gérerait automatiquement les dépendances et qui
prendrait en compte les fichiers de configuration des paquets lors de mises à
niveau. Ici encore, Debian à ouvert la voie et donna naissance à APT, le Système
Avancé de Gestion de paquets, qui depuis a été porter par Conectiva pour
l'utiliser avec les rpm et a été adopté par quelques autres distributions.
<p>
Ce manuel ne s'adresse pas à apt-rpm, le portage de APT de Conectiva, mais des
«&nbsp;rustines&nbsp;» à ce document qui le font seraient les bienvenues.
</chapt>

<chapt id="basico">Configuration de base

<sect id="sources.list">Le fichier /etc/apt/sources.list
<p>
Pour réaliser ces opérations, APT utilise un fichier qui liste les
«&nbsp;sources&nbsp;» des paquets pouvant être obtenus. Ce fichier est
<file>/etc/apt/sources.list</file>.
<p>
Les entrées dans ce fichier suivent normalement ce format&nbsp;:

<example>
deb http://site.http.org/debian distribution section1 section2 section3
deb-src http://site.http.org/debian distribution section1 section2 section3
</example>

Bien sûr, les entrées ci-dessus sont fictivent et ne devraient pas être
utilisées. Le premier mot de chaque ligne, <tt>deb</tt> ou <tt>deb-src</tt>
indique le type de l'archive&nbsp;: si il contient les paquets binaires
(<tt>deb</tt>), ce sont les paquets pré-compilés que l'on utilise
habituellement, ou les paquets source (<tt>deb-src</tt>), qui sont les sources
originales du programme plus les fichiers de contrôle Debian (<tt>.dsc</tt>) et
le <tt>diff.gz</tt> contenant les changements nécessaire pour
«&nbsp;debianisé&nbsp;» le programme.
<p>
Nous trouvons généralement les lignes suivantes dans le sources.list Debian par
défaut&nbsp;:
<example>
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US
</example>

Ce sont les lignes nécessaires par une installation Debian de base. La première
ligne <tt>deb</tt> pointe vers l'archive officielle, la seconde vers l' archive
non-US et la troisième vers l'archive des mises à jour de sécurité Debian.
<p>
Les deux dernières lignes sont commentées (avec un «&nbsp;#&nbsp;» devant), donc
apt-get les ignorera. Ce sont les lignes <tt>deb-src</tt>, elles pointent vers
les paquets source Debian. Si vous téléchargez souvent les sources de programmes
pour tester ou recompiler, décommentez les.
<p>
Le fichier <file>/etc/apt/sources.list</file> peut contenir plusieurs types de
lignes. APT sais traiter les archives de type <tt>http</tt>, <tt>ftp</tt>,
<tt>file</tt> (les fichiers locaux, un dossier contenant une image ISO9660
montée) et <tt>ssh</tt>,  sont ceux que je connaisse.

</sect>

<sect id="dpkg-scanpackages">Comment utiliser APT localement&nbsp;?
<p>
Parfois vous avez beaucoup de paquets .deb que vous aimeriez utiliser APT pour
les installer afin que les dépendances soient résolues.
<p>
Pour ce faire, créez un dossier et mettez vos .deb que vous voulez lui ajouter
Par exemple&nbsp;:
<example>
mkdir /root/debs
</example>
Ensuite, à l'intérieur du dossier /root, créez un fichier vide, avec n'importe
quel nom. C'est parce qu'un dépôt APT a besoin d'un fichier connu comme
«&nbsp;override&nbsp;», il devrait être vide, mais il doit être présent.
Utilisez la commande suivante pour créer ce fichier&nbsp;:
<example>
touch fichier
</example>
A l'intérieur de ce fichier vous pourriez vouloir définir certaines options pour
annuler celles incluses dans les paquets. Il ressemble à ce qui suit&nbsp;:
<example>
paquet priorité section
</example>
paquet est le nom du paquet, priorité est faible, moyenne ou haute et section
est la section à laquelle il appartient. C'est suffisant pour laisser le fichier
vide.
<p>
Toujours dans le dossier /root faites&nbsp;:
<example>
dpkg-scanpackages debs fichiers | gzip > debs/Packages.gz
</example>
Dans la ligne ci-dessus fichier est le fichier «&nbsp;override&nbsp;», la
commande produit un fichier debs/Packages.gz qui contient diverses informations
sur les paquets, utilisées par APT. Pour utiliser les paquets, ajoutez
enfin&nbsp;: <example>
deb file:/root debs/
</example>
Après ça utilisez APT normalement. Vous pourriez aussi fabriquer un dépôt de
sources. Pour ce faire utilisez la même procédure, mais rappelez-vous que vous
avez besoin des fichiers <tt>.orig.tar.gz</tt>,<tt>.dsc</tt> et
<tt>.diff.gz</tt> dans le dossier et vous devez utiliser Sources.gz au lieu de
Packages.gz. Le programme utilisé est aussi différent. C'est
<prgn>dpkg-scansources</prgn>. La ligne de commande ressemblera à ça&nbsp;:
<example>
dpkg-scansources debs | gzip > debs/Sources.gz
</example>
Remarquez que <prgn>dpkg-scansources</prgn> n'a pas besoin d'un fichier
«&nbsp;override&nbsp;». LA ligne du sources.list est&nbsp;:
<example>
deb-src file:/root debs/
</example>
</sect>

<sect id="netselect">Décider quel est le meilleur miroir à inclure dans le
fichier sources.list&nbsp;: netselect, netselect-apt
<p>
Un doute très fréquent, principalement parmi les nouveau utilisateurs est&nbsp;:
«&nbsp;Quel miroir Debian à inclure dans le<tt>sources.list</tt>&nbsp;?&nbsp;».
Il y a plusieurs façons de décider quel miroir. Les experts ont probablement un
script qui mesure le temps de réponse des principaux miroirs. Mais il y a un
programme qui nous le fait&nbsp;: <strong>netselect</strong>.
<p>
Pour installer netselect, comme d'habitude&nbsp;:
<example>
apt-get install netselect
</example>
En l'exécutant sans paramètre, l'aide est affichée. En l'exécutant avec une
liste de serveurs (miroirs) séparés par un espace, il retournera un résultat et
un des serveurs. Ce résultat prend en considération l'estimation du temps de
réponse et le nombre de sauts (les serveurs par lesquels une requête réseau
passera pour atteindre la destination) et inversement proportionnel à la vitesse
de téléchargement (donc le plus bas est le meilleur). Le serveur retourné est
celui qui a eu le plus petit score (la liste complète des résultats peut être
vu en ajoutant l'option -vv) Regardez cet exemple&nbsp;:
<example>
bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org
 download.unesp.br ftp.debian.org.br
  365 ftp.debian.org.br
bash$
</example>
Cela signifie que, d'après les miroirs mis en paramètre à
<prgn>netselect</prgn>, <tt>ftp.debian.org.br</tt> était le meilleur, avec un
résultat de 365. (Attention&nbsp;!! Comme cela a été fait de mon ordinateur et
que la topographie du réseau est très différente selon le point de contact,
cette valeur n'est pas forcément la bonne vitesse sur d'autres ordinateurs).
<p>
Maintenant, mettez seulement le miroir le plus rapide trouvé par
<prgn>netselect</prgn> dans le fichier <file>/etc/apt/sources.list</file> (voir
<ref id="sources.list">) et suivez les conseils dans <ref id="apt-get">.
<p>
<strong>Note&nbsp;:</strong> la liste des miroirs devrait toujours être trouvée
dans le fichier <url id="http://www.debian.org/mirror/mirrors_full";
name="http://www.debian.org/mirror/mirrors_full";>.
<p>
En débutant avec la version 0.3, le paquet <package>netselect</package> inclut
le script <strong>netselect-apt</strong>, qui effectue la procédure ci-dessus
automatiquement. Entrez seulement l'arbre de la distribution en paramètre (celle
par défaut est stable) et le fichier <tt>sources.list</tt> sera créé avec les
meilleurs miroirs principaux et non-US et sera sauvegardé dans le répertoire
courant. L'exemple suivant créé un sources.list de la distribution stable&nbsp;:
<example>
bash$ ls sources.list
ls: sources.list: File or directory not found
bash$ netselect-apt stable
(...)
bash$ ls -l sources.list
sources.list
bash$
</example>
<strong>Rappelez-vous&nbsp;:</strong> Le fichier <tt>sources.list</tt> est créé
dans le répertoire courant et doit être déplacer dans le dossier
<tt>/etc/apt</tt>.
<p>
Ensuite, suivez les conseils dans <ref id="apt-get">.
</sect>

<sect id="cdrom">Ajouter un CD-ROM dans le fichier sources.list
<p>
Si vous voulez plutôt utiliser vous CD-ROM pour installer vos paquets ou mettre
à jour votre système automatiquement avec APT, vous pouvez les mettre dans votre
<tt>sources.list</tt>. Pour le faire, vous pouvez utiliser le programme
<prgn>apt-cdrom</prgn> comme ceci&nbsp;:
<example>
apt-cdrom add
</example>
avec le CD-ROM Debian dans le lecteur. Il montera le CD-ROM, et si c'est un CD
Debian valide il regardera les informations des paquets sur le disque. Si la
configuration de votre CD-ROM est inhabituelle, vous pouvez aussi utiliser les
options suivantes&nbsp;:
<example>
-h           - Aide du programme
-d directory - Point de montage du CD-ROM
-r           - Renommé un CD-ROM reconnu
-m           - Pas de montage
-f           - Mode rapide, ne vérifie pas les fichiers paquet
-a           - Mode de scannage minutieux
</example>

Par exemple&nbsp;:
<example>
apt-cdrom -d /home/kov/moncdrom add
</example>

Vous pouvez aussi identifier un CD-ROM sans l'ajouter à votre
sources.list&nbsp;:
<example>
apt-cdrom ident
</example>

Remarquez que ce programme fonctionne seulement si votre CD-ROM est correctement
configuré dans votre <file>/etc/fstab</file>.
</sect>
</chapt>

<chapt id="apt-get">Gestion des paquets
<sect id="update">Mise à jour de la liste des paquets disponible.
<p>
Le système de paquets utilise une sa propre base de donnée pour garder une trace
des paquets qui sont installés, qui ne sont pas installés et qui sont
disponibles pour l'installation. Le programme <prgn>apt-get</prgn> utilise cette
base de donnée pour retrouver comment installer les paquets demandés par
l'utilisateur ainsi que pour retrouver les paquets supplémentaires nécessaires
afin qu'un paquet sélectionné fonctionne correctement.
<p>
Pour mettre à jour cette liste, vous pouvez utiliser la commande <prgn>apt-get
update</prgn>. Cette commande vérifie la liste des paquets trouvés dans les
archives dans <file>/etc/apt/sources.list</file>&nbsp;: voir <ref
id="sources.list"> pour plus d'informations sur ce fichier.
<p>
C'est une bonne idée d'exécuter cette commande de temps en temps pour vous
garder, vous et votre système, informé des possibilités de mise à jour des
paquets, particulièrement les mises à jour de sécurité.
</sect>

<sect id="install">Installation de paquets
<p>
Finalement, la procédure que vous attendiez tous&nbsp;! Avec votre sources.list
de prêt et votre liste de paquets disponible à jour, tout ce que vous avez à
faire est de lancer <tt>apt-get</tt> pour obtenir le paquet que vous désirez
installer. Par exemple, vous pouvez lancer&nbsp;:

<example>
apt-get install xchat
</example>

APT cherchera dans sa base de données la version la plus récente de ce paquet et
le récupérera à partir de l'archive correspondante indiquée dans
<tt>sources.list</tt>. Dans le cas où ce paquet dépend d'autres -- comme c'est
le cas ici -- APT vérifiera les dépendances et installera les paquets
nécessaires. Par exemple&nbsp;:

<example>
[root]@[/] # apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 0 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n]
</example>

Le paquet <package>nautilus</package> dépend des bibliothèques partagées citées,
donc APT les recevra de l'archive. Si vous ajoutez les noms de ces bibliothèque
sur la ligne de commande <tt>apt-get</tt>, APT ne devrais pas vous demandez si
vous voulez continuer&nbsp;; il devrait accepter que vous vouliez installer
tout ces paquets
<p>
Cela signifie que APT demande confirmation seulement quand il est nécessaire
d'installer des paquets qui n'étaient pas spécifiés sur la ligne de commande.
<p>
Les options suivante d'apt-get peuvent être utiles&nbsp;:

<example>
-h  Ce texte d'aide
-d  télécharge seulement - N'installe PAS ou ne décompresse les paquets
-f  Essaie de continuer si la vérification de l'intégrité échoue
-s  Pas d'action. effectue seulement une simulation
-y  Suppose oui à toute les requêtes et ne suggère pas
-u  Affiche une liste des paquets à mettre à jour
</example>

Plusieurs paquets peuvent être sélectionné pour installation sur une seule
ligne. Les fichiers téléchargés du réseau sont placés dans le dossier
<tt>/var/cache/apt/archives</tt> pour une installation ultérieure.
<p>
Vous pouvez indiquer les paquets à retirer sur la même ligne de commande.
Mettez seulement un «&nbsp;-&nbsp;» juste après le nom du paquet à enlever,
comme ceci&nbsp;:

<example>
[root]@[/] # apt-get install nautilus gnome-panel-
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
</example>

Allez voir la section <ref id="remove"> pour plus de détails sur la suppression
de paquets.
<p>
Si vous endommagez d'une manière ou d'une autre un paquet installé, ou
voulez simplement que les fichiers d'un paquet soit réinstallés avec la même
version, vous pouvez utiliser l'option <tt>--reinstall</tt> comme ça&nbsp;:

<example>
[root]@[/] # apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1  not
 upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]
</example>

La version d'APT utilisée pour l'écriture de ce document est la version 0.5.3,
qui était la version actuelle dans Debian «&nbsp;unstable&nbsp;» (<tt>sid</tt>)
au moment de l'écriture. Si vous avez cette version d'installée, vous disposez
de fonctionnalités supplémentaires&nbsp;: vous pouvez utiliser une commande de
la forme <tt>apt-get install paquet/distribution</tt> pour installer un paquet
d'une distribution précise, ou <tt>apt-get install paquet=version</tt>. Par
exemple&nbsp;:

<example>
apt-get install nautilus/unstable
</example>

installera nautilus de la distribution «&nbsp;unstable&nbsp;» même si vous êtes
sous «&nbsp;stable&nbsp;». Les valeurs acceptées sont <tt>stable</tt>,
<tt>testing</tt> et <tt>unstable</tt>.
<p>
Vous préférez peut-être utiliser le commutateur <tt>-t</tt> pour sélectionner
une distribution précise, en menant <prgn>apt-get</prgn> à préférer cette
distribution lors de la résolution des dépendances.
<p>
<em>IMPORTANT</em>&nbsp;: La version «&nbsp;unstable&nbsp;» de Debian et la
version où les nouvelles versions des paquets Debian sont uploadé en premier.
Cette distribution voit tous les changements des paquets, petits et plus
importants qui affectent beaucoup de paquets ou tout le système Pour cette
raison, cette version <em>ne</em> devrait pas être utilisée par des utilisateurs
non expérimenté ou par ceux qui ont besoin de stabilité.
<p>
la distribution «&nbsp;testing&nbsp;» est légèrement mieux que
«&nbsp;unstable&nbsp;» avec une tendance à la stabilité, mais pour un système
productif utilisez plutôt la distribution stable.
</sect>

<sect id="remove">Suppression de paquets
<p>
Si vous ne voulez plus utiliser un paquet,vous pouvez le supprimé de votre
système en utilisant APT. Pour le faire, tapez seulement <tt>apt-get remove
paquet</tt>. Par exemple&nbsp;:

<example>
[root]@[/] # apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
</example>

Comme vous pouvez le voir dans l'exemple ci-dessus, APT prend aussi en compte
dans la suppression des paquets ceux qui dépendent du paquet que vous avez
demandé de supprimer. Il n'est pas possible de supprimer un paquet en utilisant
APT sans supprimer aussi les paquets dépendant de celui-ci.
<p>
En exécutant <prgn>apt-get</prgn> comme ci-dessus provoquera la suppression des
paquets mais leurs fichiers de configuration, s'il y en a, resteront intacts sur
le système. Pour une suppression complète du paquet, lancez&nbsp;:

<example>
[root]@[/] # apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
</example>

Remarquez après les noms le «&nbsp;*&nbsp;». Cela indique que les fichiers de
configuration vont aussi être supprimé.
<p>
Comme dans le cas de la méthode <tt>install</tt>, vous pouvez utiliser un
symbole avec <tt>remove</tt> pour inverser le sens d'un paquet en particulier.
Dans le cas de la suppression, si vous ajoutez un <tt>«&nbsp;+&nbsp;»</tt> juste
après le nom du paquet, le paquet sera installé au lieu d'être supprimé.

<example>
[root]@[/] # apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
</example>

Notez que <prgn>apt-get</prgn> liste les paquets supplémentaires qui seront
installés (c'est à dire, les paquets dont l'installation est nécessaire au bon
fonctionnement du paquet dont on l'installation a été demandée), Ceux qui seront
supprimés, et ceux qui seront installés (toujours dans les paquets
supplémentaires).
</sect>

<sect id="upgrade">Mise à niveau des paquets
<p>
La mise à niveau de paquets est une vrai réussite du système APT. Elle peuvent 
être accomplient avec une simple commande&nbsp;: <tt>apt-get upgrade</tt>. Vous
pouvez utilisez cette commande pour mettre à niveau les paquets d'une même
distribution, aussi pour mettre à niveau vers une nouvelle distribution, bien 
que la commande <tt>apt-get dist-upgrade</tt> est préférée à cette
dernière&nbsp;; voir <ref id="dist-upgrade"> pour plus de détails.
<p>
Il est utile d'exécuté cette commande avec l'option <tt>-u</tt>. Cette option
oblige APT à afficher la liste complète des paquets qui seront mis à niveau. 
Sans elle, vous ferez vos mises à niveau à l'aveuglette. APT téléchargera les
dernière version de chaque paquet et les installera dans le bon ordre. C'est
important de toujours lancer <tt>apt-get update</tt> avant que vous l'essayez.
Voir la section <ref id="update">. Observez cet exemple&nbsp;:

<example>
[root]@[/] # apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
  cpp gcc lilo
The following packages will be upgraded
  adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
  ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
  libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
  libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]
</example>

La processus est très simple. Notez que dans les premières lignes,
<tt>apt-get</tt> dit que certains paquets ont été <tt>retenus</tt> (kept back).
Cela signifie qu'il y a de nouvelles versions de ces paquets qui ne seront pas
installés pour plusieurs raisons. Les raisons possibles sont des dépendences
cassées (un paquet sur lequel il dépend n'a pas de version disponible en
téléchargement) ou de nouvelles dépendences (le paquet vient à dépendre de
nouveaux paquets depuis la dernière version).
<p>
Pour le premier cas, il n'y a pas de solution propre. Pour le second, il suffit
d'exécuter <tt>apt-get install</tt> pour le paquet en question, comme ça il
téléchargera les dépendances. Une solution encore plus propre est d'utiliser
<tt>dist-upgrade</tt>. Voir la section <ref id="dist-upgrade">.
</sect>

<sect id="dist-upgrade">Mettre à niveau vers une nouvelle distribution
<p>
Cette caractéristique d'APT vous permet de mettre à niveau entièrement un 
système Debian en seule fois, soit par l'Internet ou soit par un nouveau CD
(commandé ou téléchargé en image ISO).
<p>
Elle aussi utilisée quand des changements dans les dépendances des paquets
installés sont faits. Avec <tt>apt-get upgrade</tt>, ces paquets ne resterons
intacts (<tt>kept back</tt>).
<p>
Par exemple, supposons que vous utilisez la révision 0 de la version stable de
Debian et vous achetez un CD de la révision 3. Vous pouvez utiliser APT pour
mettre à niveau votre système avec ce nouveau CD. Pour le faire, utilisez
<prgn>apt-cdrom</prgn> (voir la section <ref id="cdrom">) pour ajouter le CD à
votre <file>/etc/apt/sources.list</file> et lancez <tt>apt-get
dist-upgrade</tt>.
<p>
C'est important de noter que APT regarde toujours pour la version du paquet la
plus récente. Néanmoins, si votre <file>/etc/apt/sources.list</file> listait une
archive qui a une version plus récente que la version sur le CD, APT
téléchargera le paquet de là.
<p>
Dans l'exemple de la section <ref id="upgrade">, nous avons vu que quelques
paquets ont été <tt>retenus</tt> (kept back). Nous allons maintenant résoudre ce
problème par la méthode <tt>dist-upgrade</tt>&nbsp;:

<example>
[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
  cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
  libpcre2 logrotate mailx
The following packages have been kept back
  lilo
The following packages will be upgraded
  adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
  indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
  libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
  liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
  procps psmisc
31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
Do you want to continue? [Y/n]
</example>

Notez maintenant que le paquet va être mis à niveau, et des nouveaux paquets 
vont aussi être installés (les dépendances des paquets). Notez également que
lilo est toujours <tt>retenus</tt>. Il a probablement un problème plus important
qu'une nouvelle dépendance. Nous pouvons la découvrir en lançant&nbsp;:

<example>
[root]@[/] # apt-get -u install lilo
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx
The following packages will be REMOVED:
  debconf-tiny
The following NEW packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx
The following packages will be upgraded
  lilo
1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
Do you want to continue? [Y/n]
</example>

Comme noté ci-dessus, lilo a un nouveau conflit avec le paquet
<package>debconf-tiny</package>, qui signifie qu'il ne peut pas être installé
(ou mis à niveau) sans supprimer debconf-tiny.
<sect id="dselect-upgrade">Utiliser APT avec dselect
<p>
<prgn>dselect</prgn> est un programme qui aide les utilisateurs à sélectionner
des paquets Debian pour les installer. Il est considéré quelque peu
compliquer et plutôt ennuyeux, mais avec de la pratique vous pouvez saisir son
interface ncurse basée sur la console.
<p>
Un avantage de dselect est qu'il sait comment utiliser la capacité des paquets
Debian four «&nbsp;recomender&nbsp;» et «&nbsp;suggérer&nbsp;» d'autres paquets
pour l'installation. Pour utiliser ce programme, exécuter
<tt>«&nbsp;dselect&nbsp;»</tt> en tant que root. Choisissez «&nbsp;apt&nbsp;»
comme méthode d'accès. Ce n'est pas vraiment nécessaire, mais si vous n'utilisez
pas de CD ROM et que vous voulez télécharger des paquets d'Internet, c'est la
meilleure façon d'utiliser dselect.
<p>
Pour acquérir une meilleure compréhension de l'usage de dselect, lisez la
documentation de dselect sur la page Debian <url
id="http://www.debian.org/doc/ddp"; name="http://www.debian.org/doc/ddp";>.
<p>Après avoir fais votre sélection avec dselect, utilisez&nbsp;:

<example>
apt-get -u dselect-upgrade
</example>

comme dans l'exemple ci-dessous&nbsp;:

<example>
[root]@[/] # apt-get -u dselect-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  lbxproxy
The following NEW packages will be installed:
  bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
  gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
  libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
  libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
  util-linux-locales vacation xbill xplanet-images
The following packages will be upgraded
  debian-policy
1 packages upgraded, 30 newly installed, 1 to remove and 0  not upgraded.
Need to get 7140kB of archives. After unpacking 16.3MB will be used.
Do you want to continue? [Y/n]
</example>

Comparez avec ce que nous avons vu lorsque nous avons lancez apt-get
dist-upgrade sur le même système&nbsp;:

<example>
[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
  debian-policy
1 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.
Need to get 421kB of archives. After unpacking 25.6kB will be freed.
Do you want to continue? [Y/n]
</example>

Notez que beaucoup de paquets ci-dessus vont être installés parce que les
autres paquets les «&nbsp;suggère&nbsp;» ou les «&nbsp;recommande&nbsp;».
D'autres seront installés ou supprimés (dans le cas de lbxproxy, par exemple)
grâce aux choix que nous avons faits lorsque nous naviguions dans la liste de
paquets de dselect. Dselect peut être un outil très puissant lorsqu'il est
utilisé conjointement avec APT.
</sect>

<sect id="default-version">Comment garder un système mixte&nbsp;?
<p>
Les gens utilisent souvent la distribution testing parce qu'elle est plus stable
que l'unstable et plus à jour que la stable. Cependant, les utilisateurs qui
voudraient utiliser les dernières versions de certains paquets plutôt que de
confier tout leur système à unstable, ont aussi l'option de tourner sur des
systèmes mixtes testing/unstable. D'un autre côté, les utilisateurs les moins
audacieux voudront peut-être utiliser des systèmes mixte stable/testing.
<p>
Pour ce faire, mettez la ligne suivante dans
<file>/etc/apt/apt.conf</file>&nbsp;:

<example>
APT::Default-Release "testing";
</example>

<p>
Puis, quand vous voudrez installer des paquets de unstable, utilisez seulement le
commutateur <tt>-t</tt>&nbsp;:

<example>
# apt-get -t unstable install <var>nom_du_paquet</var>
</example>

<p>
N'oubliez pas que pour utiliser les paquets d'une version de Debian, vous avez
besoin d'ajouter un ligne apt dans le fichier
<file>/etc/apt/sources.list</file>. Dans le cas de notre exemple, nous avons
besoin d'une ligne pour la distribution <tt>unstable</tt> en plus de la
<tt>testing</tt>.
</sect>

<sect id="apt-show-versions">Comment mettre à niveau un paquet d'une 
distribution Debian spécifique&nbsp;?
<p>
<prgn>apt-show-versions</prgn> est une voie sûre pour les utilisateurs de
distributions mixte pour mettre à niveau leurs système sans en avoir plus de la
distributions la moins stable qu'ils en ont à l'esprit. Pour l'instant, il est
possible de mettre à niveau seulement vos paquets unstable en exécutant&nbsp;:

<example>
# apt-get install `apt-show-versions -u -b | grep unstable`
</example>
</sect>

<sect id="pin">Comment garder des versions spécifiques de paquets installés
(complexe)
<p>
Vous avez sûrement eu l'occasion de modifier quelque chose dans un paquet et
n'avez pas le temps ou n'avez pas envi de les transférer vers une nouvelle
version du programme. Ou, pour l'instant, vous venez juste de mettre à niveau
votre distribution Debian à 3.0, mais vous voulez continuer avec la version de
certains paquets de 2.2. Vous pouvez «&nbsp;épingler&nbsp;» la version que vous
avez installé donc il ne sera pas mis à niveau.
<p>
Utiliser cette fonctionnalité est simple. Vous avez seulement besoin de modifiez
le fichier <file>/etc/apt/preferences</file>.
<p>
Le format est simple&nbsp;:
<example>
Package: &lt;package&gt;
Pin: &lt;pin definition&gt;
Pin-Priority: &lt;pin's priority&gt;
</example>
<p>
Par exemple, pour garder le paquet <package>sylpheed</package> qie j'ai modifié
pour utiliser «&nbsp;reply-to-list&nbsp;» dans la version 0.4.99, j'ai
ajouté&nbsp;:
<example>
Package: sylpheed
Pin: version 0.4.99*
</example>
Notez que j'utilise un <tt>*</tt> (astérisque). C'est une
«&nbsp;wildcard&nbsp;»&nbsp;; cela signifie que je veux que cette
«&nbsp;épingle&nbsp;» soit valide pour toutes les versions commençant par
0.4.99. C'est parce que les versions Debian sont empaquetées avec une
«&nbsp;révision Debian&nbsp;» et je ne veux pas éviter l'installation de ces
révisions. Donc, pour l'instant, les versions 0.4.99-1 et 0.4.99-10 seront
installées dès qu'elles seront disponibles. Notez que si vous avez modifié le
paquet vous ne voudrez pas faire quelque chose de cette façon.
<p>
Le champ <tt>Pin-Priority</tt> est optionnel&nbsp;; si il n'est pas spécifié, la
valeur par défaut est 989.
<p>
Regardons maintenant comment les priorités des épingles fonctionnent. Une
priorité inférieure à 0 indique que le paquet de devrait jamais être installé.
Les priorité de 0 à 100 indique les paquets qui ne sont pas installés et n'ont
pas de versions disponible. Ils ne viendront pas dans le processus de choix de
la version. La priorité 100 est la priorité assignée à un paquet installé - pour
la version installée d'un paquet à être remplacée par une version différente, le
remplacement doit avoir une priorité supérieure à 100.
<p>
Les priorités au-dessus de 100 indiquent qu'un paquet devrait être installé. 
Typiquement, la version des paquets installés est changé seulement pour le 
mettre à niveau vers une nouvelle version. Toutes les priorités entre 100 et 
1000 (inclus) indique ce comportement typique. Un paquet avec une telle priorité
ne sera pas descendu vers une version disponible avec un numéro de version
inférieur. Pour l'instant, si j'ai sylpheed 0.5.3 d'installé et défini une
épingle sur sylpheed 0.4.99 avec une priorité de 999, le paquet 0.4.99
<em>ne</em> pourra <em>pas</em> être installé pour satisfaire l'épingle. Pour
rendre un paquet «&nbsp;descendable&nbsp;», pour satisfaire l'épingle, il est
nécessaire de poser une priorité supérieure à 1000.
<p>
Ce concept de descente peut avoir de puissante applications&nbsp;; supposez que
vous venez juste de mettre à niveau votre version <tt>stable</tt> de Debian vers
la <tt>testing</tt> mais vous vouliez rétracter votre décision - peut-être
<tt>testing</tt> n'a pas été assez «&nbsp;testée&nbsp;» pour vous satisfaire.
Vous pouvez définir une épingle par défaut, en utilisant une wildcard pour le nom
de paquet, pour revenir en stable. Par exemple&nbsp:
<example>
Package: *
Pin: release a=stable
Pin-Priority: 1001
</example>
<p>
Après ça, un <tt>apt-get -u dist-upgrade</tt> descendra votre système vers la
version stable.
<p>
Une épingle peut être spécifiée sur <tt>la version</tt>, <tt>la release</tt> ou
<tt>l'origine</tt> d'un paquet.
<p>
En épinglant sur une <tt>version</tt>, nous avons vu, qu'elle supporte le numéro
de version de manière littérale aussi bien que les wildcards pour spécifier
plusieurs versions en une fois.
<!-- Qu'est-ce qui est disponible ? les shells standards globs(?) ? ?*[] ou plus
? -->
<p>
L'option <tt>release</tt> dépend du fichier Release d'un référentiel d'APT ou
d'un CD. Cette option ne devra pas être utilisée si vous utilisez des
référentiels de paquets qui ne contiennent pas ce fichier. Vous devriez voir le
contenu de ce fichier Release que vous avez dans <tt>/var/lib/apt/lists</tt>.
Les paramètres pour une release sont&nbsp;:
<tt>a</tt> (archive), <tt>c</tt> (composants), <tt>v</tt> (version), <tt>o</tt>
(origine) et <tt>l</tt> (label).
<p>
Un exemple&nbsp;:
<example>
Package: *
Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
Priority: 1001
</example>
Dans cet exemple, nous avons choisis les versions Debian 2.2* (qui peuvent être
2.2r2, 2.2r3 -- Cela satisfait les «&nbsp;points de release&nbsp;» qui incluent
les correctifs de sécurité et d'autres mises à jour très importantes), le
référentiel <tt>stable</tt>,la section <tt>main</tt> (opposé à <tt>contrib</tt>
ou <tt>non-free</tt>) et l'origine et le label Debian. L'origine (o=) définie
qui à produit ce fichier Release, le label (l=) défini le nom de la
distribution&nbsp;: Debian pour Debian elle-même et Progeny pour Progeny, par
exemple. Un simple fichier Release&nbsp;:
<example>
$ cat
 /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Relea
se
Archive: stable
Version: 2.2r3
Component: main
Origin: Debian
Label: Debian
Architecture: i386
</example>
</sect>
</chapt>

<chapt id="helpers">Aide très utile
<sect id="equivs">Comment installé un paquet localement&nbsp;: equivs
<p>
Parfois, des personnes veulent utiliser une version spécifique d'un programme
où est disponible seulement le code source, sans paquet Debian. Mais le système
de paquets peut être perturbé quand vous le faites. Supposons que vous voulez
compiler une nouvelle version de votre serveur d'émail. Tout est bien, mais
beaucoup de paquets dépendent d'un MTA dans Debian. Parce que vous avez installé
quelque chose que vous avez compilé vous-même, le système de paquet de sais rien
sur lui.
<p>
C'est là que <package>equivs</package> entre en scène. Pour l'utiliser,
installez le paquet du même nom. Il créé un paquet vide capable de réaliser
toutes les dépendances, en faisant croire au système de paquets que les
dépendances sont satisfaites.
<p>
Avant que nous commencions, il est bon de vous rappeler qu'il y a d'autres
méthodes plus sûres pour compiler un programme déjà empaqueter pour Debian avec
différentes options, et l'une d'entre elle n'utiliserait pas equivs pour
remplacer les dépendances si vous ne savez pas ce que vous faîtes. Voir la
section <ref id="sourcehandling"> pour plus d'informations.
<p>
Continuons avec l'exemple du MTA, vous venez juste d'installer votre
<package>postfix</package> nouvellement compilé et continuer avec l'installation
de <package>mutt</package>. Tout à coup vous découvrez que
<package>mutt</package> veut installer un autre MTA. Mais vous avez déjà le
votre.
<p>
Allez dans un dossier (<file>/tmp</file>, par exemple) et lancez&nbsp:

<example>
# equivs-control <var>nom</var>
</example>

Remplacer <var>nom</var> par le nom du fichier de contrôle que vous voulez
créer. Le fichier sera créer comme suit&nbsp:

<example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: &lt;entrer le nom du paquet&nbsp; par défaut equivs-dummy&gt;
Version: &lt;entrer ici la version&nbsp; par défaut 1.0&gt;
Maintainer: &lt;votre nom et votre adresse émail&nbsp;par défaut nom
d'utilisateur&gt;
Pre-Depends: &lt;paquets&gt;
Depends: &lt;paquets&gt;
Recommends: &lt;paquets&gt;
Suggests: &lt;paquet&gt;
Provides: &lt;paquet (virtuel)&gt;
Architecture: all
Copyright: &lt;fichier copyright&nbsp; par défaut GPL2&gt;
Changelog: &lt;fichier changelog&nbsp; par défaut un changelog générique&gt;
Readme: &lt;fichier README.Debian&nbsp; par défaut un générique&gt;
Extra-Files: &lt;fichiers supplémentaires pour le dossier doc, séparés par des
virgules&gt;
Description: &lt;description courte&nbsp; par défaut quelques mots judicieux&gt;
 description longues et informations
 .
 second paragraphe
</example>

nous avons juste besoin de modifier cela pour faire ce que nous voulons.
Examinons le format des champs et leurs descriptions, il n'y a pas besoin ici
de tous les expliquer, Faisons ce qui est nécessaire&nbsp:

<example>
Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: mta-local
Provides: mail-transport-agent
</example>

Oui, c'est tout. <package>mutt</package> dépend de
<package>mail-transport-agent</package>, c'est un paquet virtuel fournit par
tous les MTA, je peux simplement nommer le paquet
<package>mail-transport-agent</package>, mais je préfère utiliser le schéma du
paquet virtuel, en utilisant Provides.
<p>
Maintenant vous avez seulement besoin de construire le paquet&nbsp;:

<example>
# equivs-build <var>nom</var>
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Ajoutez ici les commandes pour installer le paquet dans debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `<var>nom</var>' in
 `../<var>nom</var>_1.0_all.deb'.

The package has been created.
Attention, the package has been created in the current directory,
</example>

Et installer le <tt>.deb</tt> résultant.
<p>
Comme vous pouvez le voir, il y a plusieurs utilisations d'<prgn>equivs</prgn>.
L'une d'entre elle peut éventuellement créer un paquet <tt>mes-favoris</tt>, qui
dépend des programmes que vous installés habituellement, par exemple. Libérez
simplement votre imagination, mais soyez prudent.
<p>
Il est important de noter qu'il y a des exemples de fichiers contrôle dans
<file>/usr/share/doc/equivs/examples</file>. Allez y jeter un oeil.
</sect>

<sect id="localpurge"> Suppression des fichiers de locale inutiles&nbsp;:
localpurge
<p>
Beaucoup d'utilisateurs Debian utilisent une seule locale. Par exemple, un
utilisateur brésilien utilise, généralement, la locale <tt>pt_BR</tt> tout le
temps et ne se soucis pas de l'<tt>es</tt>.
<p>
<package>localepurge</package> est un outil très utile pour ces utilisateurs.
Vous pouvez libérer beaucoup d'espace en ayant seulement la locale que vous
utilisez. Juste <tt>apt-get install localepurge</tt>.
<p>
C'est très simple de le configurer, les questions de debconf guident
l'utilisateur dans une configuration pas-à-pas. Soyez très attentifs à la
réponses lorsque que la première question passe, une mauvaise réponse peut
supprimer tous les fichiers de locale, y compris ceux  que vous utilisez. Le
seul moyen de récupérer ces fichiers et de réinstaller tous les paquets qui les
fournissent.
</sect>

<sect id="helper-show-versions">Comment savoir quels paquets peuvent être mis à
niveau
<p>
<prgn>apt-show-versions</prgn> est un programme qui affiche quels paquets du
système peuvent être mis à jour et diverses informations utiles. l'option
<tt>-u</tt> affiche une liste des paquets pouvant être mis à niveau&nbsp;:
<example>
$ apt-show-versions -u
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
</example>
</sect>
</chapt>

<chapt id="search">Avoir des informations sur les paquets
<p>
Il y a quelques interfaces pour le système APT qui facilite indubitablement
l'obtention d'une liste de paquets qui sont disponible pour l'installation ou
qui sont déjà installé, de même que pour rechercher dans quelle section est un
paquet, quelle est sa priorité, quelle est sa description, etc.
<p>
Mais... notre but ici est d'apprendre comment utiliser le vrai APT. Donc comment
pouvez vous retrouver le nom d'un paquet que vous voulez installer&nbsp;?
<p>
Nous avons un bon nombre de recours pour cette tâche. Nous commencerons avec
<tt>apt-cache</tt>. Ce programme est utilisé par le système APT pour le maintiens
de sa base de données. Nous jetterons un bref coup d'oeil à ses applications les
plus pratique.

<sect id="cache">Découverte du nom des paquets
<p>
Supposons, par exemple, que vous voulez vous rappeler les bons vieux jours de
l'Atari 2600. Vous voulez utiliser APT pour installer un émulateur Atari, puis
vous télécharchez quelques jeux. Vous pouvez faire&nbsp;:

<example>
[root]@[/] # apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System
</example>

Nous trouvons différents paquets relatif à ce que nous cherchons, simultanément
avec une brève description. Pour avoir des informations sur un paquet
spécifique, je peux alors utiliser&nbsp;:

<example>
[root]@[/] # apt-cache show stella
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
 Stella is a portable emulator of the old Atari 2600 video-game console
 written in C++.  You can play most Atari 2600 games with it.  The latest
 news, code and binaries for Stella can be found at:
 http://www4.ncsu.edu/~bwmott/2600
</example>

Dans cette sortie vous avez pleins de détails sur le paquet que vous voulez (ou
ne voulez pas) installer,simultanément avec la description complète du paquet.
Si le paquet est déjà installé sur votre système et qu'il y a une nouvelle
version, vous verrez les informations des deux versions. Par exemple&nbsp;:

<example>
[root]@[/] # apt-cache show lilo
Package: lilo
Priority: important
Section: base
Installed-Size: 271
Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
Architecture: i386
Version: 1:21.7-3
Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (<<1.29-3)
Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
Size: 143052
MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text
 screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Package: lilo
Status: install ok installed
Priority: important
Section: base
Installed-Size: 190
Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
Version: 1:21.4.3-2
Depends: libc6 (>= 2.1.2)
Recommends: mbr
Suggests: lilo-doc
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text
 screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
</example>

Notez que le premier de la liste est le paquet disponible et le second est
celui déjà installé. Pour plus d'informations générales sur un paquet, vous
pouvez utiliser&nbsp;:

<example>
[root]@[/] # apt-cache showpkg penguin-command
Package: penguin-command
Versions:
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_b
inary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends:
Dependencies:
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0)
 libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
Provides:
1.4.5-1 -
Reverse Provides:
</example>

Et pour rechercher de quels paquet il dépend&nbsp;:

<example>
[root]@[/] # apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g
</example>

En résumé, nous avons une série d'arme que nous pouvons utilisé pour rechercher
le nom d'un paquet que nous voulons.
</sect>

<sect id="dpkg-search">Utilisation de dpkg pour trouver le nom des paquets
<p>
Une des solutions pour localiser le nom d'un paquet est de connaître le nom d'un
fichier important trouvé dans le paquet. Par exemple, pour trouver le paquet qui
fournit un fichier <tt>«&nbsp;.h&nbsp;»</tt> particulier que vous avez besoin pour
compiler, vous pouvez lancera&nbsp;:

<example>
[root]@[/] # dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
</example>

ou&nbsp;:

<example>
[root]@[/] # dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h
</example>

Pour trouver le nom de paquets installés sur votre système, qui est utile, par
exemple, si vous prévoyez de nettoyer votre disque dur, vous pouvez
lancer&nbsp;:

<example>
[root]@[/] # dpkg -l | grep mozilla
ii  mozilla-browse 0.9.6-7        Mozilla Web Browser
</example>

Le problème avec cette commande est qu'elle peut «&nbsp;casser&nbsp;» le nom des
paquets. Dans l'exemple ci-dessus, le nom complet du paquet est
<tt>mozilla-browser</tt>. Pour arranger cela, vous pouvez utiliser la variable
d'environnement <tt>COLUMNS</tt> comme ceci&nbsp;:

<example>
[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser
- core and browser
</example>

ou la description ou une partie de celle-ci comme cela&nbsp;:

<example>
[root]@[/] # apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser
</example>
</sect>

<sect id="auto-apt">Comment installer des paquets «&nbsp;à la
demande&nbsp;»&nbsp;?
<p>
Vous compilez un programme et, tout à coup, boom&nbsp;! Il y a une erreur parce
qu'il faut un fichier <tt>.h</tt> que vous n'avez pas. Le programme
<prgn>auto-apt</prgn> peut vous sauvez de ces scénarios. Il vous demande
d'installer des paquets si ils sont nécessaires, en stoppant le processus
approprié et en continuant une fois que le paquet est installé.
<p>
Ce que vous avez simplement à faire est de lancer&nbsp;:

<example>
auto-apt run commande
</example>

Où «&nbsp;commande&nbsp;» est la commande à exécuter qui devrait nécessité des
fichiers qui ne sont pas disponible. Par exemple&nbsp;:

<example>
auto-apt run ./configure
</example>

Il vous demandera d'installer les paquets nécessaires et appelle apt-get
automatiquement. Si vous êtes sous X, une interface graphique remplacera
l'interface texte par défaut.
<p>
Auto-apt observe la base de donnée qui doit être à jour pour être efficace.
C'est réalisé en appelant les commandes <tt>auto-apt update</tt>, <tt>auto-apt
updatedb</tt> et <tt>auto-apt update-locale</tt>.
</sect>

<sect id="apt-listchanges">Comment rester informé sur les changements dans les
paquets&nbsp;?
<p>
Tous les paquets installent dans leur dossier de documentation un fichier appelé
<tt>changelog.Debian.gz</tt> qui contient la liste des changements fait sur le
paquet depuis la dernière version. Vous pouvez lire ces fichiers avec l'aide de
<tt>zless</tt>, par exemple, mais ce n'est pas quelque chose de si simple, après
une mise à niveau du système complète, pour commencer à chercher les changelog
pour tous les paquets mis à niveau.
<p>
Il y a une solution pour automatiser cette tâche au moyen d'un outil appelé
<prgn>apt-listchanges</prgn>. Pour commencer avec celui-ci, vous avez besoin
d'installé le paquet <package>apt-listchanges</package>. Pendant l'installation du
paquet, Debconf le configurera. Répondez aux questions comme vous le voulez.
<p>
L'option «&nbsp;Est-ce que apt-listchanges doit être automatiquement lancer par
apt&nbsp;?&nbsp;» est très utile parce qu'il montre une liste des changements
fait à chaque paquet qui sont installés par apt durant une mise à niveau et vous
laisse les examiner avant de continuer. L'option "&nbsp;Est-ce que
apt-listchanges demande une confirmation après l'affichage des
changements&nbsp;?&nbsp;» est utile parce qu'il vous demande si vous voulez
continuer l'installation après avoir lu la liste des changements. Si vous dites
que vous ne voulez pas continuer apt-listchanges retournera une erreur et apt
annulera l'installation.
<p>
Après que apt-listchanges soit installé, aussitôt que des paquets sont
téléchargés (ou récupérer sur a cédérom ou un disque monté) par apt il affichera
la liste des changements fait sur ces paquets avant de les installer.
</sect>
</chapt>

<chapt id="sourcehandling">Travailler avec des paquets source
<sect id="source">Télécharger un paquet source
<p>
C'est courant dans le monde du logiciel libre d'étudier le code source ou
éventuellement de faire des corrections sur du code bogué. Pour le faire, vous
aurez besoin de télécharger les sources du programme. Le système APT fournit une
solution facile pour obtenir le code source des nombreux programmes contenus
dans la distribution, en incluant tous les fichiers pour créer un .deb pour le
programme.
<p>
Une autre utilité courante des sources Debian est d'adapté une version d'un
programme plus récente, de la distribution unstable, par exemple, pour
l'utiliser dans la distribution stable. En compilant un paquet qui n'est pas
stable générera des .deb avec des dépendances ajustées pour que ce paquet puisse
être disponible dans cette distribution.
<p>
Pour accomplir ceci, l'entrée <tt>deb-src</tt> dans votre
<tt>/etc/apt/sources.list</tt> doit pointer vers unstable. Il doit être aussi
permis (décommenter). Voir la section <ref id="sources.list">.
<p>
Pour télécharger un paquet source, vous devez utiliser la commande
suivante&nbsp;:

<example>
apt-get source nomdupaquet
</example>
Cela téléchargera trois fichiers&nbsp;: un <tt>.orig.tar.gz</tt>, un
<tt>.dsc</tt> et un <tt>.diff.gz</tt>. Dans le cas où les paquet sont fait
spécialement pour Debian, le dernier de ceux-ci n'est pas télécharger et le
premier n'a généralement pas <tt>«&nbsp;orig&nbsp;»</tt> dans le nom.
<p>
Le fichier <tt>.dsc</tt> est utilisé par dpkg-source pour dépaqueter le paquet
source dans le dossier <var>nomdupaquet-version</var>. Avec chaque paquet source
téléchargé il y a un répertoire <tt>debian/</tt> qui contient les fichiers
nécessaires pour la création un paquet .deb.
<p>
Pour construire automatiquement le paquet lorsqu'il est télécharger, ajoutez
seulement <tt>-b</tt> à la ligne de commande, comme ça&nbsp;:

<example>
apt-get -b source packagename
</example>

Si vous décidez de ne pas créer de .deb lorsque vous le téléchargez, vous pouvez
le créer plus tard en exécutant&nbsp;:

<example>
dpkg-buildpackage -rfakeroot -uc -b
</example>

à l'intérieur du répertoire créé pour le paquet après le téléchargement.
<p>
Il y a une différence entre les méthodes <prgn>apt-get</prgn> <tt>source</tt> et
ses autres méthodes. La méthode <tt>source</tt> peut être utilisée par  un
utilisateur normal, sans avoir besoin des droits root. Les fichiers sont
téléchargés dans le dossier à partir duquel la commande <tt>apt-get source
paquet</tt> à été appelée.
</sect>

<sect id="build-dep">Paquets nécessaire pour la compilation d'un paquet source
<p>
Normalement, des en-têtes et des bibliothèques dynamiques spécifiques doivent
être présentes pour qu'un paquet source puisse être compilé. Tous les paquets
.deb ont un champ dans leur fichier contrôle appelé
«&nbsp;Buil-Depends&nbsp;:&nbsp;» qui indique quels paquets supplémentaires sont
nécessaires pour être construit à partir des sources.
<p>
APT possède une solution simple pour télécharger ces paquets. Exécutez juste
<tt>apt-get build-dep paquet</tt>, où «&nbsp;paquet&nbsp;» est le nom du paquet
que vous allez construire. Par exemple&nbsp;:

<example>
[root]@[/] # apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
  libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1  not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
</example>

Les paquets qui seront installés sont les paquets nécessaires pour que
<package>gmc</package> soit compilé correctement. C'est important de noter que
cette commande ne cherche pas le paquet source du programme pour être compilé.
Vous devrez par conséquent exécuter <tt>apt-get source</tt> séparément pour le
récupérer.
</sect>
</chapt>

<chapt id="erros">Comment traiter les erreurs&nbsp;?
<sect id="erros-communs">Erreurs courante
<p>
Des erreurs arriverons souvent, la plupart d'entre elles causées par les
utilisateurs qui ne font pas attention. Ce qui suit est une liste des erreurs
les plus fréquemment rapportées et comment les traités.
<p>
Si vous recevez un message qui ressemble à celui ci-dessous quand vous essayez
d'exécuter <tt>apt-get install paquet</tt>...

<example>
Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/
 Packages'
 (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat
 (2 No such file or directory)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
</example>

vous avez oublier d'exécuter <tt>apt-get update</tt> après vos derniers
changements dans le fichier <tt>/etc/apt/sources.list</tt>.
<p>
Si l'erreur ressemble à&nbsp;:

<example>
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
</example>

quand vous essayez n'importe quelle méthode <prgn>apt-get</prgn> autre que
<tt>source</tt>, vous n'avez pas les permissions root, parce que vous l'exécuter
en utilisateur normal.
<p>
Il y a une erreur similaire à celle ci-dessus qui arrive lorsque vous exécutez
deux copies d'<prgn>apt-get</prgn> en même temps, ou éventuellement si vous
essayez d'exécuter <prgn>apt-get</prgn> pendant qu'un processus
<prgn>dpkg</prgn>  est actif. La seule méthode qui peut être utilisé
simultanément avec les autres est la méthode <tt>source</tt>.
<p>
Si une installation se coupe au milieu du processus et vous trouvez que ce n'est
plus possible d'installer ou de supprimer des paquets, essayez d'exécuter ces
deux commandes&nbsp;:

<example>
# apt-get -f install
# dpkg --configure -a
</example>

et ensuite essayez à nouveau. Il sera peut être nécessaire d'exécuter la seconde
des commandes ci-dessus plus d'une fois. C'est une leçon importante pour ces
aventuriers qui utilisent «&nbsp;unstable&nbsp;».
</sect>

<sect id="help">Où puis-je trouver de l'aide&nbsp;?
<p>
Si vous êtes tourmentés par le doute, consultez l'importante documentation
disponible pour le système de gestion des paquets Debian. les <tt>--help</tt> et
les pages de manuel peuvent être une énorme aide pour vous, comme le peut la
documentation contenue dans les dossier <tt>/usr/share/doc</tt> comme
<tt>/usr/share/doc/apt</tt>.
<p>
Si la documentation échoue à faire disparaître votre peur, essayez de rechercher
la réponse sur les lites de discussions Debian. Vous pouvez trouver plus
d'informations des les listes d'utilisateurs spécifiques sur le site Web
Debian&nbsp;: <url id="http://www.debian.org"; name="http://www.debian.org";>.
<p>
Souvenez vous que ces listes et ressources doivent être utilisées seulement par
les utilisateurs Debian&nbsp;; les utilisateurs d'autres systèmes trouverons un
meilleur support dans les communautés de leur propre distribution.
</sect>
</chapt>

<chapt id="distros">Quelles distributions supportent APT&nbsp;?
<p>
Il  a ici les noms de quelques distributions qui utilisent APT&nbsp;:
<p>
Debian GNU/Linux (<url id="http://www.debian.org"; name="http://www.debian.org";>)
- Ce fût pour cette distribution que APT fût développé
<p>
Conectiva (<url id="http://www.conectiva.com.br";
name="http://www.conectiva.com.br";>)
- Ce fût la première distribution à porter APT pour l'utiliser avec les rpm
<p>
Mandrake (<url id="http://www.mandrake.com"; name="http://www.mandrake.com";>)
<p>
PLD (<url id="http://www.pld.org.pl"; name="http://pld.org.pl";>)
<p>
Vine (<url id="http://www.vinelinux.org"; name="http://www.vinelinux.org";>)
<p>
APT4RPM (<url id="http://apt4rpm.sf.net"; name="http://apt4rpm.sf.net";>)
</chapt>

<chapt id="agradecimentos">Crédits
<p>
Un grand merci à mes amis du projet Debian-BR, et à Debian elle-même, qui m'aide
constamment et me donne toujours la force à continuer à travailler pour le
bénéfice de l'humanité, aussi bien qu'en m'aidant dans mon but de sauver le
monde. :)
<p>
Je veux aussi remercier le CIPSGA pour l'énorme aide qu'elle a donné à notre
projet et pour tout les projets libre qu'elle met en marche par de belles idées.
<p>
Et des remerciements particuliers&nbsp;:
<p>
Yooseong Yang &lt;yooseong@debian.org&gt; - pour la traduction du manuel en
coréen.
<p>
Michael Bramer &lt;grisu@debian.org&gt; - pour la suggestion de l'inclusion de la
section sur la conservation d'une version spécifique.
<p>
Bryan Stillwell &lt;bryan@bokeoa.com&gt; - pour les divers patches et
corrections qu'il m'a envoyé.
<p>
Pawel Tecza  &lt;pawel.tecza@poczta.fm&gt; - pour l'écriture de la section sur
netselect.
<p>
Steve Langasek &lt;vorlon@netexpress.net&gt; - pour la traduction du manuel en
anglais.
<p>
Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt; - pour sa contribution à
la liste des distributions supplémentaires qui supportent maintenant APT&nbsp;:
Mandrake, PLD et Vine.
<p>
Erik Rossen &lt;rossen@freesurf.ch&gt; - pour l'astuce sur la variable COLUMNS
pour dpkg -l.
<p>
Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt; - pour l'astuce sur
l'utilisation de -o Debug::pkgProblemResolver=yes.
<p>
Matt Kraai &lt;kraai@debian.org&gt; - pour les divers patches et corrections
qu'il m'a envoyé.
<p>
Aaron M. Ucko &lt;ucko@debian.org&gt; - pour ces relectures et corrections.
</chapt>

<chapt id="novas">Nouvelles versions de ce manuel
<p>
Ce manuel fût créé pour le projet <url id="http://debian-br.cipsga.org.br";
name="Debian-BR">, dans le but d'assisté tous les jours à l'utilisation de
Debian.
<p>
Des nouvelles versions de ce document seront disponible dans la page du projet, à
<url id="http://debian-br.cipsga.org.br/suporte/documentacao.html";
name="http://debian-br.cipsga.org.br/suporte/documentacao.html";>.
<p>
Les commentaires et critiques peuvent m'être envoyé directement par courriel à
<email>kov@debian.org</email>.
</chapt>

</book>
<!--  (<tt>/usr/share/doc/packagename</tt>) -->
</debiandoc>

Reply to: