如何在 Debian、Ubuntu 或 Linux Mint 中显示已安装、升级或删除的软件包的历史记录 [dpkg]

[ad_1]

本文介绍了如何从命令行显示 Debian、Ubuntu 或 Linux Mint 上最近安装、升级或删除的软件包的历史记录。

为了能够获得包更改的完整历史列表,包括安装、升级或删除的 DEB 包,并显示执行特定操作的日期,在 Debian 或 Ubuntu 中,可以
阅读 dpkg
(用于处理 Debian 软件包安装和删除的底层基础设施)
日志可在 /var/log/dpkg.log

. 您可以使用
grep

从命令行解析这个文件,只显示安装、升级或删除的包,这取决于你的需要。

这适用于以任何方式安装的 DEB 包
,无论是使用图形工具(例如 Synaptic、Gnome Software、Update Manager)还是命令行工具(例如
apt

,
apt-get

,
aptitude

或者
dpkg

. 它不适用于其他软件包,例如 Flatpak 或 Snap,或者从源代码安装的软件等。

在 Debian、Ubuntu 或 Linux Mint 上显示包管理器历史记录的一些替代方法不会显示完整的日志。 例如,突触包管理器 (
File -> History

) 只能显示使用 Synaptic 本身执行这些操作的已安装、升级或删除的软件包的历史记录,但您不会看到从命令行安装、更新或删除的任何软件包(使用
apt

,
apt-get

,
dpkg

)、使用软件更新程序或软件应用程序。 同样,
/var/log/apt/history.log

APT 日志文件仅列出使用执行的操作
apt

/
apt-get

.

显示最近安装的软件包的历史记录、它们的版本号以及它们在 Debian、Ubuntu 或 Linux Mint 上的安装日期/时间:

grep "install " /var/log/dpkg.log

这是它的外观:

$ grep "install " /var/log/dpkg.log
2019-01-08 13:22:15 install automathemely:all <none> 1.3
2019-01-08 13:22:29 install python3-astral:all <none> 1.6.1-1
2019-01-08 13:22:29 install python3-tzlocal:all <none> 1.5.1-1
2019-01-08 13:22:29 install python3-schedule:all <none> 0.3.2-1

...

2019-01-09 17:19:49 install libwebkit2-sharp-4.0-cil:amd64 <none> 2.10.9+git20160917-1.1
2019-01-09 17:19:49 install sparkleshare:all <none> 3.28-1
2019-01-15 15:58:20 install ffsend:amd64 <none> 0.1.2

在 Debian、Ubuntu 或 Linux Mint 上显示最近升级的软件包列表、升级日期/时间以及新旧软件包版本:

grep "upgrade " /var/log/dpkg.log

样本输出:

$ grep "upgrade " /var/log/dpkg.log
2019-01-07 11:14:10 upgrade tzdata:all 2018g-0ubuntu0.18.10 2018i-0ubuntu0.18.10
2019-01-07 11:35:14 upgrade davinci-resolve:amd64 15.2-2 15.2.2-1
2019-01-07 12:31:04 upgrade chromium-chromedriver:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:04 upgrade chromium-browser-l10n:all 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:08 upgrade chromium-browser:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:12 upgrade chromium-codecs-ffmpeg-extra:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1

...

2019-01-15 15:51:31 upgrade vlc-plugin-bittorrent:amd64 2.5-1~cosmic 2.6-1~cosmic
2019-01-15 17:30:44 upgrade virtualbox-6.0:amd64 6.0.0-127566~Ubuntu~bionic 6.0.2-128162~Ubuntu~bionic
2019-01-15 17:34:33 upgrade libarchive13:amd64 3.2.2-5 3.2.2-5ubuntu0.1
2019-01-16 12:32:43 upgrade oracle-java11-installer:amd64 11.0.1-2~linuxuprising1 11.0.2-1~linuxuprising0
2019-01-16 12:42:20 upgrade nvidiux:amd64 2.0.4 2.1
2019-01-16 13:41:05 upgrade plata-theme:all 0.4.1-0ubuntu1~cosmic1 0.5.4-0ubuntu1~cosmic1

在 Debian、Ubuntu 或 Linux Mint 上显示最近删除的软件包的历史记录以及它们被删除的日期/时间:

grep "remove " /var/log/dpkg.log

例子:

$ grep "remove " /var/log/dpkg.log
2019-01-10 12:30:55 remove automathemely:all 1.3 <none>
2019-01-11 13:16:38 remove persepolis:all 3.1.0.0 <none>
2019-01-11 13:38:52 remove python3-astral:all 1.6.1-1 <none>
2019-01-11 13:38:52 remove python3-psutil:amd64 5.4.6-1build1 <none>
2019-01-11 13:38:52 remove python3-pyxattr:amd64 0.6.0-2build3 <none>
2019-01-11 13:38:52 remove python3-schedule:all 0.3.2-1 <none>
2019-01-11 13:38:53 remove python3-tzlocal:all 1.5.1-1 <none>

/var/log/dpkg.log 包含当月的软件包安装、更新和删除历史记录
.
上个月,阅读 /var/log/dpkg.log.1 日志文件
. 例如,要查看上个月的软件包安装历史记录,请使用:

grep "install " /var/log/dpkg.log.1

想要回到 dpkg 的历史上吗?
利用
zgrep

代替
grep

, 并阅读
/var/log/dpkg.log.2.gz

,
/var/log/dpkg.log.3.gz

,
/var/log/dpkg.log.4.gz

依此类推,分别追溯到两个、三个和四个月。

例子:

zgrep "upgrade " /var/log/dpkg.log.2.gz

这是因为默认情况下,在 Debian、Ubuntu 和 Linux Mint 上,dpkg 日志设置为每月轮换一次,保留 12 条旧日志(因此为 12 个月),并使用 gzip (
.gz

)。 您可以使用 dpkg 检查 Debian/Ubuntu Logrotate 配置
cat /etc/logrotate.d/dpkg

.

来自同一系列:

  • 如何在 Ubuntu、Debian 或 Linux Mint 上找到提供文件(已安装或未安装)的软件包
  • 如何在 Ubuntu、Debian 或 Linux Mint 中防止更新包 [APT]
  • 如何在 Debian、Ubuntu 或 Linux Mint 中从命令行搜索可用软件包 [APT]
  • 如何在 Ubuntu、Debian 或 Linux Mint 上列出存储库中的所有软件包 [APT]

[ad_2]

Related Posts