Réponses:
En un mot, apt-get update
n'installe pas réellement de nouvelles versions de logiciels. 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 des référentiels et les "met à jour" pour obtenir des informations sur les dernières versions 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
récupérera les nouvelles versions des packages existants sur la machine si APT est informé 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 récupérés 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. [Non souligné dans l'original] Une mise à jour doit d'abord être effectuée pour qu'apt-get sache que de nouvelles versions des paquets sont disponibles.
apt-get dist-upgrade
fera le même travail qui est fait par apt-get upgrade
, en plus il gérera intelligemment les dépendances, ainsi il pourra supprimer les paquets obsolètes ou 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
/etc/apt/sources.list
fichier (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 &&
les éléments suivants:
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 des sudo
deux fois, mais étant donné que, sudo
par défaut, il ne vous est pas demandé dans les 5 minutes qui ont suivi la dernière sudo
opération, votre mot de passe ne vous sera demandé qu'une fois (ou pas du tout).
apt-get update
prend un certain temps, Internet est encore primitif.
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
comporte 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 à utiliser par le programme apt-get 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 est une autre source d’information utile help.ubuntu.com
. Par exemple, si vous avez effectué une recherche sur ce site, apt-get
vous trouverez AptGet / Howto parmi les résultats.
&&
entre euxsudo apt-get update&&sudo apt-get install foo bar baz
&&
signifie que la deuxième commande ne sera exécutée que si la première réussit. Si le succès de la première commande ne vous intéresse pas, utilisez ;
plutôt.
En cours d'exécution, sudo apt-get update
vous vous assurez simplement que votre liste de paquets de tous les référentiels et 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 du 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 un mot: il est fortement recommandé de lancer sudo apt-get update
avant d'installer, mais il peut être ignoré si vous êtes vraiment pressé, à moins que vous n'ayez modifié les référentiels ou les PPA depuis le dernier apt-get update
.
Il met à jour la liste des logiciels disponibles sur votre ordinateur.
Votre ordinateur a une liste (comme un catalogue) contenant tous les logiciels disponibles sur les serveurs Ubuntu. Mais le logiciel et les versions disponibles peuvent changer, de sorte qu'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
c'est différent de upgrade
. Update, comme mentionné ci-dessus, récupérera les logiciels disponibles et mettra à jour les listes tout upgrade
en installant 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".
sudo apt-get install
pour quoi alors? Installer des paquets particuliers au lieu d'une mise à jour générale?
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 de l'exécuter apt-get update
. En outre, vous pouvez installer plusieurs packages à la fois si vous tapez
sudo apt-get install package1 package2...
Lorsque vous installez des packages à partir de la ligne de commande avec sudo apt-get install ...
(ou sudo aptitude install ...
), ou lorsque vous les mettez à niveau à partir de la ligne de commande (avec upgrade
ou à la dist-upgrade
place de install
), les informations suivantes sont obtenues à partir de la configuration de votre système local, et non 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
) met à jour ceci sur votre système local. Cette étape permet de récupérer des 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 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, à moins que vous ne l'ayez fait très récemment .
Étant donné que 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 ajouté ou supprimé aucun logiciel. Sources (comme un AAE) .
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 de les exécuter sudo apt-get update
avant chacune d'entre elles. Ce n'est que si les informations n'ont pas été 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 d'interface 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 une machine virtuelle de sécurité offensive relativement nouvelle, qui m'a bloqué 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 qu'il apt-get update
est exécuté à partir d'applications à interface graphique ...
apt-get
que par la vérification automatique effectuée en exécutant Software Updater / Update Manager? Utilisez-vous un proxy HTTP? Et êtes-vous en mesure de faire en sorte que cela se reproduise, ou est-ce arrivé une seule fois? S'il s'agit d'une anomalie isolée, je me demande si le problème est peut-être dû à une mauvaise configuration temporaire du serveur. Quel miroir utilisez-vous? Avec plus d’informations, je pourrais peut-être améliorer ma réponse. (Btw, est-ce que ceci est destiné comme une réponse séparée, ou devrait-il être converti en un commentaire?)
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 depuis un tiers.
Fondamentalement , il fait que votre liste correspond à la principale liste.
Prenons l'exemple de l'installation de VLC Media Player 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'êtes pas obligé de l'utiliser sudo
car vous disposez déjà des privilèges de super utilisateur.
sudo apt-get update
commande lorsque nous installons des packages? Quel est l'inconvénient si nous ne le faisons pas?