如何列出由Linux中的安装日期排序的已安装软件包
时间:2020-03-21 11:46:11 来源:igfitidea点击:
此简要介绍介绍如何在Unix的操作系统中的命令行中列出按所需安装日期排序的安装包。
如果我们想知道我们在Linux框中的某个日期或者时间安装了多少或者包含哪些包,则会有用。
列出由安装日期排序的安装包
关于Arch Linux:
在ARCH Linux及其衍生物(如antergos)和manjaro linux等衍生物,我们可以使用命令列出通过安装日期排序的已安装的包:
$expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
来自My Arch Linux盒子的示例输出:
[...] 2016-05-24 12:54:10 filesystem 2016-05-24 13:29:57 linux 2016-05-25 16:24:49 btfs 2016-05-25 16:24:49 libtorrent-rasterbar 2016-05-31 17:13:05 cheese 2016-05-31 17:13:05 clutter-gst 2016-05-31 17:39:12 gsl 2016-05-31 17:39:12 guvcview 2016-06-11 19:34:34 chromium 2016-06-11 19:41:24 firefox 2016-06-12 14:34:08 libappindicator-gtk2 2016-06-12 14:34:08 libdbusmenu-glib 2016-06-12 14:34:08 libdbusmenu-gtk2 2016-06-12 14:34:08 libindicator-gtk2 2016-06-12 14:37:52 ao 2016-06-16 13:20:31 exo 2016-06-16 13:20:31 libxfce4ui 2016-06-16 13:20:31 libxfce4util 2016-06-16 13:20:31 perl-uri 2016-06-16 13:20:31 xfconf 2016-06-16 13:20:32 thunar
上面的命令将列出由安装日期排序的所有已安装的包。
我们还可以使用命令列出10个上次安装的软件包:
$expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | tail -n 10
基于RPM的系统:
在Rhel,及其克隆等CentOS,Scienific Linux,以root用户运行以下命令以列出已安装的软件包:
# rpm -qa --last
来自CentOS 7系统的示例输出:
iwl105-firmware-18.168.6.1-49.el7.noarch Mon 22 Jan 2016 03:13:16 PM IST libreport-filesystem-2.1.11-35.el7.centos.x86_64 Mon 22 Jan 2016 03:13:15 PM IST iwl6000g2a-firmware-17.168.5.3-49.el7.noarch Mon 22 Jan 2016 03:13:15 PM IST iwl5000-firmware-8.83.5.1_1-49.el7.noarch Mon 22 Jan 2016 03:13:15 PM IST epel-release-7-9.noarch Mon 22 Jan 2016 03:13:10 PM IST libproxy-0.4.11-10.el7.x86_64 Mon 22 Jan 2016 03:13:09 PM IST mariadb-libs-5.5.52-1.el7.x86_64 Mon 22 Jan 2016 03:13:08 PM IST e2fsprogs-1.42.9-9.el7.x86_64 Mon 22 Jan 2016 03:13:07 PM IST btrfs-progs-4.4.1-1.el7.x86_64 Mon 22 Jan 2016 03:13:06 PM IST libselinux-python-2.5-6.el7.x86_64 Mon 22 Jan 2016 03:13:03 PM IST avahi-autoipd-0.6.31-17.el7.x86_64 Mon 22 Jan 2016 03:13:03 PM IST sudo-1.8.6p7-21.el7_3.x86_64 Mon 22 Jan 2016 03:13:02 PM IST [...]
此外,我们可以使用此命令列出按所安装日期或者时间排序的已安装的软件包:
# rpm -qa --qf '%{INSTALLTIME} (%{INSTALLTIME:date}): %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -n
要找出特定包的安装日期,例如rsyslog,运行:
# rpm -q --last rsyslog
示例输出:
rsyslog-7.4.7-16.el7.x86_64 Mon 22 Jan 2016 03:13:00 PM IST
有关详细信息,关于RPM命令,请参阅手册页。
# man rpm
在基于DEB的系统:
在Debian,Ubuntu和所有APT的系统中,我们可以使用以下命令列出按安装日期/时间排序的已安装的软件包:
$grep " install " /var/log/dpkg.log
来自我的Ubuntu系统的示例输出:
2015-04-20 22:08:13 install base-passwd:amd64 <none> 3.5.39 2015-04-20 22:08:14 install base-files:amd64 <none> 9.4ubuntu4 2015-04-20 22:08:14 install libc6:amd64 <none> 2.23-0ubuntu3 2015-04-20 22:08:15 install perl-base:amd64 <none> 5.22.1-9 2015-04-20 22:08:15 install mawk:amd64 <none> 1.3.3-17ubuntu2 2015-04-20 22:08:15 install debconf:all <none> 1.5.58ubuntu1 2015-04-20 22:08:16 install adduser:all <none> 3.113+nmu3ubuntu4 2015-04-20 22:08:16 install bash:amd64 <none> 4.3-14ubuntu1 2015-04-20 22:08:16 install bsdutils:amd64 <none> 1:2.27.1-6ubuntu3 2015-04-20 22:08:16 install coreutils:amd64 <none> 8.25-2ubuntu2 [...]
如果启用日志旋转,则可以使用命令查看上一个安装日志:
$grep " install " /var/log/dpkg.log.1
要查看存档的日志,请运行:
$zgrep " install " /var/log/dpkg.log.2.gz
请注意,如果已启用日志旋转,则会随着时间的推移删除日志。
因此,在Debian或者Ubuntu系统中安装日期,没有可靠的方法列出已安装的包。
我们现在知道安装了哪些软件包,并且在我们在Linux系统上安装它们时。