Komentáře
Odpovědět
Instalovaný balíček můžete zobrazit pomocí apt
pomocí následujícího příkazu:
apt --installed list
Upravit
Pomocí následujícího příkazu zobrazíte seznam nainstalovaných balíků pomocí apt-get
:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*"
Komentáře
- Jak jste uvedli, seznam všech nainstalovaných balíčků. Chci balíčky, které jsem nainstaloval ručně pomocí příkazů
apt-get
. - @ user598200 – Zvažte přijetí této odpovědi. 🙂
- Na základě této odpovědi askubuntu se dostanu k
(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,}
vytvoří stejný výstup bez zbytečnýchzcat
acat
. pokud vám ' nezáleží na přesném pořadí názvů balíků ve výstupu,/var/log/apt/history.log*
udělá argument názvu souboru.
Odpověď
zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}"
Zobrazí se seznam balíčků, které mají byly nainstalovány v pořadí, v jakém byly nainstalovány.
Podle mého komentáře jsou ve výchozím nastavení uchovávány pouze soubory /var/log/dpkg.log*
za posledních 12 měsíců. Chcete-li to změnit, upravte /etc/logrotate.d/dpkg
. Například změňte rotate 12
na rotate 1200
, aby zůstala hodnota za posledních 1200 měsíců (100 let) – efektivně navždy, nikdy nemažte staré protokoly.
BTW, pokud chcete zjistit, kdy byly balíčky upgradovány, změňte install
na upgrade
. např.
zgrep -h " upgrade " /var/log/dpkg.log* | sort
stejné pro remove
a purge
.
Odpověď
Pokud chcete zobrazit pouze seznam balíčků, máte ručně nainstalované můžete spustit:
apt --installed list | grep -v automatic
nevypisovat balíčky označené jako automaticky nainstalované
-v, --invert-match Invert the sense of matching, to select non-matching lines.
Další možnost, která omylem nevyloučí nešťastný balíček s " automatickým " v názvu je:
apt-mark showmanual
Komentáře
- Krátké a sladké a seřazené podle abecedy.
- Pokud název balíčku náhodou obsahuje " automatický ", vyfiltruje ho grep.
Odpověď
Toto spoléhá na aptitude
, ale následující vám poskytne seznam pa ckages, které jsou instalovány ručně, tj. nejsou instalovány jen kvůli závislosti:
aptitude search -F %p "~i!~M"
V závislosti na tom, jak je obrázek nastaven, bude pravděpodobně obsahovat i některé nainstalované základním systémem. Můžete se jich hodně zbavit tím, že je přepnete na automatickou instalaci, pak jen označíte jako manuální těch pár, které si chcete ponechat, přestože na nich nemáte nic závislého. To je snadné s M inside aptitude
na holém systému.
Odpovědět
Použijte dpkg
k výpisu všech balíků nainstalovaných v systému: dpkg --get-selections
Chcete-li zobrazit seznam všech balíků nainstalovaných pomocí apt-get
podívejte se na /var/log/apt/history.log
. Tento protokol obsahuje také balíčky, které jste odebrali. Můžete grep
pro řádky, které začínají Install:
.
Komentáře
- Jak jste uvedli, seznam všech nainstalovaných balíků. Chci balíčky, které jsem nainstaloval ručně pomocí příkazů
apt-get
. - @ user598200 Ah. Děkuji za objasnění. Viz moje upravená odpověď. Nejsem si jistý, zda
apt-get
má tuto funkci. Ale kdykoli něco nainstalujete, připojí se to k souboru protokolu, který zmíním v odpovědi. - Díky.Jakýmkoli způsobem mohu projít všechny soubory
/var/log/apt/history.log*
a vytisknout názvy balíčků jedním zásahem? - @ user598200 Můžete použít
grep
.grep "Install: package" /var/log/apt/history.log*
Odpověď
Ubuntu 14.04 a vyšší používá apt list --installed
pro starší verze použijte dpkg --get-selections | grep -v deinstall
odpověď
Trochu kratší a seřazené
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u
Komentáře
- Vysvětlení, proč tomu tak je lepší než odpověď, kterou dal @ GAD3R, by byla užitečná.
- Nejprve je ' kratší, druhý ze všech výstupů je seřazen
- Myšlenkou U & L je, že svou odpověď (nebo otázku v případě, že jste nějaký zveřejnili) zlepšíte úpravou příspěvku místo skrytí cenných informací v komentářích. Jak bych vyjmul a vložil příkaz o 26 bajtů méně, není to tak zajímavé, ale skutečnost, že je váš výstup seřazen, opravdu patří do samotné odpovědi. Pokud takové vylepšení bylo reakcí na žádost o vysvětlení, jednoduše " aktualizoval mou odpověď ", jak to udělá komentář, komentátor ( v tomto případě já) dostanu oznámení o tomto komentáři. Myslím si, že právě nestálost je příčinou toho, že někdo odmítl vaši odpověď.
- Pokud si chcete zahrát golf, zkuste
zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u
.
history.log
soubory v/var/log/apt/
. ' Je důležité si uvědomit, že ve výchozím nastavení je logrotate nakonfigurován tak, aby tyto soubory neměly hodnotu za posledních 12 měsíců. Totéž platí prothe /dpkg.log
soubory v/var/log
(které poskytují podobné informace ve (IMO) snadněji analyzovaném formátu). Úpravou/etc/logrotate.d/{apt,dpkg}
změníte zásady uchovávání informací pro váš systém.