Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
apt-get [Le 18/05/2018, 12:07] 46.218.140.74 [Bloquer la mise à jour d'un paquet] |
apt-get [Le 08/02/2025, 09:10] (Version actuelle) 92.138.144.23 [Mise à jour de paquets] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>apt gestionnaire_de_paquets installation_logiciel}} | {{tag>apt gestionnaire_de_paquets installation_logiciel}} | ||
+ | ====== apt-get ====== | ||
+ | **Apt-get** est un outil logiciel à utiliser en [[:commande_shell|ligne de commande]].\\ | ||
+ | Il permet d'effectuer l'installation et la désinstallation de paquets en provenance d'un [[:depots|dépôt APT]]. | ||
+ | <note tip>''apt-get'' fournit un retour facilement analysable par un script et garantit une certaine rétro-compatibilité. | ||
- | site off | + | Cependant les fonctionnalités que proposent ''apt-get'' sont également disponibles via la commande [[:apt-cli|apt]], qui est plus conviviale pour l'utilisateur final. Préférez ''apt'' si vous comptez accéder directement à ces fonctionnalités via la ligne de commande.</note> |
+ | ===== Pré-requis ===== | ||
+ | Pour utiliser ''apt-get'', vous devez disposer des [[:sudo|droits d'administration]].\\ | ||
+ | Si vous ne faites que télécharger les codes sources, vous pouvez vous passer des droits d'administration. Les paquets téléchargés sont placés dans votre dossier personnel. | ||
+ | ===== Installation de paquets ===== | ||
+ | <note tip>Directement en ligne de commande (donc en dehors d'un [[:tutoriel:script_shell|script]]), mieux vaut utiliser l'outil [[:apt-cli|apt]] avec la commande ''sudo apt install <paquet>''. Par rapport à ''apt-get'' elle a entre autres comme avantages la coloration du texte pour mieux se repérer, et une barre d'avancement durant la décompression et la configuration des paquets.</note> | ||
+ | <code>sudo apt-get install <paquet> <paquet 2> etc.</code> | ||
+ | ==== Vérifier la version ==== | ||
+ | Avant de lancer l'installation, il est parfois utile de vérifier la version qui sera installée, les dépendances, ...\\ | ||
+ | <code>apt show <nom_du_paquet></code> | ||
+ | ==== Installation d'une version présente dans les dépôts ==== | ||
- | + | * <code>sudo apt-get install <paquet>=<version> -V</code> L'option **''=<version>''** passée à **''apt-get install''** permet d'**installer la version souhaitée du paquet indiqué**. | |
+ | Très utile pour revenir à une version officielle d'un paquet (qui aurait été "upgradé à la main"). | ||
+ | ==== Installation avec réponse oui ==== | ||
+ | * <code>sudo apt-get install -y <paquet(s)></code> L'option -y permet de répondre oui par avance aux demandes de confirmations. Utile pour une utilisation dans un script, par exemple. | ||
+ | ==== Réparer une installation ==== | ||
+ | Bien que ce cas de figure soit un peu rare, il peut arriver qu'une dépendance vienne à manquer à un logiciel installé sur votre système.\\ | ||
+ | La commande suivante permettra de résoudre le problème : | ||
+ | <code>sudo apt-get install -f</code> | ||
+ | Il faut cependant que la dépendance soit disponible dans les dépôts. | ||
+ | <note tip>Utilisée avec ''install'' ou ''remove'', cette commande exclura le paquet spécifié pour rechercher une solution viable pour le système.\\ | ||
+ | Exemple : | ||
+ | <code>sudo apt-get -f install vlc</code> | ||
+ | recherchera une solution pour faire fonctionner [[vlc|VLC media player]] sans corrompre le système (FIXME). | ||
+ | </note> | ||
+ | ==== Forcer une installation ==== | ||
+ | Il n'existe pas de solution sur apt-get pour forcer une installation. [[dpkg|Dpkg]] a quelques options dans ce sens, mais qui ne résolvent pas toutes les situations pour autant. | ||
+ | <code>sudo dpkg -i --force-overwrite package.deb | ||
+ | sudo dpkg -i --force-all package.deb</code> | ||
+ | ==== Trouver un paquet ==== | ||
+ | Pour rechercher un paquet dans vos [[:dépôts]], tapez simplement la commande suivante : | ||
+ | <code>apt-cache search <word1 word2 ...></code> | ||
+ | |||
+ | L'option ''search'' passée à ''apt-cache'' permet de chercher les paquets contenant certains mots. | ||
+ | |||
+ | <note>Les réponses dépendent de vos dépôts et peuvent donc différer d'un système à l'autre.</note> | ||
+ | |||
+ | <note tip> Pour rechercher un paquet installé, il faut utiliser [[dpkg]], par exemple : | ||
+ | <code>dpkg -l NomDuPaquet</code></note> | ||
+ | |||
+ | ==== Obtention des codes sources ==== | ||
+ | |||
+ | * <code>apt-get source <paquet(s)></code> L'option ''source'' passée à ''apt-get'' permet de **télécharger les paquets de codes sources indiqués**. | ||
+ | |||
+ | **''sudo''** n'est pas utilisé ici parce que ce n'est pas nécessaire. Le paquet sera enregistré dans votre //Dossier Personnel//. | ||
+ | |||
+ | Notez que "apt-get source" se sert des entrées "deb-src" dans le fichier **/etc/apt/sources.list** ou autres dans **/etc/apt/sources.list.d**. | ||
+ | |||
+ | L'instruction "apt-get source" va de pair avec "apt-get build-dep", qui installera les dépendances du paquet. Exemple complet: | ||
+ | <code> | ||
+ | apt-get install build-essential fakeroot | ||
+ | cd /tmp | ||
+ | apt-get source nano | ||
+ | apt-get build-dep nano | ||
+ | cd nano-2.2.6/ | ||
+ | dpkg-buildpackage -rfakeroot -us -b | ||
+ | </code> | ||
+ | |||
+ | ===== Suppression de paquets ===== | ||
+ | |||
+ | ==== Principe ==== | ||
+ | |||
+ | * <code>sudo apt-get remove <paquets(s)></code> L'option ''remove'' permet de **désinstaller les paquets indiqués**. //Ceci laisse toutefois en place les fichiers de configuration de ces paquets.// | ||
+ | * <code>sudo apt-get autoremove <paquets(s)></code> L'option ''autoremove'' permet de **désinstaller les paquets indiqués avec leurs dépendances logicielles**. //Ceci laisse toutefois en place les fichiers de configuration de ces paquets.// | ||
+ | |||
+ | ==== Suppression + purge ==== | ||
+ | |||
+ | * <code>sudo apt-get purge <paquets(s)></code> L'action ''purge'', passée à la commande ''apt-get'', **désinstalle les paquets indiqués **et** leurs fichiers de configuration** ((ceux marqués comme "conffile", souvent placés dans /etc.)). //Les fichiers de préférences((dans les dossiers personnels)), et les logs((dans le /var)) ne sont pas supprimés.// | ||
+ | |||
+ | * <code>sudo apt-get autoremove --purge <paquets(s)></code> L'option ''%%--%%purge'', passée à la commande ''autoremove'', **désinstalle les paquets indiqués, les dépendances logicielles et leurs fichiers de configuration** ((ceux marqués comme "conffile", souvent placés dans /etc.)). //Les fichiers de préférences((dans les dossiers personnels)), et les journaux (logs) ((dans le /var)) ne sont pas supprimés.// | ||
+ | |||
+ | * <code>sudo apt-get autoremove --purge</code> L'option ''%%--%%purge'', passée à la commande ''autoremove'' **sans** nom de paquet, **désinstalle toutes les dépendances devenues inutiles et leurs fichiers de configuration** ((ceux marqués comme "conffile", souvent placés dans /etc.)). //Les fichiers de préférences((dans les dossiers personnels)), les journaux (logs) ((dans le /var)) et ceux, des anciens noyaux, marqués "d'installation manuelle" ne sont pas supprimés.// | ||
+ | |||
+ | ==== Suppression de paquets d'installation ==== | ||
+ | |||
+ | APT conserve une copie de chaque paquet installé et désinstallé sur votre disque dur (dans le dossier ///var/cache/apt/archives//). Utiliser les options ci-dessous permet de récupérer de l'espace disque par le nettoyage correspondant à l'option. | ||
+ | |||
+ | * <code>sudo apt-get clean</code> L'option ''clean'', option radicale, **supprime la totalité des paquets** présents dans ///var/cache/apt/archives//. (//Notez que cela n'a aucun impact sur les paquets installés.//) | ||
+ | * <code>sudo apt-get autoclean</code> L'option ''autoclean'' permet de **supprimer les paquets** présents dans ///var/cache/apt/archives// , mais **en conservant ceux qui ont un équivalent dans les dépôts**; par exemple, si ///var/cache/apt/archives// contient plusieurs versions du même logiciel, les plus anciennes, plus présentes dans les dépôts, seront supprimées, mais la version à jour (ayant un équivalent dans le dépôt) sera conservée. //Ceci vous permet de récupérer beaucoup d'espace disque//, mais moins toutefois qu'avec "clean". | ||
+ | |||
+ | ===== Mises à jour ===== | ||
+ | ==== Mise à jour dépôts ==== | ||
+ | |||
+ | * <code>sudo apt-get update</code> L'option ''update'' **met à jour la liste des fichiers disponibles dans les dépôts APT présents dans le fichier de configuration ''/etc/apt/sources.list''**. L'exécuter régulièrement est une bonne pratique, afin de maintenir à jour votre liste de paquets disponibles. | ||
==== Mise à jour de paquets ==== | ==== Mise à jour de paquets ==== | ||
Ligne 31: | Ligne 117: | ||
Remarque : taper "man apt-get" dans un terminal donne une réponse en français et une explication plus complète et plus claire. | Remarque : taper "man apt-get" dans un terminal donne une réponse en français et une explication plus complète et plus claire. | ||
+ | <note warning>L'option ''upgrade'' renvoie occasionnellement le message **Les paquets suivants ont été conservés** (ou **The following upgrades have been deferred due to phasing** en version 24.04). Cela indique les paquets dont l'arbre des dépendances a changé et pour lesquels le programme n'a pas pris la liberté de les installer de lui-même. Il suffit d'utiliser l'option ''install'' pour en forcer manuellement l'installation.</note> | ||
+ | |||
+ | <note tip>Afin de mettre à jour complètement le système, il est possible d'utiliser les deux commandes suivantes : | ||
+ | <code>sudo apt-get update; sudo apt-get install linux-virtual; sudo apt-get upgrade; sudo apt-get autoremove | ||
+ | sudo apt-get install XXXXXXXXXXXX; sudo apt-get update; sudo apt-get autoremove</code> | ||
+ | ou XXXXXXXXXXXX reprend la liste des paquets conservés.</note> | ||
==== Bloquer la mise à jour d'un paquet ==== | ==== Bloquer la mise à jour d'un paquet ==== | ||
[[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/apt/preferences** (si le fichier n'existe pas, le créer) pour y insérer les lignes suivantes: | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/apt/preferences** (si le fichier n'existe pas, le créer) pour y insérer les lignes suivantes: | ||
Ligne 38: | Ligne 130: | ||
La Priorité du Pin à 1001 bloque les futures mises à jour :-) | La Priorité du Pin à 1001 bloque les futures mises à jour :-) | ||
- | == Exemple == | + | == Exemple == |
Si par exemple vous souhaiter conserver la version 0.8.8 de kaffeine, vous indiquerez dans **/etc/apt/preferences** | Si par exemple vous souhaiter conserver la version 0.8.8 de kaffeine, vous indiquerez dans **/etc/apt/preferences** | ||
<file>Package: kaffeine | <file>Package: kaffeine | ||
Ligne 66: | Ligne 158: | ||
<code bash>sudo aptitude unhold kaffeine</code> | <code bash>sudo aptitude unhold kaffeine</code> | ||
- | Pour lister les paquets gelés : | + | Pour lister les paquets gelés : |
<code bash>sudo dpkg --list | grep ^hi</code> | <code bash>sudo dpkg --list | grep ^hi</code> | ||
ou | ou | ||
Ligne 78: | Ligne 170: | ||
==== Mises à jour automatisées ==== | ==== Mises à jour automatisées ==== | ||
- | [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>unattended-upgrades|unattended-upgrades]]** et lire cette [[https://help.ubuntu.com/14.04/serverguide/automatic-updates.html|documentation]] //(en français)//.\\ | + | [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>unattended-upgrades|unattended-upgrades]]** et lire ce [[https://guide.ubuntu-fr.org/server/automatic-updates.html|guide du server Ubuntu sur les mises à jours automatiques]] //(en français)//.\\ |
Si vous le souhaitez, vous pouvez paramétrer uniquement les mises à jour de sécurité en automatique. | Si vous le souhaitez, vous pouvez paramétrer uniquement les mises à jour de sécurité en automatique. | ||
Ligne 88: | Ligne 180: | ||
Il suffit d'exporter les paramètres du [[:proxy]] à utiliser dans la [[:variables d'environnement|variable d'environnement]] **http_proxy**, sous la forme suivante : | Il suffit d'exporter les paramètres du [[:proxy]] à utiliser dans la [[:variables d'environnement|variable d'environnement]] **http_proxy**, sous la forme suivante : | ||
- | <code>export http_proxy=http://utilisateur:motdepasse@example.com:port</code> | + | <code>export http_proxy=http://utilisateur:motdepasse@exemple.com:port</code> |
où : | où : | ||
- | * //utilisateur// est le nom d'utilisateur pour se connecter au proxy si nécessaire, | + | * //utilisateur// est le nom d'utilisateur pour se connecter au proxy si nécessaire, |
- | * //mot de passe// le mot de passe éventuellement associé | + | * //mot de passe// est le mot de passe éventuellement associé |
- | * //example.com// l'adresse du proxy, | + | * //exemple.com// est l'adresse du proxy, |
- | * //port// le port pour y accéder. | + | * //port// est le port pour y accéder. |
Pour rendre le changement permanent vous pouvez rajouter la ligne dans le fichier **.bashrc** ou créer un fichier **proxy** dans **/etc/apt/apt.conf.d/proxy** puis rajouter la ligne suivante : | Pour rendre le changement permanent vous pouvez rajouter la ligne dans le fichier **.bashrc** ou créer un fichier **proxy** dans **/etc/apt/apt.conf.d/proxy** puis rajouter la ligne suivante : | ||
<file> | <file> | ||
- | Acquire::http::Proxy "http://utilisateur:motdepasse@example.com:port"; | + | Acquire::http::Proxy "http://utilisateur:motdepasse@exemple.com:port"; |
</file> | </file> | ||
Ligne 104: | Ligne 196: | ||
Acquire::ftp | Acquire::ftp | ||
{ | { | ||
- | Proxy "ftp://proxy:2121/"; | + | Proxy "ftp://exemple.com:port/"; |
ProxyLogin | ProxyLogin | ||
{ | { | ||
Ligne 112: | Ligne 204: | ||
} | } | ||
</file> | </file> | ||
- | N'oubliez pas, bien sûr, de changer le nom d'hôte proxy et le port. | + | |
+ | où : | ||
+ | * //exemple.com// est l'adresse du proxy, | ||
+ | * //port// est le port pour y accéder. | ||
+ | |||
+ | N'oubliez pas, bien sûr, de changer le nom d'hôte //exemple.com// et le //port//. | ||
==== Suppression d'un proxy ==== | ==== Suppression d'un proxy ==== | ||
- | //Testé sur [[:karmic|Ubuntu 9.10]].// | + | |
- Allez dans //Système -> Préférences ->Serveur Mandataire// | - Allez dans //Système -> Préférences ->Serveur Mandataire// | ||
- Décochez "Configuration manuelle du serveur mandataire" | - Décochez "Configuration manuelle du serveur mandataire" | ||
Ligne 121: | Ligne 218: | ||
- Cliquez sur "Appliquer à l'ensemble du système" | - Cliquez sur "Appliquer à l'ensemble du système" | ||
- Fermez | - Fermez | ||
- | - [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/apt/apt.conf** | + | - [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/apt/apt.conf.d/proxy** |
- Effacez la ou les ligne(s) en rapport avec le proxy | - Effacez la ou les ligne(s) en rapport avec le proxy | ||
- Après enregistrement, redémarrez votre PC | - Après enregistrement, redémarrez votre PC | ||
Ligne 151: | Ligne 248: | ||
<code>zless /var/log/apt/history.log.1.gz </code> | <code>zless /var/log/apt/history.log.1.gz </code> | ||
+ | ===== Voir aussi ===== | ||
+ | * [[:apt-cli|apt]] | ||
+ | * [[:APT]] | ||
+ | * [[:apt-cache]] | ||
+ | * [[:apt-fast|apt-fast]] | ||
+ | * [[https://www.debian.org/doc/manuals/apt-howto/ch-apt-get.fr.html|Manuel Debian sur APT : Gestion des paquets]] | ||
+ | * [[:probleme_apt|Problèmes avec les gestionnaires de paquets]] | ||
+ | ---- | ||
+ | //Contributeurs : [[:utilisateurs:trhilkil|TrHiLKiL]], [[:utilisateurs:ste]], Emmanuel Gontcho, [[:utilisateurs:david96|david96]], [[:utilisateurs:boogy]], [[:utilisateurs:crustyourmind|Crustyourmind]] .// |