Esiste un metodo o un comando che può dire da quale repository proviene un pacchetto?
Esiste un metodo o un comando che può dire da quale repository proviene un pacchetto?
Risposte:
dpkg -s <package>
- ti permette di trovare la versione che hai installato. ( fonte )apt-cache showpkg <package>
- mostrerà un elenco di versioni del pacchetto disponibili. Per ogni versione, verrà fornito l'origine del pacchetto, sotto forma di un nome di file indice.Se vuoi trovare l'origine del pacchetto attualmente installato, avrai bisogno dell'output di dpkg -s <package>
. Altrimenti, puoi semplicemente guardare l'output della versione più recente di apt-cache showpkg <package>
.
$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...
$ apt-cache showpkg liferea
Package: liferea
Versions:
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
Description Language:
File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
MD5: 557b0b803b7ed864e6d14df4b02e3d26
1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
MD5: 557b0b803b7ed864e6d14df4b02e3d26
...
Dal primo comando, vedo che è installata la versione 1.6.2-1ubuntu6 di Liferea. Dal secondo comando, posso vedere che quella versione è elencata in /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
.
Senza troppa fatica, posso dedurre che la linea di origine contiene archive.ubuntu.com
, ubuntu
, lucid
, e main
.
E, abbastanza sicuro, il mio /etc/apt/sources.list
contiene la seguente riga.
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
apt-cache policy <package name>
(da: superuser.com/a/236605/37279 )
trusty
sorgenti del pacchetto Ubuntu , quindi aggiungo temporaneamente utopic
al mio sources.list
per installare la versione 1.20ubuntu3 init-system-helpers
e quindi rimuovo nuovamente il repository dal mio sources.list
, mentirò apt-cache showpkg init-system-helpers
solo sull'elenco dei pacchetti originale e apt-cache policy init-system-helpers
dichiarerà l'ovvio.
Usa il seguente comando. Ha un output migliore:
apt-cache policy <Package Name>
Per Ubuntu 16.04 e versioni successive esiste un modo più breve per farlo:
apt policy <Package Name>
apt-cache policy
consultare anche superuser.com/a/236605/61370
apt-cache policy
è buono ma alcune volte è necessario apt-cache showpkg
confrontare le somme MD5 dal pacchetto. Vedi anchedebsums --changed
policy
opzione è la più utile se confrontata consources.list
apt policy <package-name>
possibile utilizzarne uno ancora più semplice , a partire dal 16.04LTS. Una volta che 14.04LTS è diventato EOL nel 2018, questa risposta potrebbe essere modificata per utilizzare il comando più recente.
apt
su Ubuntu 16.04+Accanto apt-cache policy
, showpkg
e show
, ora abbiamo un sottocomando più semplice, facile da ricordare: apt
(non confondere con il classico apt-*
):
apt policy <package>
Oppure l'alternativa con più informazioni apt show <package>
, linea che inizia con "Fonti APT:" .
Descrizione: questo pacchetto fornisce strumenti da riga di comando per la ricerca e la gestione, nonché per la ricerca di informazioni sui pacchetti come accesso di basso livello a tutte le funzionalità della libreria libapt-pkg. Questi includono: apt-get
, apt-cache
, apt-cdrom
, apt-config
, apt-key
.
apt --help
Altri sottocomandi facili da ricordare:
apt list
- elenca i pacchetti in base ai nomi dei pacchettiapt search
- cerca nelle descrizioni dei pacchettiapt show
- mostra i dettagli del pacchettoapt update
- aggiorna l'elenco dei pacchetti disponibiliapt install
- installa pacchettiapt remove
- rimuovere i pacchettiapt purge
- rimuovere pacchetti e file di configurazione :
La rimozione di un pacchetto rimuove tutti i dati compressi, ma in genere lascia dietro di sé file di configurazione utente (modificati) di piccole dimensioni, nel caso in cui la rimozione sia stata un incidente. In questo caso, solo l'emissione di una richiesta di installazione per il pacchetto rimosso accidentalmente ripristinerà la sua funzione. D'altra parte puoi sbarazzarti di questi resti chiamando l'eliminazione anche sui pacchetti già rimossi. Si noti che ciò non influisce su alcun dato o configurazione archiviati nella home directory.
apt upgrade
- aggiorna il sistema installando / aggiornando i pacchetti
apt full-upgrade
- aggiorna il sistema rimuovendo / installando / aggiornando i pacchettiapt edit-sources
- modifica il file delle informazioni di origineapt policy xxx
sembra identico a apt-cache policy xxx
, forse avrebbe dovuto essere invece un commento. O almeno menzionate che apt show
sembra aver bisogno del -a
passaggio per vedere "record aggiuntivi" da altre fonti
Purtroppo, queste informazioni non vengono registrate durante l'installazione del pacchetto. Puoi fare un'ipotesi decente se il repository è ancora nell'elenco dei sorgenti e il repository ha ancora il pacchetto:
grep -l PKG /var/lib/apt/lists/*
Perfino Synaptic non può dire se disabiliti il repository e aggiorni.