Aller au contenu

« APT » : différence entre les versions

De Marmits Wiki
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
== Paquets APT ==
== Paquets APT ==
==== Liste des paquets récemment mis à jour ====
=== Liste des paquets récemment mis à jour ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
ls -lt /var/lib/dpkg/info/*.list | head -n 50
ls -lt /var/lib/dpkg/info/*.list | head -n 50
</syntaxhighlight>
</syntaxhighlight>


==== Mise à jour de la liste des paquets ====
=== Mise à jour de la liste des paquets ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt update
sudo apt update
</syntaxhighlight>
</syntaxhighlight>


==== Voir ce qui peut être mis à jour ====
=== Voir ce qui peut être mis à jour ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt list --upgradable
sudo apt list --upgradable
</syntaxhighlight>
</syntaxhighlight>
==== Installation ====
=== Installation ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt install --only-upgrade firefox  
sudo apt install --only-upgrade firefox  
</syntaxhighlight>
</syntaxhighlight>


===== Ne gère pas les dépendances =====
==== Ne gère pas les dépendances ====
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt upgrade  
sudo apt upgrade  
</syntaxhighlight>
</syntaxhighlight>
===== Gère les dépendances =====
==== Gère les dépendances ====
(permet l'installation de nouveaux paquets pour résoudre les dépendances)
(permet l'installation de nouveaux paquets pour résoudre les dépendances)
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
Ligne 34 : Ligne 34 :
</syntaxhighlight>
</syntaxhighlight>


==== Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires ====
=== Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires ===
Supprime les anciens noyaux installés
Supprime les anciens noyaux installés
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
Ligne 40 : Ligne 40 :
</syntaxhighlight>
</syntaxhighlight>


==== Supprimez le cache des paquets qui ne peuvent plus être téléchargés ====
=== Supprimez le cache des paquets qui ne peuvent plus être téléchargés ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt autoclean
sudo apt autoclean
</syntaxhighlight>
</syntaxhighlight>
==== Télécharge et installe les dépendances manquantes pour réparer les paquets cassés. ====
=== Télécharge et installe les dépendances manquantes pour réparer les paquets cassés. ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo apt --fix-broken install
sudo apt --fix-broken install
</syntaxhighlight>
</syntaxhighlight>


==== Termine la configuration des paquets interrompus. ====
=== Termine la configuration des paquets interrompus. ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo dpkg --configure -a
sudo dpkg --configure -a
Ligne 59 : Ligne 59 :
</syntaxhighlight>
</syntaxhighlight>


==== voir tous les paquets ====  
=== voir tous les paquets ===  
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg --list
dpkg --list
Ligne 72 : Ligne 72 :
</syntaxhighlight>
</syntaxhighlight>


==== voir si un paquet est à jour ====  
=== voir si un paquet est à jour ===  
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
apt-cache policy firefox  
apt-cache policy firefox  
</syntaxhighlight>
</syntaxhighlight>


==== compter les paquets installés sur Ubuntu ====
=== compter les paquets installés sur Ubuntu ===
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
sudo dpkg-query -f '${binary:Package}\n' -W | wc -l
sudo dpkg-query -f '${binary:Package}\n' -W | wc -l
Ligne 84 : Ligne 84 :
</syntaxhighlight>
</syntaxhighlight>


==== voir si des paquets sont cassés ====
=== voir si des paquets sont cassés ===
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
  apt-get check
  apt-get check
Ligne 92 : Ligne 92 :
</syntaxhighlight>
</syntaxhighlight>


==== Nettoyer rc ====
=== Nettoyer rc ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P
dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P
Ligne 98 : Ligne 98 :
source:https://www.debian-fr.org/t/paquets-casses-comment-les-lister/16997/5
source:https://www.debian-fr.org/t/paquets-casses-comment-les-lister/16997/5


==== Trouver le nom exact des packages de noyau que vous souhaitez désinstaller ====
=== Trouver le nom exact des packages de noyau que vous souhaitez désinstaller ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
  dpkg -l | grep "linux-[a-z]*-"
  dpkg -l | grep "linux-[a-z]*-"
</syntaxhighlight>
</syntaxhighlight>


==== Rechercher des informations sur les paquets installés ====
=== Rechercher des informations sur les paquets installés ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg-query -l '*curl*'
dpkg-query -l '*curl*'
</syntaxhighlight>
</syntaxhighlight>


==== Obtenir plus de détails sur un paquet spécifique ====
=== Obtenir plus de détails sur un paquet spécifique ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg-query -s curl
dpkg-query -s curl
</syntaxhighlight>
</syntaxhighlight>


==== Rechercher des fichiers appartenant à un paquet ====
=== Rechercher des fichiers appartenant à un paquet ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg-query -S curl
dpkg-query -S curl
</syntaxhighlight>
</syntaxhighlight>


==== Lister tous les fichiers installés par un paquet ====
=== Lister tous les fichiers installés par un paquet ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg-query -L curl
dpkg-query -L curl
Ligne 125 : Ligne 125 :
-----
-----


==== <span style="font-size: 1.2em;">phased => déféré (retardé)</span> ====
=== <span style="font-size: 1.2em;">phased => déféré (retardé)</span> ===


Cette commande permet de calculer un score entre 0 et 99 à partir de votre machine-id, utilisé par Ubuntu pour les phased updates (mises à jour progressives).  
Cette commande permet de calculer un score entre 0 et 99 à partir de votre machine-id, utilisé par Ubuntu pour les phased updates (mises à jour progressives).  


===== 1 .Calcul du Score de Phase =====  
==== 1 .Calcul du Score de Phase ====  
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
echo $((0x$(cut -c1-16 /etc/machine-id | head -c 8) % 100))
echo $((0x$(cut -c1-16 /etc/machine-id | head -c 8) % 100))
Ligne 140 : Ligne 140 :
<span id="résumé"></span>
<span id="résumé"></span>


===== 2. Résumé =====
==== 2. Résumé ====
{| class="wikitable"
{| class="wikitable"
|-
|-
Ligne 170 : Ligne 170 :
<span id="à-quoi-sert-ce-score"></span>
<span id="à-quoi-sert-ce-score"></span>


===== 3. À Quoi Sert Ce Score ? =====
==== 3. À Quoi Sert Ce Score ? ====


* '''Phased Updates''' : Ubuntu déploie les mises à jour par vagues (ex : 10%, 30%, 50% des machines).<br />
* '''Phased Updates''' : Ubuntu déploie les mises à jour par vagues (ex : 10%, 30%, 50% des machines).<br />
Ligne 181 : Ligne 181 :
<span id="pourquoi-cette-méthode"></span>
<span id="pourquoi-cette-méthode"></span>


===== 4. Pourquoi Cette Méthode ? =====
==== 4. Pourquoi Cette Méthode ? ====


* '''Déterminisme''' : Le score est '''toujours le même''' pour votre machine (car basé sur <code>machine-id</code>).<br />
* '''Déterminisme''' : Le score est '''toujours le même''' pour votre machine (car basé sur <code>machine-id</code>).<br />
Ligne 187 : Ligne 187 :
* '''Répartition uniforme''' : Les scores sont distribués entre 0 et 99 pour équilibrer le déploiement.
* '''Répartition uniforme''' : Les scores sont distribués entre 0 et 99 pour équilibrer le déploiement.


===== 5. Lister tous les fichiers <code>phased</code> =====
==== 5. Lister tous les fichiers <code>phased</code> ====


<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
Ligne 211 : Ligne 211 :


== Noyau ==
== Noyau ==
==== Lister tous les paquets liés au noyau installés sur votre système avec la commande suivante ====
=== Lister tous les paquets liés au noyau installés sur votre système avec la commande suivante ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg --list | grep linux-image
dpkg --list | grep linux-image
</syntaxhighlight>
</syntaxhighlight>
==== Lister les fichiers dans le répertoire /boot pour voir les versions du noyau installées ====
=== Lister les fichiers dans le répertoire /boot pour voir les versions du noyau installées ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
ls -l /boot | grep vmlinuz
ls -l /boot | grep vmlinuz
</syntaxhighlight>
</syntaxhighlight>
==== Vérifier quel noyau est actuellement en cours d'utilisation ====
=== Vérifier quel noyau est actuellement en cours d'utilisation ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
uname -r
uname -r
</syntaxhighlight>
</syntaxhighlight>
==== Voir noyau version ====
=== Voir noyau version ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
uname -a
uname -a
</syntaxhighlight>
</syntaxhighlight>


==== Voir noyaux installés ====
=== Voir noyaux installés ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
Ligne 236 : Ligne 236 :
</syntaxhighlight>
</syntaxhighlight>


==== Lister les paquets de noyau installés et leur taille ====
=== Lister les paquets de noyau installés et leur taille ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | grep linux-image
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | grep linux-image
</syntaxhighlight>
</syntaxhighlight>


==== Vérifier l'espace disque utilisé dans /boot  ====
=== Vérifier l'espace disque utilisé dans /boot  ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
sudo du -sh /boot/*
sudo du -sh /boot/*
</syntaxhighlight>
</syntaxhighlight>


==== Pour obtenir plus de détails sur un paquet de noyau spécifique, y compris sa taille  ====
=== Pour obtenir plus de détails sur un paquet de noyau spécifique, y compris sa taille  ===
Liste
Liste
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
Ligne 256 : Ligne 256 :
</syntaxhighlight>
</syntaxhighlight>


==== Supprimer des anciens noyaux ====
=== Supprimer des anciens noyaux ===
Debian propose un script appelé purge-old-kernels qui peut automatiser la suppression des anciens noyaux. Vous pouvez l'installer et l'utiliser comme suit :
Debian propose un script appelé purge-old-kernels qui peut automatiser la suppression des anciens noyaux. Vous pouvez l'installer et l'utiliser comme suit :
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>

Version du 21 mai 2025 à 20:35

Paquets APT

Liste des paquets récemment mis à jour

ls -lt /var/lib/dpkg/info/*.list | head -n 50

Mise à jour de la liste des paquets

sudo apt update

Voir ce qui peut être mis à jour

sudo apt list --upgradable

Installation

sudo apt install --only-upgrade firefox

Ne gère pas les dépendances

sudo apt upgrade

Gère les dépendances

(permet l'installation de nouveaux paquets pour résoudre les dépendances)

sudo apt --with-new-pkgs upgrade

(peut également supprimer des paquets pour satisfaire les dépendances) => plus agressive

sudo apt full-upgrade

Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires

Supprime les anciens noyaux installés

sudo apt-get autoremove --purge

Supprimez le cache des paquets qui ne peuvent plus être téléchargés

sudo apt autoclean

Télécharge et installe les dépendances manquantes pour réparer les paquets cassés.

sudo apt --fix-broken install

Termine la configuration des paquets interrompus.

sudo dpkg --configure -a

Utilisez les deux commandes en combo si nécessaire :

sudo apt --fix-broken install
sudo dpkg --configure -a

voir tous les paquets

dpkg --list

ou

dpkg --get-selections

ou

apt list --installed

voir si un paquet est à jour

apt-cache policy firefox

compter les paquets installés sur Ubuntu

sudo dpkg-query -f '${binary:Package}\n' -W | wc -l
# ou
sudo apt list --installed | wc -l

voir si des paquets sont cassés

 apt-get check
 dpkg -l | grep -v ^ii
 dpkg -l | grep ^rc #(installé et reste des fichiers de configuration)
 dpkg -l | grep ^iB #(installé et avec des dépendances cassées)

Nettoyer rc

dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P

source:https://www.debian-fr.org/t/paquets-casses-comment-les-lister/16997/5

Trouver le nom exact des packages de noyau que vous souhaitez désinstaller

 dpkg -l | grep "linux-[a-z]*-"

Rechercher des informations sur les paquets installés

dpkg-query -l '*curl*'

Obtenir plus de détails sur un paquet spécifique

dpkg-query -s curl

Rechercher des fichiers appartenant à un paquet

dpkg-query -S curl

Lister tous les fichiers installés par un paquet

dpkg-query -L curl

phased => déféré (retardé)

Cette commande permet de calculer un score entre 0 et 99 à partir de votre machine-id, utilisé par Ubuntu pour les phased updates (mises à jour progressives).

1 .Calcul du Score de Phase

echo $((0x$(cut -c1-16 /etc/machine-id | head -c 8) % 100))

ou

awk '{print strtonum("0x" substr($0,1,8)) % 100}' /etc/machine-id

2. Résumé

Étape Action Exemple
1 Extraire les 16 premiers caractères de /etc/machine-id a1b2c3d4e5f6g7h
2 Garder les 8 premiers caractères a1b2c3d4
3 Convertir en décimal (hexadécimal 0x...) 2712849364
4 Appliquer % 100 64
5 Score final 64

3. À Quoi Sert Ce Score ?

  • Phased Updates : Ubuntu déploie les mises à jour par vagues (ex : 10%, 30%, 50% des machines).
  • Votre score (64) détermine si vous recevez une mise à jour :
    • Si la phase actuelle est ≤ 64 → Vous l’obtenez.
    • Si la phase est > 64 → Vous devrez attendre.

4. Pourquoi Cette Méthode ?

  • Déterminisme : Le score est toujours le même pour votre machine (car basé sur machine-id).
  • Répartition uniforme : Les scores sont distribués entre 0 et 99 pour équilibrer le déploiement.

5. Lister tous les fichiers phased

#check_phased_updates.sh
#!/bin/bash

# Liste des paquets en phased updates
PACKAGES=$(apt list --upgradable | grep -E "*" | cut -d'/' -f1)
echo "Checking phased updates"
# Parcourir chaque paquet et extraire le pourcentage de phased updates
for PACKAGE in $PACKAGES; do
    echo $PACKAGE
    apt-cache policy $PACKAGE | grep "phased"
done
chmod +x check_phased_updates.sh
./check_phased_updates.sh

Noyau

Lister tous les paquets liés au noyau installés sur votre système avec la commande suivante

dpkg --list | grep linux-image

Lister les fichiers dans le répertoire /boot pour voir les versions du noyau installées

ls -l /boot | grep vmlinuz

Vérifier quel noyau est actuellement en cours d'utilisation

uname -r

Voir noyau version

uname -a

Voir noyaux installés

dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
dpkg --get-selections | grep 'linux-.*-v'

Lister les paquets de noyau installés et leur taille

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | grep linux-image

Vérifier l'espace disque utilisé dans /boot

sudo du -sh /boot/*

Pour obtenir plus de détails sur un paquet de noyau spécifique, y compris sa taille

Liste

dpkg --list | grep linux-image

Puis

apt show linux-image-X.Y.Z-W-generic

Supprimer des anciens noyaux

Debian propose un script appelé purge-old-kernels qui peut automatiser la suppression des anciens noyaux. Vous pouvez l'installer et l'utiliser comme suit :

sudo apt-get install byobu
sudo purge-old-kernels

Ce script supprimera automatiquement les anciens noyaux tout en conservant le noyau actuel et un noyau de secours.

APTITUDE

sudo aptitude update
aptitude search '~U'
sudo aptitude upgrade