Czy można uzyskać listę pakietów ostatnio zainstalowanych przez apt-get?
apt-mark showmanual | less
nie robi tego?
comm -12 a b
z a
posortoanej kopią apt-mark showmanual
i b
posortowanej listy z jednej z poniższych odpowiedzi.
Czy można uzyskać listę pakietów ostatnio zainstalowanych przez apt-get?
apt-mark showmanual | less
nie robi tego?
comm -12 a b
z a
posortoanej kopią apt-mark showmanual
i b
posortowanej listy z jednej z poniższych odpowiedzi.
Odpowiedzi:
Polecenie, aby wyświetlić listę ostatnio zainstalowanych pakietów, które zostały zainstalowane dowolną metodą ( apt-get
, Software Center i in.):
grep " install " /var/log/dpkg.log
Przykładowe dane wyjściowe:
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
Możesz uruchomić to polecenie, aby wyświetlić tylko ostatnio zainstalowane nazwy pakietów,
awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log
Historia poleceń do listy apt-get
(UWAGA: nie wyświetla zainstalowanych zależności, po prostu wyświetla listę poprzednich apt-get
poleceń, które zostały uruchomione):
grep " install " /var/log/apt/history.log
Przykładowe dane wyjściowe:
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
cat /var/log/apt/history.log | grep "\ install\ " > install.log
upgrade
wdpkg.log
Centrum oprogramowania Ubuntu pokazuje całą historię wszystkich pakietów, które zostały zainstalowane / zaktualizowane / usunięte. Po prostu kliknij „Historia” u dołu listy po lewej stronie.
dpkg.log
loguje aktualizacje.
Aby zobaczyć również starsze pakiety posortowane według czasu instalacji:
grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log
A dla pakietów zainstalowanych bardzo dawno temu:
gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "
/var/log/dpkg.log
, ale nie w /var/log/apt/history.log
. Nadal nie wiem, dlaczego ...
Poniższa sztuczka odpowiada na prośbę Aleksandra Dubińskiego, aby ograniczyć to do ręcznie instalowanych pakietów:
comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
comm -12
wyświetla linie wspólne dla dwóch posortowanych plików.<(command)
rozwija się do nazwy pliku zawierającego dane wyjściowe command
.apt-mark showmanual
wyświetla ręcznie zainstalowane pakiety; to znaczy. te, które nigdy nie powinny być automatycznie usuwane.grep " install " /var/log/dpkg.log
pochodzi z zaakceptowanej odpowiedzi.Alternatywą jest wyświetlenie dodatkowych informacji w porządku chronologicznym i dostęp do wszystkich dostępnych dzienników:
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\>
ogranicza wyniki do nowych instalacji. Możesz na przykład użyć grep, aby ograniczyć wyszukiwanie do okresu trzech miesięcy, dodając grep 2016-0[567]
do pierwszego potoku; jest bardzo elastyczny.
grep -F
znajdź częściowe dopasowania. Na przykład, jeśli python3
jest zainstalowany, będzie również pasował do wszystkich bibliotek python3 ( python3-click-package
), w tym tych, które nie są już zainstalowane. Co więcej, grep -Fw
nie pomaga, ponieważ -
jest granicą słów.
Wybierz i wydrukuj tylko ostatnio zainstalowane nazwy pakietów, wszystkie w jednym wierszu.
Aby to zrobić, zmień najczęściej głosowaną odpowiedź na:
cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'
W rezultacie powstaje jeden wiersz nazw pakietów. Taki wiersz można łatwo dodać do sudo apt-get purge
polecenia.
Przykładowe dane wyjściowe
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
Zgodnie z popularnym zapotrzebowaniem, tutaj jest nieco dostosowana wersja do umieszczania pakietów jeden pod drugim:
cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'
cat
polecenia. A co powiesz na to awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log
?
awk
polecenie drukuje pakiety jeden pod drugim; kopać jeden obok drugiego. Dlatego przykład wyjściowy może być przydatny od czasu do czasu.
Jest pakiet o nazwie wajig Sprawdź to w wierszu poleceń, jest to pierwsza rzecz, którą teraz instaluję. Podobnie jak aptitude, z tym wyjątkiem, że działa tak, jakbyś oczekiwał od dyspozytora poleceń. Naprawdę, to nie jest tak, jak zręczność. Poniższe polecenia to tylko niewielki podzbiór.
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.
wajig
pomaga w wyświetlaniu najnowszych pakietów. Nie widzę takiego polecenia po pobieżnym przejrzeniu poleceń. Czy wiesz, co to za polecenie?
Oprócz odpowiedzi DoR, dla tych, którzy wolą GUI, w Synaptic jest pozycja menu Plik -> Historia.
Oto kilka powłok do listy zainstalowanych plików dpkg. (które powinny obejmować wszystkie zainstalowane pakiety apt / aptitude / centrum oprogramowania / synaptic)
grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\ -f2
Nie obejmuje to informacji o czasie i dacie instalacji. Ale może być przydatny w określaniu wszelkich różnic w pakietach instalowanych z instalacji OS na bieżącą.
Problem z przeglądaniem historii instalacji w Software Center lub Synaptic polega na tym, że trudno jest skopiować / wkleić zawartość do wiadomości e-mail (np. Podczas rozmowy z pomocą techniczną!). Alternatywą jest przeglądanie zawartości plików dziennika /var/log/apt
jako root.
/var/log/apt
, NIE musisz być rootem ani mieć uprawnień administratora.