Kommentarer
Svar
Du kan liste opp installert pakke ved hjelp av apt
ved hjelp av følgende kommando:
apt --installed list
Rediger
Bruk følgende kommando for å liste installert pakke gjennom apt-get
:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*"
Kommentarer
- Som du har oppgitt, viser alle installerte pakker. Jeg vil ha pakker som jeg har installert manuelt med
apt-get
-kommandoer. - @ user598200 – Vurder å godta dette svaret. 🙂
- Basert på dette askubuntu-svaret kommer jeg til
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Commandline: apt(-get)? install)' | grep -v aptdaemon | egrep '^Commandline:'
-
zgrep -hPo '^Commandline: apt-get install (?!.*--reinstall)\K.*' /var/log/apt/history.log{.*.gz,}
gir samme utdata uten unødvendigzcat
ogcat
. hvis du ikke ' ikke bryr deg om den nøyaktige rekkefølgen på pakkenavn i utdataene, vil/var/log/apt/history.log*
gjøre for filnavnargumentet.
Svar
zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}"
Dette vil gi deg en liste over pakker som har blitt installert, i den rekkefølgen de ble installert.
I henhold til kommentaren min blir bare de siste 12 månedene verdt /var/log/dpkg.log*
filer som standard. For å endre dette, rediger /etc/logrotate.d/dpkg
. For eksempel, endre rotate 12
til rotate 1200
for å holde de siste 1200 månedene (100 år) verdt – effektivt for alltid, aldri slett de gamle loggene.
BTW, hvis du vil se når pakker ble oppgradert, kan du endre install
til upgrade
. f.eks.
zgrep -h " upgrade " /var/log/dpkg.log* | sort
samme for remove
og purge
.
Svar
Hvis du bare vil vise en liste med pakkene, har du manuelt installert du kan kjøre:
apt --installed list | grep -v automatic
for ikke å liste pakker som er merket som automatisk installert
-v, --invert-match Invert the sense of matching, to select non-matching lines.
Et annet alternativ som ikke vil ekskludere feilaktig en uheldig pakke med " automatisk " i navnet er:
apt-mark showmanual
Kommentarer
- Kort og søt, og sortert alfabetisk.
- Hvis et pakkenavn tilfeldigvis inneholder " automatisk ", blir det filtrert ut av grep.
Svar
Dette er avhengig av aptitude
, men det følgende vil gi deg en liste over pa ckages som er installert manuelt, dvs. ikke er installert bare på grunn av avhengighet:
aptitude search -F %p "~i!~M"
Avhengig av hvordan bildet er konfigurert, vil det sannsynligvis også inkludere noen installerte av basesystemet. Du kan kvitte deg med en del av dem ved å bytte dem til å bli automatisk installert, og deretter bare merke de få du vil beholde som manuelle til tross for at du ikke har noe avhengig av dem. Dette er enkelt å gjøre med M inne i aptitude
på et bare system.
Svar
Bruk dpkg
til å liste opp alle pakker som er installert på et system: dpkg --get-selections
For å liste opp alle pakker som er installert med apt-get
se på /var/log/apt/history.log
. Denne loggen inneholder også pakker du har fjernet. Du kan grep
for linjene som starter med Install:
.
Kommentarer
- Som du har oppgitt, viser alle installerte pakker. Jeg vil ha pakker som jeg har installert manuelt med
apt-get
-kommandoer. - @ user598200 Ah. Takk for at du avklarte. Se mitt redigerte svar. Jeg er ikke sikker på om
apt-get
har den funksjonaliteten. Men hver gang du installerer noe, legges det til loggfilen jeg nevner i svaret. - Takk.Uansett hvordan jeg kan gå gjennom alle
/var/log/apt/history.log*
filer og skrive ut pakkenavnene i ett treff? - @ user598200 Du kan bruke
grep
.grep "Install: package" /var/log/apt/history.log*
Svar
Ubuntu 14.04 og nyere bruker apt list --installed
for eldre versjoner bruk dpkg --get-selections | grep -v deinstall
Svar
Litt kortere og sortert
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u
Kommentarer
- Noe forklaring på hvorfor dette er bedre enn svaret @ GAD3R ga ville være nyttig.
- Først og fremst er det ' kortere, det andre av alt er sortert
- Tanken på U & L er at du forbedrer svaret ditt (eller spørsmålet i tilfelle du hadde lagt ut et) ved å redigere innlegget, i stedet for å skjule verdifull informasjon i kommentarene. Som jeg ville kutte og lime inn kommandoen er 26 byte mindre ikke så interessant, men det faktum at utdataene dine er sortert, hører virkelig hjemme i selve svaret. Hvis en slik forbedring var som en reaksjon på en anmodning om avklaring, oppdaterte en enkel " svaret mitt " som kommentaren vil gjøre, kommentatoren ( i dette tilfellet vil jeg) få beskjed om den kommentaren. Jeg tror spenningen også er årsaken til at noen nedstemte svaret ditt.
- Hvis du vil spille golf, så prøv
zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u
.
history.log
filer i/var/log/apt/
. Det er ' det er viktig å merke seg at standard er logrotate konfigurert til å beholde bare de siste 12 månedene av disse filene. Det samme gjelderthe /dpkg.log
filer i/var/log
(som gir lignende informasjon i et (IMO) lettere analysert format). Rediger/etc/logrotate.d/{apt,dpkg}
for å endre oppbevaringspolitikken for systemet ditt.