Wie funktioniert das Update mit Programmen, die aus der .deb-Datei installiert wurden?

11

Ich habe einige Schwierigkeiten, genau zu verstehen, wie das ganze Update in Ubuntu funktioniert, und bewährte Methoden für die Installation von Software.

Ich verstehe, dass ich eine /etc/apt/sources.listDatei habe, in der alle meine Repositorys aufgelistet sind, und dass diese Repositorys bei meiner Verwendung abgefragt werden apt-get update- um später mit z
apt-get upgrade. Dies ist absolut sinnvoll und ich habe es kürzlich installiert, spotifyindem ich es
deb http://repository.spotify.com stable non-freezu dieser "Quellen" -Liste hinzugefügt habe .

Aber dann wurde ich verwirrt ...

Als ich Google Chrome heruntergeladen habe, musste ich lediglich eine .debDatei herunterladen und herunterladen , und Chrome wurde ohne Probleme installiert ... aber ich sehe keinen neuen Eintrag in /etc/apt/sources.list...

Woher apt-get updatewissen Sie also , wo Sie Fragen zu Chrome-Updates stellen müssen? Wurde es irgendwie zu einem der bereits aufgelisteten Repositorys in der Quelldatei hinzugefügt?

Ich möchte, dass meine gesamte installierte Software von der Update-Funktion erfasst wird.

Kirbies
quelle

Antworten:

10

Das ist in der Tat etwas kompliziert. Erstens apthandelt es sich um ein Front-End , dkpgdas das Installieren / Entfernen von Paketen übernimmt. Also /etc/apt/sources.list(und alle Dateien in /etc/apt/sources.list.d/) werden von aptnicht gelesen dpkg.

Wenn Sie jetzt eine .debDatei manuell herunterladen , umgehen Sie sie aptund dpkg -i packagename.debinstallieren sie stattdessen. Dies bedeutet, dass die Datenbank von apt nicht aktualisiert wird und das aptSystem keine Kenntnis von dem von Ihnen installierten Paket hat. Mit anderen Worten, apt-get upgradewird nie alle manuell installierten Pakete aktualisieren.

Allerdings chromeist das eigentlich eine Ausnahme von der Regel. Wenn Sie zur Download-Seite gehen, wird folgende Meldung angezeigt:

 Geben Sie hier die Bildbeschreibung ein

Unten ist dieser Hinweis:

Hinweis: Durch die Installation von Google Chrome wird das Google-Repository hinzugefügt, sodass Ihr System Google Chrome automatisch auf dem neuesten Stand hält. Wenn Sie das Google-Repository nicht möchten, führen Sie vor der Installation des Pakets "sudo touch / etc / default / google-chrome" aus.

Dies bedeutet , dass das .debPaket ein Skript enthält , die Google-Repository zu Ihrem System hinzufügen wird (genauer gesagt, es wird eine Datei auf erstellen /etc/apt/sources.list.d/) , um dadurch sicherzustellen , dass chrome wird aktualisiert, wenn Sie verwenden apt-get.

Terdon
quelle
Ok, macht Sinn ... aber gibt es dann eine Möglichkeit, die Updates für alle meine manuell installierten Pakete einfach zu verwalten?
Kirbies
2
@Morten nein, genau deshalb gibt es aptetc, wenn Sie dieses System verlassen, sind Sie alleine. Es gibt Tricks, aber für die wenigen Pakete, die Sie möglicherweise manuell installieren, lohnt sich die Mühe selten.
Terdon
1
Dem Paketmanager ist es eigentlich egal, ob ein Paket von dpkg oder apt installiert wurde. Wenn eine neuere Version eines Pakets in den Repositorys gefunden wird, wird diese neuere Version installiert.
Florian Diesch
@FlorianDiesch ja natürlich. Mein Punkt war für Pakete, die nicht in den Repositorys sind.
Terdon
1

Apt sucht in den Quellen in /etc/apt/sources.listund auch in allen Dateien in /etc/apt/source.list.d. Sie erhalten eine Datei wie haben google-chrome.listin /etc/apt/sources.list.ddenen die folgende Zeile haben:

deb http://dl.google.com/linux/chrome/deb/ stable main

Dies wird als Quelle für die Aktualisierung von Google-Chrome verwendet.

Wenn Sie die Deb-Datei für Google-Chrome manuell heruntergeladen und installiert haben, hat ein Skript in der Deb-Datei diese Datei erstellt, sodass Sie nicht manuell nach Updates suchen müssen.

Job in
quelle