{{tag>apt paquet gestionnaire_de_paquets}}
----
====== 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]].
Depuis [[http://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=names&keywords=apt|apt-get 0.7]] (et donc sur toutes les versions actuellement supportées d'Ubuntu), **apt-get** et **[[:aptitude]]**, (et par conséquent aussi les interfaces graphiques qui les utilisent, par ex **Synaptic** et la **Logithèque Ubuntu**), partagent les mêmes informations. L'utilisation alternée de l'un ou l'autre ne présente donc pas de risque. [[http://raphaelhertzog.com/2011/06/20/apt-get-aptitude-%E2%80%A6-pick-the-right-debian-package-manager-for-you|Source]]
**À partir d’Ubuntu 14.04:** La commande **apt** centralise les actions les plus communes pour l'utilisateur classique (install/remove/full-upgrade/search/list) et ajoute quelques fonctionnalités de façon à rendre l'usage de celles-ci plus "sympathiques" (couleurs dans les retours + certaines actions activées par défaut), voir **man apt** pour plus d'informations.
===== 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 =====
Vous pouvez également utiliser la commande suivante "sudo apt install ", 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.
sudo apt-get install etc ...
==== Installation d'une version présente dans les dépôts ====
* sudo apt-get install = -V
L'option **''=''** 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 ====
* sudo apt-get install -y
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 :
sudo apt-get install -f
FIXME Que se passe-t-il si la dépendance n'est pas disponible dans les dépôts ?
Utilisée avec ''install'' ou ''remove'', cette commande exclura le paquet spécifié pour rechercher une solution viable pour le système.\\
Exemple :
sudo apt-get -f install vlc
recherchera une solution pour faire fonctionner [[vlc|VLC media player]] sans corrompre le système (FIXME).
==== 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.
sudo dpkg -i --force-overwrite package.deb
sudo dpkg -i --force-all package.deb
==== Trouver un paquet ====
Pour rechercher un paquet dans vos [[:dépôts]], tapez simplement la commande suivante :
apt-cache search
L'option ''search'' passée à ''apt-cache'' permet de chercher les paquets contenant certains mots.
Les réponses dépendent de vos dépôts et peuvent donc différer d'un système à l'autre.
Pour rechercher un paquet installé, il faut utiliser [[dpkg]], par exemple :
dpkg -l NomDuPaquet
==== Obtention des codes sources ====
* apt-get source
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:
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
sudo apt-get install-f===== Suppression de paquets =====
==== Principe ====
* sudo apt-get remove
L'option ''remove'' permet de **désinstaller les paquets indiqués**. //Ceci laisse toutefois en place les fichiers de configuration de ces paquets.//
* sudo apt-get autoremove
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 ====
* sudo apt-get purge
L'action ''purge'', passée à la commande ''apt-get'', **supprime 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.//
* sudo apt-get autoremove --purge
L'option ''--purge'', passée à la commande ''autoremove'', **supprime 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.//
==== 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.
* sudo apt-get clean
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.//)
* sudo apt-get autoclean
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 ====
* sudo apt-get update
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 ====
* sudo apt-get install -V
L'option ''install'' met à jour les paquets **indiqués** déjà installés, vers leurs dernières versions (rarement utilisé).
* apt-get --simulate upgrade
L'option ''simulate'' simule la mise à jour des paquets sans réellement les installer (rarement utilisé).
* sudo apt-get upgrade
L'option ''upgrade'' met à jour **tous les paquets installés sur le système** vers les dernières versions (couramment utilisé).
* sudo apt-get dist-upgrade
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:
Package: nom_du_paquet
Pin: version du paquet à conserver
Pin-priority: 1001
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**
Package: kaffeine
Pin: version 0.8.8
Pin-priority: 1001
Dans le doute, vérifier en tapant la commande **sudo apt-cache policy nom_du_paquet**, pour l'exemple du paquet kaffeine
sudo apt-cache policy kaffeine
Une méthode plus simple (toujours avec le paquet kaffeine):
//__Pour les utilisateurs d'apt-get__ ://
echo "kaffeine hold" | sudo dpkg --set-selections
Pour vérifier que le paquet n'a plus le statut install mais hold ((bloqué)) :
dpkg --get-selections | grep kaffeine
devrait répondre
kaffeine hold
Pour le débloquer :
echo "kaffeine install" | sudo dpkg --set-selections
[[http://www.mail-archive.com/debian-user-french@lists.debian.org/msg92973.html|Source]]
//__Pour les utilisateurs d'[[:aptitude]]__((merci à cthuluh #debian-fr))://
sudo aptitude hold kaffeine
À vérifier pour cette dernière, car je ne suis pas un adepte d'aptitude. FIXME Donc à vérifier et déplacer sur la page [[:aptitude]]
Remplacer kaffeine par le paquet que vous voulez bloquer ;)
==== 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://help.ubuntu.com/14.04/serverguide/automatic-updates.html|documentation]](en).\\
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 :
export http_proxy=http://utilisateur:motdepasse@example.com:port
où :
* //utilisateur// est le nom d'utilisateur pour se connecter au proxy si nécessaire,
* //mot de passe// le mot de passe éventuellement associé
* //example.com// l'adresse du proxy,
* //port// 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 :
Acquire::http::Proxy "http://utilisateur:motdepasse@example.com:port";
Pour un proxy FTP ajouter une partie comme suit :
Acquire::ftp
{
Proxy "ftp://proxy:2121/";
ProxyLogin
{
"USER $(SITE_USER)@$(SITE)";
"PASS $(SITE_PASS)";
}
}
N'oubliez pas, bien sûr, de changer le nom d'hôte proxy et le port.
==== Suppression d'un proxy ====
//Testé sur [[:karmic|Ubuntu 9.10]].//
- 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**
- 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 :
Acquire
{
Queue-mode "access";
http
{
Dl-Limit "25";
};
};
==== Historique ====
* Le log (ou historique) des action de apt-get se trouve dans **/var/log/apt/**
less /var/log/apt/history.log
**history.log** correspond à l'historique du mois en cours.
* A la fin de chaque mois, ce fichier est archivé sous la forme history.log.1.gz
On afficher un tel fichier archivé avec zless
zless /var/log/apt/history.log.1.gz
===== Voir aussi =====
* [[: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]].//