J'ai quelques difficultés à comprendre le fonctionnement de la mise à jour dans Ubuntu et les bonnes pratiques d'installation de logiciels.
Je comprends que j’ai un fichier /etc/apt/sources.list
dans lequel tous mes référentiels sont répertoriés et que ces référentiels sont interrogés lorsque j’utilise apt-get update
- pour être utilisé ultérieurement, par exemple.apt-get upgrade
. C’est parfaitement logique et j’ai récemment installé spotify
en ajoutantdeb http://repository.spotify.com stable non-free
à cette liste "sources".
Mais ensuite je me suis trompé ...
Quand je suis allé télécharger Google Chrome, je devais simplement télécharger et récupérer un fichier .deb
, et Chrome installé sans problème ... mais je ne vois aucun fichier. nouvelle entrée dans /etc/apt/sources.list
...
Alors, comment apt-get update
sait-il où interroger les mises à jour de Chrome? At-il en quelque sorte été ajouté à l'un des référentiels déjà répertoriés dans le fichier sources?
Je souhaite que tous mes logiciels installés soient englobés par la fonction de mise à jour.
C'est en effet un peu compliqué. Tout d’abord, apt
est un frontal à dkpg
qui gère réellement l’installation/la suppression de packages. Ainsi, /etc/apt/sources.list
(et tous les fichiers de /etc/apt/sources.list.d/
) sont lus par apt
, pas dpkg
.
Désormais, lorsque vous téléchargez manuellement un fichier .deb
, vous ignorez apt
et vous utilisez dpkg -i packagename.deb
pour l'installer à la place. Cela signifie que la base de données d'apt ne sera pas mise à jour et que le système apt
n'aura aucune connaissance du paquet que vous avez installé. En d'autres termes, apt-get upgrade
( ne mettra jamais à jour les packages installés manuellement.
Cela dit, chrome
est en réalité une exception à la règle. Lorsque vous allez sur sa page de téléchargement, vous verrez ce message:
En bas se trouve cette note:
Remarque: L'installation de Google Chrome ajoutera le référentiel Google afin que votre système maintienne automatiquement Google Chrome à jour. Si vous ne voulez pas du référentiel de Google, faites “Sudo touch// etc/default/google-chrome” avant d'installer le paquet.
Cela signifie que le package .deb
comprend un script qui ajoutera le référentiel de Google à votre système (il créera un fichier à l'emplacement /etc/apt/sources.list.d/
), assurant ainsi que chrome
être mis à jour lorsque vous utilisez apt-get
.
apt recherche dans les sources répertoriées dans /etc/apt/sources.list
ainsi que dans tous les fichiers de /etc/apt/source.list.d
. Vous aurez un fichier tel que google-chrome.list
dans /etc/apt/sources.list.d
qui aura la ligne suivante:
deb http://dl.google.com/linux/chrome/deb/ stable main
Ceci est utilisé comme source pour la mise à jour de google-chrome.
Lorsque vous avez téléchargé manuellement le fichier deb pour google-chrome et que vous l'avez installé, un script du fichier deb a créé ce fichier afin que vous n'ayez pas à rechercher manuellement les mises à jour.