Table des matières

, ,

apt-get

Apt-get est un outil logiciel à utiliser en ligne de commande.
Il permet d'effectuer l'installation et la désinstallation de paquets en provenance d'un dépôt APT.

Depuis 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. 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 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 <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.
sudo apt-get install <packet> <packet 2> etc ...

Installation d'une version présente dans les dépôts

Très utile pour revenir à une version officielle d'un paquet (qui aurait été "upgradé à la main").

Installation avec réponse oui

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 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 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 <word1 word2 ...>

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

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

Suppression + purge

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.

Mises à jour

Mise à jour dépôts

Mise à jour de 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

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 7) :

dpkg --get-selections | grep kaffeine

devrait répondre

kaffeine                      hold

Pour le débloquer :

echo "kaffeine install" | sudo dpkg --set-selections

Source

Pour les utilisateurs d'aptitude8):

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 cette page pour pouvoir facilement faire une sauvegarde de la liste des paquets installés.

Mises à jour automatisées

Installer le paquet unattended-upgrades et lire cette 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 variable d'environnement http_proxy, sous la forme suivante :

export http_proxy=http://utilisateur:motdepasse@example.com:port

où :

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 Ubuntu 9.10.

  1. Allez dans Système → Préférences →Serveur Mandataire
  2. Décochez "Configuration manuelle du serveur mandataire"
  3. Cochez "Connexion direct à internet"
  4. Cliquez sur "Appliquer à l'ensemble du système"
  5. Fermez
  6. Ouvrez avec les droits d'administration le fichier /etc/apt/apt.conf
  7. Effacez la ou les ligne(s) en rapport avec le proxy
  8. Après enregistrement, redémarrez votre PC

Et voilà il n'y a plus de proxy

Limiter la vitesse téléchargement

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

 less /var/log/apt/history.log

history.log correspond à l'historique du mois en cours.

On afficher un tel fichier archivé avec zless

zless /var/log/apt/history.log.1.gz 

Voir aussi

—- Contributeurs : TrHiLKiL, ste, Emmanuel Gontcho, david96, boogy.

1) , 4)
ceux marqués comme "conffile", souvent placés dans /etc.
2) , 5)
dans les dossiers personnels
3) , 6)
dans le /var
7)
bloqué
8)
merci à cthuluh #debian-fr