megjegyzések
Válasz
A telepített csomagokat felsorolhatja a apt
használatával a következő paranccsal:
apt --installed list
Szerkesztés
A következő paranccsal listázhatja a telepített csomagokat a apt-get
keresztül:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*"
Megjegyzések
- Amint azt kijelentette, az összes telepített csomagot felsorolja. Olyan csomagokat szeretnék, amelyeket kézzel telepítettem a
apt-get
parancsok használatával. - @ user598200 – Fontolja meg ennek a válasznak az elfogadását. 🙂
- ezen askubuntu válasz alapján
(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,}
ugyanazt a kimenetet hozza létre a feleslegeszcat
éscat
nélkül. ha nem ' nem törődik a kimenet csomagneveinek pontos sorrendjével, akkor a/var/log/apt/history.log*
a fájlnév argumentumhoz fog megfelelni.
Válasz
zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}"
Ez felsorolja azokat a csomagokat, amelyek telepítésre kerültek, a telepítés sorrendjében.
Megjegyzéseim szerint alapértelmezés szerint csak az elmúlt 12 hónap értékű /var/log/dpkg.log*
fájlokat tartjuk meg. Ennek megváltoztatásához szerkessze a /etc/logrotate.d/dpkg
parancsot. Például változtassa meg a rotate 12
értéket rotate 1200
-re, hogy megőrizze az elmúlt 1200 hónap (100 év) értékét – hatékonyan örökre, soha ne törölje a régi naplókat.
BTW, ha meg szeretné tudni, hogy mikor frissítették a csomagokat, módosítsa az install
értéket upgrade
-re. pl.
zgrep -h " upgrade " /var/log/dpkg.log* | sort
ugyanaz remove
és purge
.
Válasz
Ha csak egy listát szeretne megjeleníteni a csomagokkal manuálisan telepítve futtathatja:
apt --installed list | grep -v automatic
hogy ne sorolja fel az automatikusan telepítettként megjelölt csomagokat
-v, --invert-match Invert the sense of matching, to select non-matching lines.
Egy másik lehetőség, amely “tévesen nem zár ki egy szerencsétlen csomagot " automata " a neve:
apt-mark showmanual
Megjegyzések
- Rövid és kedves, és ábécé szerint rendezve.
- Ha véletlenül egy csomag neve " automatikus " -et tartalmaz, akkor a grep kiszűri.
Válasz
Ez a aptitude
-re támaszkodik, de a következők adnak egy pa listája a manuálisan telepített kkages, azaz csak a függőség miatt nem telepíthetők:
aptitude search -F %p "~i!~M"
A kép beállításától függően valószínűleg tartalmazni fog néhány telepítettet is az alaprendszer által. Megszabadulhat ezek egy részétől, ha átállítja őket az automatikus telepítésre, majd jelölje meg manuálisként azt a néhányat, amelyet meg szeretne tartani annak ellenére, hogy nincs tőlük semmi. Ezt könnyű megcsinálni egy M csupasz rendszeren belül aptitude
.
Válasz
A dpkg
segítségével listázhatja az összes rendszerre telepített csomagot: dpkg --get-selections
A apt-get
nézd meg /var/log/apt/history.log
. Ez a napló az eltávolított csomagokat is tartalmazza. grep
megadhatja azokat a sorokat, amelyek Install:
betűvel kezdődnek.
Megjegyzések
- Amint azt kijelentette, az összes telepített csomagot felsorolja. Olyan csomagokat szeretnék, amelyeket manuálisan telepítettem a
apt-get
parancsok használatával. - @ user598200 Ah. Köszönöm a pontosítást. Lásd szerkesztett válaszomat. Nem vagyok biztos benne, hogy a
apt-get
rendelkezik-e ezzel a funkcióval. De amikor valamit telepít, az a naplófájlhoz csatolódik, amelyet a válaszban megemlítek. - Köszönöm.Bármilyen módon átnézhetem az összes
/var/log/apt/history.log*
fájlt és egy csomagban kinyomtathatom a csomagneveket? - @ user598200 Használhatja a
grep
.grep "Install: package" /var/log/apt/history.log*
Válasz
Az Ubuntu 14.04 és újabb verziói a apt list --installed
régebbi verzióknál használja a dpkg --get-selections | grep -v deinstall
Válasz
Kicsit rövidebb és rendezett
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u
Megjegyzések
- Néhány magyarázat arra, hogy miért van ez jobb, mint a @ GAD3R által adott válasz hasznos lehet.
- Először is ' rövidebb, a kimenet második része rendezve van
- Az U & L ötlete az, hogy a válaszod (vagy a kérdésed, ha feltetted volna) javításával a bejegyzés szerkesztésével javítasz, ahelyett, hogy értékes információkat rejtegetnél a megjegyzésekben. Mivel kivágnám és beilleszteném a parancsot, a 26 bájttal kevesebb nem annyira érdekes, de az a tény, hogy a kimenet rendezve van, valóban magában a válaszban van. Ha egy ilyen javulás a pontosítás iránti kérelemre adott válaszként, akkor egy egyszerű " válasz frissítette a válaszomat ", ahogyan a megjegyzés teszi, a hozzászóló ebben az esetben én) értesítést kapok arról a megjegyzésről. Úgy gondolom, hogy a szűkszavúság okozza azt is, hogy valaki visszavetette a válaszodat.
- Ha golfozni szeretnél, próbáld ki a
zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u
et.
history.log
fájlok a/var/log/apt/
fájlban. ' fontos megjegyezni, hogy alapértelmezés szerint a logrotate úgy van beállítva, hogy csak az elmúlt 12 hónap értékét tárolja. Ugyanez vonatkozik athe /dpkg.log
fájlokra a/var/log
fájlokban (amelyek hasonló információkat nyújtanak (IMO) könnyebben értelmezhető formátumában). Szerkessze a/etc/logrotate.d/{apt,dpkg}
elemet a rendszer megőrzési házirendjének módosításához.