« Les gestionnaires de paquets debian : apt, aptitude, dpkg » : différence entre les versions
Aucun résumé des modifications |
(→apt) |
||
(27 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:serveur]] | |||
[[Category:Desktop]] | |||
[[Category:debian]] | [[Category:debian]] | ||
[[Category:ubuntu]] | |||
[[Category:apt]] | |||
=Le fichier /etc/apt/sources.list= | =Le fichier /etc/apt/sources.list= | ||
Modifiez le fichier <code>/etc/apt/sources.list</code> afin d'utiliser les miroirs voulus. | Modifiez le fichier <code>/etc/apt/sources.list</code> afin d'utiliser les miroirs voulus. | ||
Voici les | Voici les miroirs que j'utilise, adaptez les en fonction de votre zone géographique : | ||
<pre> | <pre> | ||
deb http:// | # stable | ||
deb-src http:// | deb http://deb.debian.org/debian/ bullseye main contrib non-free | ||
deb | deb-src http://deb.debian.org/debian/ bullseye main contrib non-free | ||
# | deb http://security.debian.org/debian-security bullseye-security main contrib non-free | ||
deb http:// | deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free | ||
# bullseye-updates, previously known as 'volatile' | |||
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free | |||
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free | |||
</pre> | </pre> | ||
= | =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: | Pour mettre à jour la liste des paquets disponibles, tapez: | ||
<pre> | <pre> | ||
Ligne 34 : | Ligne 46 : | ||
=Quelques commandes utiles= | =Quelques commandes utiles= | ||
Voici les commandes les plus usuelles de aptitude | Voici les commandes les plus usuelles de aptitude et apt | ||
Avant d'essayer d'installer un paquet, il vous faudra trouver son nom exact. Pour cela, utilisez | Avant d'essayer d'installer un paquet, il vous faudra trouver son nom exact. Pour cela, utilisez | ||
Ligne 44 : | Ligne 56 : | ||
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 53 : | Ligne 71 : | ||
L'archive de chaque paquet installé et désinstallé est conservé sur le disque dur. Vous pouvez supprimer ces archives en utilisant : | L'archive de chaque paquet installé et désinstallé est conservé sur le disque dur. Vous pouvez supprimer ces archives en utilisant : | ||
<pre> aptitude clean </pre> | <pre> aptitude clean </pre> | ||
Pour installer un paquet dans une release spécifique, utilisez l'option <code>-t <release></code> : | |||
<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 60 : | Ligne 84 : | ||
</pre> | </pre> | ||
Voir l'état de la priorité des dépots ou d'un packet : | |||
<pre> | |||
apt-cache policy | |||
apt-cache policy package | |||
</pre> | |||
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) : | =apt= | ||
Listez et supprimer les configurations résiduelles des paquets supprimés : | |||
<pre> | |||
apt list '~c' | |||
apt purge '~c' | |||
</pre> | |||
Listez et supprimer les paquets obsolètes : | |||
<pre> | |||
apt list '~o' | |||
apt purge '~o' | |||
</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/testing é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/stable (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) : | |||
<pre>aptitude install rrdtool/stable librrd2/stable</pre> | <pre>aptitude install rrdtool/stable librrd2/stable</pre> | ||
Ligne 77 : | Ligne 121 : | ||
Pin: version 1.2.15* | Pin: version 1.2.15* | ||
Pin-Priority: 1001 | Pin-Priority: 1001 | ||
</pre> | |||
Notez qu'on peut aussi pin sur la version de la distribution : <code>Pin: release o=Debian,a=stable</code> ou <code>Pin: release o=Debian,n=etch</code> | |||
=Installer un paquet testing dans la distribution stable= | |||
==Solution 1== | |||
Ajoutez les dépôts testing en plus des dépôts stable dans sources.list : | |||
<pre> | |||
deb http://deb.debian.org/debian/ testing main contrib non-free | |||
deb-src http://deb.debian.org/debian/ testing main contrib non-free | |||
deb http://security.debian.org/debian-security testing-security main contrib non-free | |||
deb-src http://security.debian.org/debian-security testing-security main contrib non-free | |||
deb http://deb.debian.org/debian/ testing-updates main contrib non-free | |||
deb-src http://deb.debian.org/debian/ testing-updates main contrib non-free | |||
</pre> | |||
Créez le fichier <code>/etc/apt/preferences</code> contenant : | |||
<pre> | |||
Package: sshguard | |||
Pin: release o=Debian,a=testing | |||
Pin-Priority: 400 | |||
Package: * | |||
Pin: release o=Debian,a=testing | |||
Pin-Priority: -1 | |||
</pre> | |||
Note : nous utilisez a=testing, mais nous aurions aussi pu utiliser n=release (par exemple n=bookworm) | |||
Vérifiez l'effet avec <code>apt-cache</code> pour un paquet : | |||
<pre> | |||
apt-cache policy systemd | |||
apt-cache policy sshguard | |||
</pre> | |||
==Solution 2== | |||
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> | </pre> |
Dernière version du 15 août 2023 à 17:15
Le fichier /etc/apt/sources.list
Modifiez le fichier /etc/apt/sources.list
afin d'utiliser les miroirs voulus.
Voici les miroirs que j'utilise, adaptez les en fonction de votre zone géographique :
# stable deb http://deb.debian.org/debian/ bullseye main contrib non-free deb-src http://deb.debian.org/debian/ bullseye main contrib non-free deb http://security.debian.org/debian-security bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free # bullseye-updates, previously known as 'volatile' deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian/ bullseye-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 et apt
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
Voir l'état de la priorité des dépots ou d'un packet :
apt-cache policy apt-cache policy package
apt
Listez et supprimer les configurations résiduelles des paquets supprimés :
apt list '~c' apt purge '~c'
Listez et supprimer les paquets obsolètes :
apt list '~o' apt purge '~o'
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/testing é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/stable (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
Notez qu'on peut aussi pin sur la version de la distribution : Pin: release o=Debian,a=stable
ou Pin: release o=Debian,n=etch
Installer un paquet testing dans la distribution stable
Solution 1
Ajoutez les dépôts testing en plus des dépôts stable dans sources.list :
deb http://deb.debian.org/debian/ testing main contrib non-free deb-src http://deb.debian.org/debian/ testing main contrib non-free deb http://security.debian.org/debian-security testing-security main contrib non-free deb-src http://security.debian.org/debian-security testing-security main contrib non-free deb http://deb.debian.org/debian/ testing-updates main contrib non-free deb-src http://deb.debian.org/debian/ testing-updates main contrib non-free
Créez le fichier /etc/apt/preferences
contenant :
Package: sshguard Pin: release o=Debian,a=testing Pin-Priority: 400 Package: * Pin: release o=Debian,a=testing Pin-Priority: -1
Note : nous utilisez a=testing, mais nous aurions aussi pu utiliser n=release (par exemple n=bookworm)
Vérifiez l'effet avec apt-cache
pour un paquet :
apt-cache policy systemd apt-cache policy sshguard
Solution 2
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>