Vraag Is het mogelijk om een ​​lijst met meest recent geïnstalleerde pakketten te krijgen?


Is het mogelijk om een ​​lijst te krijgen van pakketten die het meest recent zijn geïnstalleerd via apt-get?


141
2017-12-11 22:41


oorsprong


serverfault.com/questions/175504/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Nu, als alleen iemand me zou vertellen hoe ik de lijst moet plaatsen handmatig geïnstalleerd verpakt dat Ik heb dit niet al verwijderd. Zucht, Linux. - Aleksandr Dubinsky
@AleksandrDubinsky apt-mark showmanual | less doet het niet? - GKFX
@ GKFX bedoelde ik in de context van recent geïnstalleerde pakketten. - Aleksandr Dubinsky
@AleksandrDubinsky Je zou moeten gebruiken comm -12 a b met a een gesorteerde kopie van apt-mark showmanual en b een gesorteerde lijst uit een van de onderstaande antwoorden. - GKFX


antwoorden:


Opdracht om recent geïnstalleerde pakketten weer te geven die via een willekeurige methode zijn geïnstalleerd (apt-get, Software Center et al.):

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

Voorbeelduitvoer:

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

U kunt deze opdracht uitvoeren om alleen de recent geïnstalleerde pakketnamen weer te geven,

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

Commando om de geschiedenis van te vermelden apt-get (LET OP: dit toont niet de afhankelijkheden die zijn geïnstalleerd, het geeft gewoon een overzicht van het vorige apt-get opdrachten die werden uitgevoerd):

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

Voorbeelduitvoer:

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



het probleem met synaptic is dat het niet laat zien wat je doet met aptitude, apt-get en dpkg, om deze reden +1 voor deze optie - hhlp
Deze opdracht toont geen updates. Gebruik het softwarecentrum om alles te zien. - HDave
Het is wellicht beter om een ​​tekstbestand als dit op te slaan cat /var/log/apt/history.log | grep "\ install\ " > install.log - CrandellWS
grep " install " /var/log/dpkg.log dat zal volstaan. Het is niet nodig om te gebruiken cat. Zie ook deze. - augurar
merk op dat dit alleen pakketten lijkt te vinden die nieuw zijn geïnstalleerd. Pakketten waarvoor een nieuwe versie is geïnstalleerd, verschijnen als upgrade in dpkg.log - Andre Holzner


Ubuntu's Software Center toont de volledige geschiedenis van alle pakketten die zijn geïnstalleerd / geüpgraded / verwijderd. Klik gewoon op 'Geschiedenis' onderaan de lijst aan de linkerkant.


13
2017-12-12 13:09



Deze geschiedenisknop staat nu bovenaan in de GUI en kan geïnstalleerde pakketten en updates tonen. Dit zou het geaccepteerde antwoord op de vraag moeten zijn, aangezien dit het enige antwoord is dat werkt voor updates. - HDave
Deze vraag specificeert geen desktop (GUI) -omgeving, maar het geaccepteerde antwoord is geldig in zowel GUI- als niet-GUI-scenario's. - msanford
@HDave Absoluut niet waar, dpkg.log logt updates bij. - GKFX


Om ook oudere pakketten te zien gesorteerd op tijd van installatie:

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

En voor pakketten die heel lang geleden zijn geïnstalleerd:

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

9
2018-06-05 07:29



Ik heb een pakket gevonden dat 2 dagen geleden in is geïnstalleerd /var/log/dpkg.log, maar niet in /var/log/apt/history.log. Weet nog steeds niet waarom ... - Samuel Li


Alles op één regel; voor commando gebruik

Selecteer en print alleen de recent geïnstalleerde pakketnamen, allemaal op één regel.

Wijzig hiervoor het meest gestemde antwoord op:

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

Dit resulteert in een enkele regel met pakketnamen. Zo'n regel kan eenvoudig worden toegevoegd aan een sudo apt-get purge opdracht.

Voorbeelduitvoer

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

Pakketten onder elkaar weergeven

Op veler verzoek is hier een enigszins aangepaste versie om de pakketten onder elkaar op een rij te zetten:

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

5
2018-05-26 01:43



De uitvoer van niet parseren cat opdracht. En wat denk je hiervan? awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log? - Avinash Raj
@AvinashRaj Your awk opdracht drukt de pakketten af beneden een ander; de mijne volgende een ander. Daarom kan een uitvoervoorbeeld van tijd tot tijd nuttig zijn. - Serge Stroobandt


Er is een pakket genaamd wajig Bekijk het voor de opdrachtregel, het is het eerste dat ik nu installeer. Net als aptitude, behalve dat het werkt zoals je zou verwachten dat een opdrachtverzender werkt. Dus echt, het is niet zoals aanleg. De onderstaande opdrachten zijn slechts een kleine subset.

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



Ik weet niet zeker hoe wajig helpt bij het vermelden van de nieuwste pakketten. Ik zie daar geen opdracht voor na een vluchtige blik door de commando's. Weet je wat het commando is? - Ehtesh Choudhury


De volgende truc beantwoordt het verzoek van Aleksandr Dubinsky om dit te beperken tot handmatig geïnstalleerde pakketten:

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 geeft regels weer die horen bij twee gesorteerde bestanden.
  • <(command) breidt uit naar de naam van een bestand met de uitvoer van command.
  • apt-mark showmanual vermeldt handmatig geïnstalleerde pakketten; d.w.z. die die nooit automatisch moeten worden verwijderd.
  • grep " install " /var/log/dpkg.log is overgenomen van het geaccepteerde antwoord.

Een alternatief, met meer informatie, in chronologische volgorde en toegang tot alle beschikbare logs, is:

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\> beperkt resultaten tot nieuwe installaties. U kunt bijvoorbeeld grep gebruiken om de zoekopdracht te beperken tot een periode van drie maanden door deze toe te voegen grep 2016-0[567] naar de eerste pijplijn; het is erg flexibel.


2
2017-07-16 12:56



Dit komt dichterbij. Dingen die kunnen worden verbeterd: 1) toon de pakketten in chronologische volgorde, 2) toon meer details zoals installatiedatum / -tijden, de versie, misschien zelfs de grootte 3) toon alle pakketten die zijn geïnstalleerd sinds het besturingssysteem werd geïnstalleerd. - Aleksandr Dubinsky
Verbazingwekkend! Vind je het erg als ik je antwoord opschep om meer beknopt te zijn met meer uitleg over elke opdracht? - Aleksandr Dubinsky
@AleksandrDubinsky Bedankt voor die bewerking; Ik heb de beschrijving gecorrigeerd zodat deze overeenkomt met de wijzigingen die je hebt aangebracht. - GKFX
Vind je het erg als ik de "volgende truc" Aleksandr Dubinsky's verzoek "-ruis verwijder, de eerste opdracht die niet nuttig is, een goede kop plaatst, de hoofdopdracht bovenaan zet, voorbeelduitvoer toevoegt en alle commando's probeert te beschrijven betrokken? - Aleksandr Dubinsky
Er is een fout in het laatste commando, omdat grep -F vind gedeeltelijke overeenkomsten. Bijvoorbeeld, als python3 is geïnstalleerd, zal het ook overeenkomen met alle python3-bibliotheken (python3-click-package) inclusief degenen die niet meer zijn geïnstalleerd. Bovendien, grep -Fw helpt niet omdat - is een woordgrens. - Aleksandr Dubinsky


Naast het antwoord van DoR is er een menu-item File -> History in Synaptic voor diegenen die de voorkeur geven aan een GUI.


1
2017-12-12 00:51



En als rafalcieslak wijst erop dat deze functie ook beschikbaar is in Software Center. - belacqua
Synaptische geschiedenis laat alleen zien wat je hebt geïnstalleerd via Synaptic ... totaal nutteloos. - HDave