| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| apt-get [Le 21/05/2018, 16:24] – apt-get > apt L'Africain | apt-get [Le 21/02/2021, 11:12] (Version actuelle) – ancienne révision (Le 13/10/2019, 04:01) restaurée Amiralgaby |
|---|
| | {{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é. |
| | |
| | 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>Vous pouvez également utiliser la commande suivante "sudo apt install <packet>", elle a 2 avantages par rapport à apt-get: 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 <packet> <packet 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 ==== |
| | |
| | * <code>sudo apt-get install <paquet(s)> -V</code> L'option ''install'' met à jour les paquets **indiqués** déjà installés, vers leurs dernières versions (rarement utilisé). |
| | |
| | * <code>apt-get --simulate upgrade</code> L'option ''simulate'' simule la mise à jour des paquets sans réellement les installer (rarement utilisé). |
| | |
| | * <code>sudo apt-get upgrade</code> L'option ''upgrade'' met à jour **tous les paquets installés sur le système** vers les dernières versions (couramment utilisé). |
| | |
| | * <code>sudo apt-get dist-upgrade</code> L'option ''dist-upgrade'' met à jour tous les paquets installés vers les dernières versions **en installant de nouveaux paquets si nécessaire**, par opposition à l'upgrade simple qui n'ajoute pas de nouveaux paquets. |
| | |
| | Remarque : taper "man apt-get" dans un terminal donne une réponse en français et une explication plus complète et plus claire. |
| | |
| | ==== 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: |
| | <file>Package: nom_du_paquet |
| | Pin: version du paquet à conserver |
| | Pin-priority: 1001</file> |
| | La Priorité du Pin à 1001 bloque les futures mises à jour :-) |
| | |
| | == Exemple == |
| | Si par exemple vous souhaiter conserver la version 0.8.8 de kaffeine, vous indiquerez dans **/etc/apt/preferences** |
| | <file>Package: kaffeine |
| | Pin: version 0.8.8 |
| | Pin-priority: 1001</file> |
| | Dans le doute, vérifier en tapant la commande **sudo apt-cache policy nom_du_paquet**, pour l'exemple du paquet kaffeine |
| | <code>sudo apt-cache policy kaffeine</code> |
| | |
| | <note tip>Une méthode plus simple (toujours avec le paquet kaffeine): |
| | |
| | //__Pour les utilisateurs d'apt-get__ :// |
| | <code bash>sudo apt-mark hold kaffeine</code> |
| | Pour vérifier que le paquet n'a plus le statut install mais hold ((bloqué)) : |
| | <code bash>apt-mark showhold</code> devrait afficher |
| | <code>kaffeine</code> dans la liste des réponses |
| | |
| | Pour le débloquer : |
| | <code bash>sudo apt-mark unhold kaffeine</code> |
| | [[https://manpages.debian.org/testing/apt/apt-mark.8.fr.html|Source]] |
| | |
| | //__Pour les utilisateurs d'[[:aptitude]]__((merci à cthuluh #debian-fr)):// |
| | |
| | Pour geler un paquet |
| | <code bash>sudo aptitude hold kaffeine</code> |
| | |
| | Pour dégeler un paquet |
| | <code bash>sudo aptitude unhold kaffeine</code> |
| | |
| | Pour lister les paquets gelés : |
| | <code bash>sudo dpkg --list | grep ^hi</code> |
| | ou |
| | <code bash>sudo aptitude search "~ahold"</code> |
| | |
| | Remplacer kaffeine par le paquet que vous voulez bloquer ;)</note> |
| | |
| | ==== Sauvegarde de la liste ==== |
| | Voir [[:tutoriel:comment_sauver_et_restaurer_la_liste_des_paquets|cette page]] pour pouvoir facilement faire une sauvegarde de la liste des paquets installés. |
| | |
| | ==== Mises à jour automatisées ==== |
| | |
| | [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>unattended-upgrades|unattended-upgrades]]** et lire cette [[https://guide.ubuntu-fr.org/server/automatic-updates.html|documentation]] //(en français)//.\\ |
| | Si vous le souhaitez, vous pouvez paramétrer uniquement les mises à jour de sécurité en automatique. |
| | |
| | ==== Mettre en cache pour un déploiement sur réseau local ==== |
| | Si vous disposez d'un réseau local, pour économiser de la bande passante externe lors des mises à jours vous pouvez mettre en cache sur une des machines les paquets téléchargés et les déployer ensuite sur les autres postes en faisant appel à [[:apt-cacher]]. |
| | |
| | ===== Divers ===== |
| | ==== Utiliser un proxy ==== |
| | |
| | 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@exemple.com:port</code> |
| | où : |
| | * //utilisateur// est le nom d'utilisateur pour se connecter au proxy si nécessaire, |
| | * //mot de passe// est le mot de passe éventuellement associé |
| | * //exemple.com// est l'adresse du proxy, |
| | * //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 : |
| | <file> |
| | Acquire::http::Proxy "http://utilisateur:motdepasse@exemple.com:port"; |
| | </file> |
| | |
| | Pour un proxy FTP ajouter une partie comme suit : |
| | <file> |
| | Acquire::ftp |
| | { |
| | Proxy "ftp://exemple.com:port/"; |
| | ProxyLogin |
| | { |
| | "USER $(SITE_USER)@$(SITE)"; |
| | "PASS $(SITE_PASS)"; |
| | } |
| | } |
| | </file> |
| | |
| | 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 ==== |
| | |
| | - Allez dans //Système -> Préférences ->Serveur Mandataire// |
| | - Décochez "Configuration manuelle du serveur mandataire" |
| | - Cochez "Connexion direct à internet" |
| | - Cliquez sur "Appliquer à l'ensemble du système" |
| | - Fermez |
| | - [[: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 |
| | - Après enregistrement, redémarrez votre PC |
| | |
| | Et voilà il n'y a plus de proxy |
| | |
| | ==== Limiter la vitesse téléchargement ==== |
| | [[:tutoriel:comment_modifier_un_fichier|Créer avec les droits d'administration]] le fichier **/etc/apt/apt.conf.d/76download** et copier les lignes suivantes pour limiter le téléchargement.\\ |
| | Par exemple ici à 25kB/s : |
| | <file> |
| | Acquire |
| | { |
| | Queue-mode "access"; |
| | http |
| | { |
| | Dl-Limit "25"; |
| | }; |
| | }; |
| | </file> |
| | |
| | ==== Historique ==== |
| | * Le log (ou historique) des actions de apt-get se trouve dans **/var/log/apt/** |
| | <code> less /var/log/apt/history.log</code> |
| | |
| | **history.log** correspond à l'historique du mois en cours. |
| | |
| | * À la fin de chaque mois, ce fichier est archivé sous la forme history.log.1.gz |
| | On affiche un tel fichier archivé avec zless |
| | <code>zless /var/log/apt/history.log.1.gz </code> |
| | |
| | ===== Voir aussi ===== |
| | |
| | * [[:apt-cli|apt]] |
| | * [[:APT]] |
| | * [[:apt-cache]] |
| | * [[:apt-fast|apt-fast]] |
| | * [[http://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]] .// |
| | |
| |