Que fait “sudo apt-get update”?

515

Je me demande ce qui sudo apt-get updatefait?

Que met-il à jour?

Élysée
la source

Réponses:

553

En un mot, apt-get updaten'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 updateté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 upgraderé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-upgradefera 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.listfichier (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 sudodeux fois, mais étant donné que, sudopar défaut, il ne vous est pas demandé dans les 5 minutes qui ont suivi la dernière sudoopération, votre mot de passe ne vous sera demandé qu'une fois (ou pas du tout).

ζ--
la source
11
Avons-nous toujours besoin d'exécuter une sudo apt-get updatecommande lorsque nous installons des packages? Quel est l'inconvénient si nous ne le faisons pas?
JohnnyQ
14
@JohnnyQ Si vous n'exécutez pas cette commande, vous pouvez installer un paquet obsolète.
ζ--
ah ça sonne comme si c'était juste une chose de convention alors. Donc, je suppose que ce n'est vraiment pas nécessaire, surtout si vous utilisez uniquement des packages de base avec des commandes de base qui ne sont généralement pas mises à jour. Le problème dans ma situation est que cela apt-get updateprend un certain temps, Internet est encore primitif.
JohnnyQ
3
@JohnnyQ, si votre mise à jour d'apt-get est lente, votre apt-get dist-upgrade le sera également. Ce n'est donc pas vraiment un argument pour ne pas faire apt-get update en premier. Par ailleurs, vous pouvez accélérer la mise à jour de votre apt-get en consultant le dossier /etc/apt/sources.d/ pour voir si vous avez ajouté des référentiels personnalisés et que l'un d'entre eux risque de ne pas répondre, ce qui ralentirait le processus de mise à jour.
Mladen B.
1
A propos, "apt" signifie Advanced Packaging Tool ( wiki.debian.org/Apt "Qu'est-ce que l'APT?"). Quelque chose que j'ai appris l'autre jour, je pensais partager. ("apt" apparaît souvent dans man apt-get, man apt, mais je n'avais jamais vu l'acronyme développé auparavant).
jgreve
47

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-getvous trouverez AptGet / Howto parmi les résultats.

Alex
la source
Alex, puis-je utiliser la commande telle que vous la dites: "apt-get update apt-get install <paquet>" En gros, il est possible d'exécuter deux opérations en tapant les deux commandes ensemble comme ceci?
Elysium
1
@Elysium Oui, si vous avez &&entre euxsudo apt-get update&&sudo apt-get install foo bar baz
ζ--
8
Utiliser &&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.
Flimm
4
Une recherche sur Google m'a conduit à cette question / réponse. Just FYI;)
teewuane
19

En cours d'exécution, sudo apt-get updatevous 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 updateavant 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.

ζ--
la source
13

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 updatec'est différent de upgrade. Update, comme mentionné ci-dessus, récupérera les logiciels disponibles et mettra à jour les listes tout upgradeen 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".

Sam
la source
C'est sudo apt-get installpour quoi alors? Installer des paquets particuliers au lieu d'une mise à jour générale?
Peter Mortensen
12

Vous devez exécuter apt-get updateune 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...

Jason Petrilla
la source
Belle astuce pour ça!
Emerson Hsieh
6

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 upgradeou à la dist-upgradeplace de install), les informations suivantes sont obtenues à partir de la configuration de votre système local, et non d'Internet:

  1. quels forfaits sont disponibles

  2. quelles versions sont disponibles

  3. 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 updateest 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 updateavant 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.

Eliah Kagan
la source
4

Comme Eliah Kagan l'a mentionné ci-dessus, vous vous attendriez à ce qu'une application d'interface graphique s'exécute apt-get updateavant 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 updateest exécuté à partir d'applications à interface graphique ...

Mikepratt
la source
Intéressant ... Pourrait-il y avoir une situation de réseau inhabituelle entre vous et le serveur qui soit mieux gérée lors de votre exécution apt-getque 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?)
Eliah Kagan
3

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.

N8tron
la source
2

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 sudocar vous disposez déjà des privilèges de super utilisateur.

Praveen Vinny
la source