web-dev-qa-db-fra.com

Comment la mise à jour fonctionne-t-elle avec les programmes installés à partir du fichier .deb

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 ajoutant
deb 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.

11
Kirbies

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:

enter image description here

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.

9
terdon

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.

1
jobin