Je me demande ce que Sudo apt-get update
fait?
Que met-il à jour?
En un mot, apt-get update
n'installe pas réellement de nouvelles versions du logiciel. Au lieu de cela, il met à jour les listes de paquetages pour les mises à niveau des paquetages nécessitant une mise à jour, ainsi que les nouveaux paquetages venant tout juste d'arriver dans les référentiels.
apt-get update
télécharge les listes de paquets à partir des référentiels et les "met à jour" pour obtenir des informations sur les versions les plus récentes des paquets et leurs dépendances. Il le fera pour tous les référentiels et les PPA. De http://linux.die.net/man/8/apt-get :
Utilisé pour resynchroniser les fichiers d'index des packages à partir de leurs sources. Les index des packages disponibles sont extraits des emplacements spécifiés dans
/etc/apt/sources.list
(5). Une mise à jour doit toujours être effectuée avant une mise à niveau ou une mise à niveau dist.
apt-get upgrade
va chercher les nouvelles versions des paquets existants sur la machine si APT est au courant de ces nouvelles versions par le biais de apt-get update
.
De http://linux.die.net/man/8/apt-get :
Utilisé pour installer les dernières versions de tous les packages actuellement installés sur le système à partir des sources énumérées dans
/etc/apt/sources.list
(5). Les packages actuellement installés avec les nouvelles versions disponibles sont récupérés et mis à niveau; en aucun cas les packages actuellement installés ne sont supprimés, pas plus que les packages qui ne sont pas déjà installés ne sont extraits et installés. Les nouvelles versions des packages actuellement installés qui ne peuvent pas être mises à niveau sans modifier le statut d'installation d'un autre package resteront à leur version actuelle. [Emphasis mine] Une mise à jour doit être effectué en premier pour qu'apt-get sache que de nouvelles versions des paquets sont disponibles.
apt-get dist-upgrade
effectuera le même travail que celui effectué par apt-get upgrade
, en plus de gérer intelligemment les dépendances afin de supprimer les packages obsolètes ou d'en ajouter de nouveaux. Voir ici: Qu'est-ce que "dist-upgrade" et pourquoi met-il à niveau plus que "upgrade"?
De http://linux.die.net/man/8/apt-get :
En plus de remplir la fonction de mise à niveau, cette option gère également de manière intelligente les modifications de dépendances avec les nouvelles versions de packages; apt-get a un système de résolution de conflit "intelligent" et essaiera de mettre à jour les paquetages les plus importants aux dépens des paquets moins importants, si nécessaire. Le fichier
/etc/apt/sources.list
(5) contient une liste d'emplacements à partir desquels extraire les fichiers de package souhaités. Voir aussi apt_preferences (5) pour un mécanisme permettant de surcharger les paramètres généraux pour des paquets individuels.
Vous pouvez combiner des commandes avec &&
comme suit:
Sudo apt-get update && Sudo apt-get install foo bar baz foo-dev foo-dbg
ou pour obtenir les dernières versions possibles selon les exigences de version des dépendances:
Sudo apt-get update && Sudo apt-get dist-upgrade
Vous avez besoin de Sudo
à chaque fois, mais comme Sudo
ne vous invite pas par défaut dans les 5 minutes environ depuis la dernière opération Sudo
name__, vous ne serez invité à entrer votre mot de passe qu'une seule fois (ou pas du tout).
Une recherche sur Google peut vous donner la définition de presque toutes les commandes de terminal, tout comme --help dans le terminal. Par exemple,
apt-get --help
Sudo apt-get update
a essentiellement trois parties:
Sudo
exécute la commande suivante avec les capacités de super-utilisateur (root). De nombreuses actions nécessitant la modification de fichiers système ou l'installation d'applications nécessitent des autorisations supplémentaires.
apt-get
est un outil de ligne de commande utilisé par Ubuntu pour installer, supprimer et gérer les packages logiciels.
update
est une option que le programme apt-get peut utiliser pour mettre à jour les listes de paquets depuis un serveur sur Internet. Les listes de paquets fournissent à l'utilitaire apt-get des informations importantes sur les packages logiciels que vous pouvez installer à l'aide d'apt-get. apt-get utilise ces listes pour déterminer le logiciel à installer en cas de commande. Par exemple
Sudo apt-get install guake
installerait le terminal Guake tel qu’il est actuellement répertorié dans les listes de logiciels locaux de mon ordinateur. Cependant, il se peut que ce ne soit pas la version appropriée ou que le programme ne soit pas disponible du tout. Ainsi, lors de l’installation du logiciel avec apt-get, vous tapez généralement
Sudo apt-get update
Sudo apt-get install <package>
en veillant à ce qu'apt-get sache installer la version la plus récente du paquet.
Le site help.ubuntu.com
constitue une autre source d’information utile. Par exemple, si vous avez cherché apt-get
sur ce site, vous trouverez AptGet/Howto parmi les résultats.
Lancer Sudo apt-get update
s'assure simplement que votre liste de paquets de tous les référentiels et de tous les PPA est à jour. Si vous n'exécutez pas cette commande, vous pourriez obtenir des versions plus anciennes des différents packages que vous installez ou pire, des problèmes de dépendance. Si vous venez d'ajouter un PPA et que vous n'avez pas mis à jour, rien dans le PPA ne fonctionnera du tout, car vous n'avez pas de liste de paquetages à partir de ce PPA ou de ce référentiel.
En résumé: Il est vivement recommandé d'exécuter Sudo apt-get update
avant de l'installer, mais peut être ignoré si vous êtes vraiment pressé sauf si vous avez modifié les référentiels ou les PPA depuis le dernier apt-get update
.
Vous devez exécuter apt-get update
une fois avant d'installer de nouveaux packages, car cela met à jour les informations du référentiel local. Si vous envisagez d'installer plusieurs packages peu de temps après l'autre, vous n'avez pas besoin d'exécuter apt-get update
. En outre, vous pouvez installer plusieurs packages à la fois si vous tapez Sudo apt-get install package1 package2...
Il met à jour la liste des logiciels disponibles sur votre ordinateur.
Votre ordinateur a une liste (comme un catalogue) qui contient tous les logiciels disponibles sur les serveurs Ubuntu. Mais le logiciel et les versions disponibles peuvent changer, donc une "mise à jour" va frapper le serveur et voir quel logiciel est disponible afin de mettre à jour ses listes locales (ou catalogues).
Notez que update
est différent de upgrade
. Update, comme indiqué ci-dessus, récupérera les logiciels disponibles et mettra à jour les listes, tandis que upgrade
installera les nouvelles versions des logiciels installés sur votre ordinateur (mises à jour réelles du logiciel).
Pour réellement mettre à jour votre logiciel (pas "mettre à jour" les listes), vous exécutez la commande
Sudo apt-get upgrade
qui est généralement exécuté après une "mise à jour".
Lorsque vous installez des packages à partir de la ligne de commande avec Sudo apt-get install ...
(ou Sudo aptitude install ...
) ou que vous les mettez à niveau à partir de la ligne de commande (avec upgrade
ou dist-upgrade
au lieu de install
), les informations suivantes sont obtenues à partir de la configuration de votre système local, et pas d'Internet:
quels forfaits sont disponibles
quelles versions sont disponibles
où les paquets disponibles doivent être récupérés
Exécuter Sudo apt-get update
(ou Sudo aptitude update
) le met à jour sur votre système local. C’est l’étape qui récupère les informations sur les packages pouvant être installés, y compris les mises à jour disponibles pour les packages de packages actuellement installés, à partir de sources Internet.
Lorsque vous installez des packages avec une interface graphique (le gestionnaire de mises à jour, le centre de logiciel ou le gestionnaire de packages Synaptic), le travail de Sudo apt-get update
est effectué automatiquement. Lorsque vous installez des packages à partir de la ligne de commande, ce n'est pas le cas et vous devriez toujours le faire vous-même , sauf si vous l'avez déjà fait très récemment .
Comme les informations sur les versions mises à jour des packages disponibles sont obtenues en exécutant Sudo apt-get update
(ou Sudo aptitude update
), il est conseillé de l'exécuter avant d'installer un package et de l'exécuter pour installer les dernières mises à jour, même si vous n’avez ni ajouté ni supprimé de sources de logiciels (telles qu’un PPA) .
Veuillez noter que si vous allez effectuer plusieurs opérations de gestion de paquets à peu près au même moment, vous n'avez pas besoin d'exécuter Sudo apt-get update
avant chacune d'entre elles. Ce n'est que si les informations ne sont pas mises à jour depuis un moment que vous devez vous assurer de les exécuter.
Comme Eliah Kagan l'a mentionné ci-dessus, vous vous attendriez à ce qu'une application graphique s'exécute apt-get update
avant apt-get install
/apt-get upgrade
, mais je viens de découvrir une erreur intéressante 404, sur un relativement nouvelle machine de sécurité offensive VM, qui m'a stoppé pendant une minute.
À partir de la ligne de commande, j'ai exécuté apt-get update
, puis essayé à nouveau la commande Outils système/mise à jour de logiciels, et cette fois, il s'est exécuté sans erreur 404.
Donc, je suppose que vous ne pouvez pas toujours supposer que apt-get update
est exécuté à partir d'applications GUI ...
Prenons l'exemple de l'installation de lecteur multimédia VLC sur Ubuntu:
Sudo apt-get update
Il vérifiera les référentiels pour les mises à jour disponibles.
Tandis que
Sudo apt-get install vlc vlc-plugin-Pulse mozilla-plugin-vlc
installera VLC Media Player à partir des référentiels que nous avons recherchés.
Si vous vous êtes connecté en tant qu'utilisateur root (administrateur), vous n'avez pas à utiliser Sudo
car vous disposez déjà des privilèges de super utilisateur.
Comme l'ont dit de nombreuses personnes avant moi, cela met à jour votre référentiel local (liste de paquets).
Vous pouvez rencontrer des problèmes si vous essayez d'installer
apt-get install foobar
et foobar ou une dépendance n’ont pas leur dernière version dans le référentiel. Cela peut être particulièrement problématique si vous installez un fichier .deb manuellement ou un ppa à partir d'une tierce partie.
En gros, il s'assure que votre liste correspond à la liste maître.