« Les gestionnaires de paquets debian : apt, aptitude, dpkg » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
(10 versions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
Voici les mirroirs que j'utilise, adaptez les en fonction de votre zone géographique :
Voici les mirroirs que j'utilise, adaptez les en fonction de votre zone géographique :
<pre>
<pre>
deb http://ftp.fr.debian.org/debian lenny main contrib non-free
deb http://ftp.fr.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian lenny main contrib non-free
deb-src http://ftp.fr.debian.org/debian squeeze main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
 
deb-src http://security.debian.org/ lenny/updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
 
#anciennement debian-volatile
deb http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free


#le dépôt volatile contient des mises à jours pour certains paquets en dehors des mises à jour de sécurités (clamav, ...)
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
</pre>
</pre>


=Mise à jour des paquets=
=apt ou aptitude ?=
 
J'aurai tendance à recommande l'usage suivant, sans aucune obligation cependant :
* apt est recommandé pour l'installation du système et les mises à jour majeures (passage de Debian X.Y a Z.Y). C'est par ailleurs l'outil proposé la plupart du temps par la documentation "upgrade-note" de debian pour les mises à jours majeures (sauf une fois a ma connaissance ou aptitude était préféré).
* aptitude est recommandé pour la gestion quotidienne des paquets
 
=aptitude=


Je préfère utiliser aptitude plutôt que apt-get.
Pour mettre à jour la liste des paquets disponibles, tapez:
Pour mettre à jour la liste des paquets disponibles, tapez:
<pre>
<pre>
Ligne 45 : Ligne 53 :
Pour installer le paquet xxx
Pour installer le paquet xxx
<pre>aptitude install xxx</pre>
<pre>aptitude install xxx</pre>
Pour installer uniquement les dépendances et pas les paquets recommandés :
<pre>aptitude --without-recommends intall xxx</pre>
Pour installer un paquet issu du dépot backport de jessie (a condition d'avoir configuré le dépot jessie-backports dans <code>/etc/apt/sources.list</code> :
<pre>aptitude -t jessie-backports install xxx</pre>


Pour désinstaller un paquet xxx
Pour désinstaller un paquet xxx
Ligne 57 : Ligne 71 :
Pour installer un paquet dans une release spécifique, utilisez l'option <code>-t <release></code> :
Pour installer un paquet dans une release spécifique, utilisez l'option <code>-t <release></code> :
<pre>aptitude -t unstable install xxx</pre>
<pre>aptitude -t unstable install xxx</pre>
Pour simuler l'action voulue :
<pre>aptitude --simulate install package</pre>


Pour de l'aide sur aptitude vous pouvez utiliser l'une de ces deux commandes :
Pour de l'aide sur aptitude vous pouvez utiliser l'une de ces deux commandes :
Ligne 64 : Ligne 81 :
</pre>
</pre>


=Downgrader un packet et empêcher sa mise à jour ultérieur=
<pre>
apt-cache policy package
</pre>
 
=Pin : downgrader un packet et empêcher sa mise à jour ultérieur=


Dans certains cas, vous voudrez peut-être installer une version précédente d'un paquet. C'était par exemple mon cas lorsque debian lenny était en testing et qu'un bug dans la version 1.2.28 de <code>rrdtool</code> empêchait d'avoir des graphiques avec une légende pour Cacti. La solution était simple : installer la version etch (1.2.28-1 a cette époque) de <code>rrdtool</code> et <code>librrd2</code>. Pour installer la version etch de ces paquets (nécessite d'avoir les dépôts etch dans votre fichier /etc/apt/sources.list) :
Dans certains cas, vous voudrez peut-être installer une version précédente d'un paquet. C'était par exemple mon cas lorsque debian lenny était en testing et qu'un bug dans la version 1.2.28 de <code>rrdtool</code> empêchait d'avoir des graphiques avec une légende pour Cacti. La solution était simple : installer la version etch (1.2.28-1 a cette époque) de <code>rrdtool</code> et <code>librrd2</code>. Pour installer la version etch de ces paquets (nécessite d'avoir les dépôts etch dans votre fichier /etc/apt/sources.list) :
Ligne 88 : Ligne 109 :
Pin: release a=stable
Pin: release a=stable
Pin-Priority: 1001
Pin-Priority: 1001
</pre>
Cela permet par exemple de downgrader toute la distribution (cette méthode reste peu fiable).
=Installer un paquet testing dans la distribution stable=
Créez le fichier <code>/etc/apt/apt.conf</code> contenant :
<pre>APT::Default-Release "stable";</pre>
Puis ajoutez les dépots testing dans <code>/etc/apt/sources.list</code>
Mettez a jour les paquets, et forcez l'installation du paquet en testing avec l'option -t :
<pre>
aptitude update
aptitude -t testing install <paquet>
</pre>
=dpkg=
==lister les paquets installés==
<pre>
dpkg --get-selections
</pre>
<pre>
dpkg -l
dpkg -l | grep '^ii'
dpkg -l tracerou*
</pre>
</pre>

Version du 24 mars 2016 à 01:55

Le fichier /etc/apt/sources.list

Modifiez le fichier /etc/apt/sources.list afin d'utiliser les miroirs voulus. Voici les mirroirs que j'utilise, adaptez les en fonction de votre zone géographique :

deb http://ftp.fr.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

#anciennement debian-volatile
deb http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian squeeze-updates main contrib non-free

apt ou aptitude ?

J'aurai tendance à recommande l'usage suivant, sans aucune obligation cependant :

  • apt est recommandé pour l'installation du système et les mises à jour majeures (passage de Debian X.Y a Z.Y). C'est par ailleurs l'outil proposé la plupart du temps par la documentation "upgrade-note" de debian pour les mises à jours majeures (sauf une fois a ma connaissance ou aptitude était préféré).
  • aptitude est recommandé pour la gestion quotidienne des paquets

aptitude

Pour mettre à jour la liste des paquets disponibles, tapez:

aptitude update

Vous pouvez maintenant mettre à jour les paquets installés:

aptitude safe-upgrade

Il est aussi possible d'effectuer une mise à niveau vers une nouvelle version de debian avec full-upgrade. Cette option permet aussi la mise à jour de certains paquets ne se mettant pas à jour avec un simple safe-upgrade (comme apt-get par exemple)

aptitude full-upgrade

Quelques commandes utiles

Voici les commandes les plus usuelles de aptitude

Avant d'essayer d'installer un paquet, il vous faudra trouver son nom exact. Pour cela, utilisez

aptitude search xxx

Pour des informations sur un paquet :

aptitude show xxx

Pour installer le paquet xxx

aptitude install xxx

Pour installer uniquement les dépendances et pas les paquets recommandés :

aptitude --without-recommends intall xxx

Pour installer un paquet issu du dépot backport de jessie (a condition d'avoir configuré le dépot jessie-backports dans /etc/apt/sources.list :

aptitude -t jessie-backports install xxx

Pour désinstaller un paquet xxx

aptitude remove xxx

Pour désinstaller un paquet xxx et supprimer les fichiers de configurations correspondants:

 aptitude purge xxx

L'archive de chaque paquet installé et désinstallé est conservé sur le disque dur. Vous pouvez supprimer ces archives en utilisant :

 aptitude clean 

Pour installer un paquet dans une release spécifique, utilisez l'option -t <release> :

aptitude -t unstable install xxx

Pour simuler l'action voulue :

aptitude --simulate install package

Pour de l'aide sur aptitude vous pouvez utiliser l'une de ces deux commandes :

aptitude --help
man aptitude
apt-cache policy package

Pin : downgrader un packet et empêcher sa mise à jour ultérieur

Dans certains cas, vous voudrez peut-être installer une version précédente d'un paquet. C'était par exemple mon cas lorsque debian lenny était en testing et qu'un bug dans la version 1.2.28 de rrdtool empêchait d'avoir des graphiques avec une légende pour Cacti. La solution était simple : installer la version etch (1.2.28-1 a cette époque) de rrdtool et librrd2. Pour installer la version etch de ces paquets (nécessite d'avoir les dépôts etch dans votre fichier /etc/apt/sources.list) :

aptitude install rrdtool/stable librrd2/stable

Vous pouvez aussi forcer une version précise d'un paquet de cette manière :

aptitude install rrdtool=1.2.15-0.3 librrd2=1.2.15-0.3

Il faut ensuite empêcher la mise à jour des paquets que nous avons downgradé lors d'un upgrade. Editez le fichier /etc/apt/preferences et ajoutez y les lignes suivantes :

Package: rrdtool
Pin: version 1.2.15*
Pin-Priority: 1001

Package: librrd2
Pin: version 1.2.15*
Pin-Priority: 1001

On peut même mettre un pin sur toute une release :

Package: *
Pin: release a=stable
Pin-Priority: 1001

Cela permet par exemple de downgrader toute la distribution (cette méthode reste peu fiable).

Installer un paquet testing dans la distribution stable

Créez le fichier /etc/apt/apt.conf contenant :

APT::Default-Release "stable";

Puis ajoutez les dépots testing dans /etc/apt/sources.list

Mettez a jour les paquets, et forcez l'installation du paquet en testing avec l'option -t :

aptitude update
aptitude -t testing install <paquet>

dpkg

lister les paquets installés

dpkg --get-selections
dpkg -l
dpkg -l | grep '^ii'
dpkg -l tracerou*