Domanda È possibile ottenere un elenco dei pacchetti installati più di recente?


È possibile ottenere un elenco di pacchetti che sono stati installati più di recente tramite apt-get?


141
2017-12-11 22:41


origine


serverfault.com/questions/175504/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Ora, se solo qualcuno mi dicesse come elencare il installato manualmente pacchetti che Non l'ho già rimosso. Sigh, Linux. - Aleksandr Dubinsky
@AleksandrDubinsky apt-mark showmanual | less non lo fa? - GKFX
@GKFX Intendevo nel contesto dei pacchetti installati di recente. - Aleksandr Dubinsky
@AleksandrDubinsky Dovresti usare comm -12 a b con a una copia ordinata di apt-mark showmanual e b una lista ordinata da una delle risposte qui sotto. - GKFX


risposte:


Comando per elencare i pacchetti installati di recente che sono stati installati tramite qualsiasi metodo (apt-get, Software Center et al.):

grep " install " /var/log/dpkg.log

Esempio di output:

2010-12-08 15:48:14 install python-testtools <none> 0.9.2-1
2010-12-08 15:48:16 install quickly-widgets <none> 10.09
2010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-17
2010-12-09 12:00:24 install mc <none> 3:4.7.0.6-1
2010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu1
2010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu1
2010-12-09 23:34:52 install dir2ogg <none> 0.11.8-1
2010-12-09 23:34:53 install faad <none> 2.7-4
2010-12-09 23:34:54 install wavpack <none> 4.60.1-1
2010-12-10 11:53:00 install playonlinux <none> 3.8.6

È possibile eseguire questo comando per elencare solo i nomi dei pacchetti installati di recente,

awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log

Comando per elencare la cronologia di apt-get (NOTA: questo non elenca le dipendenze installate, semplicemente elenca le precedenti apt-get comandi eseguiti):

grep " install " /var/log/apt/history.log

Esempio di output:

Commandline: apt-get install libindicate-doc
Commandline: apt-get install googlecl
Commandline: apt-get --reinstall install ttf-mscorefonts-installer
Commandline: apt-get install valac libvala-0.10-dev
Commandline: apt-get install libgtksourceview-dev
Commandline: apt-get install python-sphinx
Commandline: apt-get install python-epydoc
Commandline: apt-get install quickly-widgets
Commandline: apt-get install libreoffice3* libobasis3.3*
Commandline: apt-get install mc

154
2017-12-11 22:45



il problema con synaptic è che non mostra cosa fai con aptitude, apt-get e dpkg, per questo motivo +1 per questa opzione - hhlp
Questo comando non mostrerà aggiornamenti. Usa il software center per vedere tutto. - HDave
Potrebbe essere meglio salvare un file di testo come questo cat /var/log/apt/history.log | grep "\ install\ " > install.log - CrandellWS
grep " install " /var/log/dpkg.log sarà sufficiente. Non c'è bisogno di usare cat. Guarda anche Questo. - augurar
nota che questo sembra solo trovare pacchetti che sono stati appena installati. I pacchetti per cui è stata installata una nuova versione appaiono come upgrade in dpkg.log - Andre Holzner


Il Centro software di Ubuntu mostra l'intera cronologia di tutti i pacchetti che sono stati installati / aggiornati / rimossi. Basta fare clic su "Cronologia" nella parte inferiore dell'elenco a sinistra.


13
2017-12-12 13:09



Questo pulsante cronologia è ora nella parte superiore della GUI e può mostrare i pacchetti e gli aggiornamenti installati. Questa dovrebbe essere la risposta accettata alla domanda poiché è l'unica risposta che funziona per gli aggiornamenti. - HDave
Questa domanda non specifica un ambiente desktop (GUI), ma la risposta accettata è valida in entrambi gli scenari GUI e non-GUI. - msanford
@HDave Sicuramente non è vero, dpkg.log registra gli aggiornamenti. - GKFX


Per vedere anche i pacchetti più vecchi ordinati per ora di installazione:

grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log

E per i pacchetti installati molto tempo fa:

gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "

9
2018-06-05 07:29



Ho trovato un pacchetto che è installato 2 giorni fa a /var/log/dpkg.logma non in /var/log/apt/history.log. Ancora non so perché ... - Samuel Li


Tutto su una riga; per l'uso del comando

Seleziona e stampa solo i nomi dei pacchetti installati di recente, tutti su una riga.

Per fare ciò, modifica la risposta più votata a:

cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'

Ciò si traduce in una singola riga di nomi di pacchetti. Tale linea può essere facilmente aggiunta a a sudo apt-get purge comando.

Esempio di output

libgnome-media-profiles-3.0-0 gstreamer0.10-gconf gnome-media gnome-menus librest-0.7-0 libgoa-1.0-common libgoa-1.0-0 libwacom-common libwacom2 ubuntu-docs apg libgnome-control-center1 libgnomekbd-common libgnomekbd7 gnome-control-center-data gnome-icon-theme-symbolic gnome-settings-daemon ubuntu-system-service gnome-control-center gnome-online-accounts gnome-session-bin indicator-power mousetweaks

Elenco dei pacchetti uno sotto l'altro

A grande richiesta, ecco una versione leggermente adattata per elencare i pacchetti uno sotto l'altro:

cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'

5
2018-05-26 01:43



Non analizzare l'output di cat comando. E che ne dici di questo awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log? - Avinash Raj
@AvinashRaj Your awk comando stampa i pacchetti uno sotto un altro; il mio Il prossimo un altro. Ecco perché un esempio di output potrebbe essere utile di volta in volta. - Serge Stroobandt


C'è un pacchetto chiamato wajig Controllalo per la riga di comando, è la prima cosa che installo ora. Come aptitude, eccetto che funziona come ci si aspetterebbe che un dispatcher di comandi funzioni. Quindi, davvero, non è come l'attitudine. I comandi di seguito sono solo un piccolo sottoinsieme.

wajig help
Common JIG commands:

 update         Update the list of downloadable packages

 new            List packages that became available since last update
 newupgrades    List packages newly available for upgrading

 install        Install (or upgrade) one or more packages or .deb files
 remove         Remove one or more packages (see also purge)

 toupgrade      List packages with newer versions available for upgrading
 upgrade        Upgrade all of the installed packages or just those listed

 listfiles      List the files that are supplied by the named package
 listnames      List all known packages or those containing supplied string
 whatis         For each package named obtain a one line description
 whichpkg       Find the package that supplies the given command or file

Run 'wajig -v commands' for a complete list of commands.

2
2017-12-12 02:04



Non sono sicuro di come wajig aiuta ad elencare gli ultimi pacchetti. Non vedo un comando per questo dopo uno sguardo superficiale attraverso i comandi. Sai qual è il comando? - Ehtesh Choudhury


Il seguente trucco risponde alla richiesta di Aleksandr Dubinsky di limitare questo ai pacchetti installati manualmente:

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 elenca le linee comuni a due file ordinati.
  • <(command) si espande al nome di un file contenente l'output di command.
  • apt-mark showmanual elenca i pacchetti installati manualmente; vale a dire. quelli che non dovrebbero mai essere auto-rimossi.
  • grep " install " /var/log/dpkg.log è preso dalla risposta accettata.

Un'alternativa, che mostra più informazioni, in ordine cronologico e l'accesso a tutti i registri disponibili, è:

zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.log
grep -F "`comm -12 <(apt-mark showmanual | sort) <(cat /tmp/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)`" /tmp/dpkg.log | grep \<none\>

grep \<none\> limita i risultati alle nuove installazioni. Ad esempio, potresti utilizzare grep per limitare la ricerca a un periodo di tre mesi aggiungendo grep 2016-0[567] alla prima pipeline; è molto flessibile.


2
2017-07-16 12:56



Questo si sta avvicinando. Cose che potrebbero essere migliorate: 1) mostra i pacchetti in ordine cronologico, 2) mostra più dettagli come data / ora di installazione, la versione, forse anche la dimensione 3) mostra tutti i pacchetti installati da quando è stato installato il sistema operativo. - Aleksandr Dubinsky
Stupefacente! Ti dispiace se pulisco la tua risposta per essere più concisa con più spiegazioni su ciascun comando? - Aleksandr Dubinsky
@AleksandrDubinsky Grazie per quella modifica; Ho corretto la descrizione in modo che corrisponda alle modifiche apportate. - GKFX
Ti dispiace se rimuovo il "seguente trucco risponde al rumore di richiesta di Aleksandr Dubinsky, il primo comando che non è utile, metti una buona intestazione, metti il ​​comando principale in cima, aggiungi un output di esempio e prova a descrivere tutti i comandi coinvolti? - Aleksandr Dubinsky
C'è un bug nell'ultimo comando, perché grep -F trova corrispondenze parziali. Ad esempio, se python3 è installato, abbinerà anche tutte le librerie python3 (python3-click-package) compresi quelli che non sono più installati. Inoltre, grep -Fw non aiuta perché - è un limite di parole. - Aleksandr Dubinsky


Oltre alla risposta di DoR, per coloro che preferiscono una GUI, c'è una voce di menu File -> Cronologia in Synaptic.


1
2017-12-12 00:51



E come rafalcieslak sottolinea, questa funzione è disponibile anche in Software Center. - belacqua
La cronologia sinaptica mostra solo ciò che hai installato tramite Synaptic ... totalmente inutile. - HDave


Ecco alcune shell per elencare i file di dpkg installati. (che dovrebbe includere tutti i pacchetti apt / aptitude / software center / sinaptici installati)

grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\  -f2

Questo non include le informazioni sull'ora / data dell'installazione. Ma può essere utile per determinare eventuali differenze nei pacchetti installati da os install a current.


1
2018-02-13 19:22





Il problema con la visualizzazione della cronologia di installazione in Software Center o Synaptic è che è difficile copiare / incollare il contenuto in una e-mail (ad esempio quando si parla di supporto tecnico!). L'alternativa è visualizzare il contenuto dei file di registro /var/log/apt come root.


-1
2018-06-07 00:07



Giusto per chiarire, per visualizzare semplicemente i contenuti in /var/log/aptNON è necessario essere root o con privilegi di amministratore. - Samuel Li