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

11

J'ai des difficultés à comprendre exactement comment fonctionne la mise à jour dans Ubuntu et les bonnes pratiques pour installer des logiciels.

Je comprends que j'ai un /etc/apt/sources.listfichier où 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é plus tard avec par exemple
apt-get upgrade. Cela est parfaitement logique et j'ai récemment installé spotifyen ajoutant
deb http://repository.spotify.com stable non-freeà cette liste "sources".

Mais ensuite je me suis perdu ...

Lorsque je suis allé télécharger Google Chrome, je n'ai eu qu'à télécharger et récupérer un .debfichier, et Chrome a été installé sans problème ... mais je ne vois aucune nouvelle entrée dans /etc/apt/sources.list...

Alors, comment apt-get updatesavoir 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?

J'aimerais que tous mes logiciels installés soient englobés par la fonction de mise à jour.

Kirbies
la source

Réponses:

10

C'est en effet assez compliqué. Tout d'abord, aptest un frontal sur dkpglequel gère réellement l'installation / la suppression de packages. Donc, /etc/apt/sources.list(et tous les fichiers dans /etc/apt/sources.list.d/) sont lus par apt, non dpkg.

Maintenant, lorsque vous téléchargez un .debfichier manuellement, vous contournez aptet utiliserez dpkg -i packagename.debpour l'installer à la place. Cela signifie que la base de données d'apt ne sera pas mise à jour et que le aptsystème n'aura aucune connaissance du package que vous avez installé. En d'autres termes, neapt-get upgrade mettra jamais à jour les packages installés manuellement.

Cela dit, chromec'est en fait une exception à la règle. Lorsque vous accédez à sa page de téléchargement, vous verrez ce message:

 entrez la description de l'image ici

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 .debpackage comprend un script qui ajoutera le référentiel de Google à votre système (en particulier, il créera un fichier à /etc/apt/sources.list.d/) garantissant ainsi qu'il chrome sera mis à jour lorsque vous utilisez apt-get.

terdon
la source
Ok, c'est logique ... mais est-il alors possible de gérer facilement les mises à jour pour tous mes packages installés manuellement?
Kirbies
2
@Morten non, c'est exactement la raison pour laquelle aptetc existe, si vous sortez de ce système, vous êtes seul. Il existe des astuces, mais cela en vaut rarement la peine pour les quelques packages que vous pouvez installer manuellement.
terdon
1
En fait, le gestionnaire de paquets ne se soucie pas si un paquet a été installé par dpkg ou apt. S'il trouve une version plus récente d'un package dans les référentiels, cette version plus récente est installée.
Florian Diesch
@FlorianDiesch oui, bien sûr. Mon point était pour les packages qui ne sont pas dans les référentiels.
terdon
1

apt recherche dans les sources listées dans /etc/apt/sources.listet aussi tous les fichiers dans /etc/apt/source.list.d. Vous aurez un fichier tel que google-chrome.listdans /etc/apt/sources.list.dlequel 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é et installé manuellement le fichier deb pour google-chrome, un script dans le fichier deb a créé ce fichier, afin que vous n'ayez pas à rechercher manuellement les mises à jour.

jobin
la source