Jak mohu získat seznam balíků, které jsem nainstaloval pomocí apt-get? [duplicate]

Tato otázka již má odpovědi zde :

Komentáře

  • obě odpovědi zde zmiňují 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í pro the /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.

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.*" 

Zdroj: Askubuntu

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ých zcat a cat. 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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *