Come funziona l'aggiornamento con i programmi installati dal file .deb


11

Sto avendo delle difficoltà a capire esattamente come funziona l'intera cosa di aggiornamento in Ubuntu e le buone pratiche per l'installazione del software.

Capisco di avere un /etc/apt/sources.listfile in cui sono elencati tutti i miei repository e che questi repository vengono interrogati quando lo uso apt-get update- per essere successivamente utilizzato con es
apt-get upgrade. Questo ha perfettamente senso e di recente ho installato spotifyaggiungendo
deb http://repository.spotify.com stable non-freea questo elenco di "fonti".

Ma poi mi sono confuso ...

Quando sono andato a scaricare Google Chrome, dovevo semplicemente scaricare e prendere un .debfile, e Chrome si è installato senza problemi ... ma non vedo alcuna nuova voce in /etc/apt/sources.list...

Quindi, come fa a apt-get updatesapere dove interrogare riguardo agli aggiornamenti di Chrome? È stato in qualche modo aggiunto a uno dei repository già elencati nel file dei sorgenti?

Vorrei che tutto il mio software installato fosse incluso nella funzione di aggiornamento.

Risposte:


10

Questo è davvero complicato. Innanzitutto, aptè un front-end a dkpgcui in realtà gestisce l'installazione / rimozione di pacchetti. Quindi, /etc/apt/sources.list(e tutti i file in /etc/apt/sources.list.d/) vengono letti apt, non dpkg.

Ora, quando scarichi un .debfile manualmente, stai bypassando apte utilizzerai invece dpkg -i packagename.debper installarlo. Ciò significa che il database di apt non verrà aggiornato e che il aptsistema non sarà a conoscenza del pacchetto installato. In altre parole, apt-get upgradesarà mai aggiornare eventuali pacchetti installati manualmente.

Detto questo, in chromerealtà è un'eccezione alla regola. Quando vai alla sua pagina di download, vedrai questo messaggio:

 inserisci qui la descrizione dell'immagine

In fondo è questa nota:

Nota: l'installazione di Google Chrome aggiungerà il repository Google in modo che il tuo sistema mantenga automaticamente Google Chrome aggiornato. Se non desideri il repository di Google, fai "sudo touch / etc / default / google-chrome" prima di installare il pacchetto.

Questo significa che il .debpacchetto comprende uno script che aggiungerà repository di Google al vostro sistema (in particolare, si creerà un file a /etc/apt/sources.list.d/) in tal modo garantire che chrome verrà aggiornato quando si utilizza apt-get.


Ok, ha senso ... ma esiste un modo per gestire facilmente gli aggiornamenti per tutti i miei pacchetti installati manualmente?
Kirbies,

2
@Morten no, questo è esattamente il motivo per cui aptecc., Se esci da quel sistema sei da solo. Ci sono trucchi ma raramente vale la pena per i pochi pacchetti che potresti installare manualmente.
terdon,

1
Al gestore dei pacchetti in realtà non importa se un pacchetto è stato installato da dpkg o apt. Se trova una versione più recente di un pacchetto nei repository, viene installata la versione più recente.
Florian Diesch,

@FlorianDiesch sì, certo. Il mio punto era per i pacchetti che non sono nei repository.
terdon,

1

apt cerca tra le fonti elencate in /etc/apt/sources.liste anche tutti i file in /etc/apt/source.list.d. Avrai un file come google-chrome.listnel /etc/apt/sources.list.dquale avrà la seguente riga:

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

Questo è usato come fonte per l'aggiornamento di Google-Chrome.

Quando hai scaricato manualmente il file deb per google-chrome e lo hai installato, uno script nel file deb ha creato questo file, in modo da non dover cercare manualmente gli aggiornamenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.