Kommentarer
Svar
Du kan liste installeret pakke ved hjælp af apt
ved hjælp af følgende kommando:
apt --installed list
Rediger
Brug følgende kommando til at liste installeret pakke gennem 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 angivet, viser alle installerede pakker. Jeg vil have pakker, som jeg har installeret manuelt ved hjælp af
apt-get
kommandoer. - @ user598200 – Overvej at acceptere dette svar. 🙂
- Baseret på dette askubuntu-svar 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,}
producerer den samme output uden det unødvendigezcat
ogcat
. hvis du ikke ' ikke bryr dig om den nøjagtige rækkefølge af pakkenavne i output, vil/var/log/apt/history.log*
gøre for filnavnargumentet.
Svar
zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}"
Dette giver dig en liste over pakker, der har blevet installeret i den rækkefølge, de blev installeret.
I henhold til min kommentar er kun de sidste 12 måneders værdi af /var/log/dpkg.log*
filer gemt som standard. For at ændre dette skal du redigere /etc/logrotate.d/dpkg
. Skift f.eks. rotate 12
til rotate 1200
for at holde de sidste 1200 måneder (100 år) værd – effektivt for evigt, slet aldrig de gamle logfiler.
BTW, hvis du vil se, hvornår pakker blev opgraderet, skal du ændre install
til upgrade
. f.eks.
zgrep -h " upgrade " /var/log/dpkg.log* | sort
samme for remove
og purge
.
Svar
Hvis du kun vil vise en liste med pakkerne, har du manuelt installeret du kunne køre:
apt --installed list | grep -v automatic
for ikke at angive pakker, der er markeret som automatisk installeret
-v, --invert-match Invert the sense of matching, to select non-matching lines.
En anden mulighed, der ikke fejlagtigt udelukker en uheldig pakke med " automatisk " i navnet er:
apt-mark showmanual
Kommentarer
- Kort og sødt og sorteret alfabetisk.
- Hvis et pakkenavn tilfældigt indeholder " automatisk ", filtreres det med grep.
Svar
Dette er afhængig af aptitude
, men det følgende giver dig en liste over pa ckages, der er installeret manuelt, dvs. ikke installeres bare på grund af afhængighed:
aptitude search -F %p "~i!~M"
Afhængigt af hvordan billedet er opsat, vil det sandsynligvis også omfatte nogle installerede af basissystemet. Du kan slippe af en hel del af dem ved at skifte dem til at blive installeret automatisk, og markér bare som manuelle de få, du vil beholde på trods af at du ikke har noget afhængigt af dem. Dette er let at gøre med M inde i aptitude
på et blottet system.
Svar
Brug dpkg
til at liste alle pakker, der er installeret på et system: dpkg --get-selections
For at liste alle pakker, der er installeret ved hjælp af apt-get
se på /var/log/apt/history.log
. Denne log indeholder også pakker, du har fjernet. Du kan grep
for de linjer, der starter med Install:
.
Kommentarer
- Som du har angivet, viser alle installerede pakker. Jeg vil have pakker, som jeg har installeret manuelt ved hjælp af
apt-get
kommandoer. - @ user598200 Ah. Tak for afklaring. Se mit redigerede svar. Jeg er ikke sikker på, om
apt-get
har den funktionalitet. Men hver gang du installerer noget, føjes det til den logfil, jeg nævner i svaret. - Tak.På nogen måde kan jeg gennemgå alle
/var/log/apt/history.log*
filer og udskrive pakkenavnene i et hit? - @ user598200 Du kunne bruge
grep
.grep "Install: package" /var/log/apt/history.log*
Svar
Ubuntu 14.04 og derover bruger apt list --installed
til ældre versioner skal du bruge dpkg --get-selections | grep -v deinstall
Svar
Lidt kortere og sorteret
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u
Kommentarer
- Nogle forklaringer på, hvorfor dette er bedre end det svar, som @ GAD3R gav, ville være nyttigt.
- Først og fremmest er det ' kortere, andet af alt sorteres output
- Ideen på U & L er, at du forbedrer dit svar (eller spørgsmål, hvis du havde sendt et) ved at redigere indlægget i stedet for at skjule værdifuld information i kommentarer. Som jeg ville klippe og indsætte kommandoen, er 26 byte mindre ikke så interessant, men det faktum, at din output er sorteret, hører virkelig med i selve svaret. Hvis en sådan forbedring var som en reaktion på en anmodning om afklaring, opdaterede en simpel " mit svar ", som kommentaren vil gøre, kommentatoren ( i dette tilfælde vil jeg) blive underrettet om denne kommentar. Jeg tror, at tærhed også er årsagen til, at nogen nedstemte dit svar.
- 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 ' vigtigt at bemærke, at logrotate som standard er konfigureret til kun at beholde disse filer i de sidste 12 måneder. Det samme gælderthe /dpkg.log
filer i/var/log
(som giver lignende oplysninger i et (IMO) lettere parset format). Rediger/etc/logrotate.d/{apt,dpkg}
for at ændre politik for opbevaring af dit system.