如何在 Linux 上降级软件包

当您在 Linux 上升级软件包时发现更新的版本已损坏且无法正常工作,这很烦人。 在这种情况下,您可能很想从系统中完全删除软件包,但有更好的方法来解决此问题。

在基于 Linux 的操作系统上,您可以使用默认的包管理器轻松切换到旧版本的包。 这是在 Linux 上降级软件包的方法以及您可能需要降级的原因。

为什么要降级软件包?

有时,当开发人员发布新版本的软件包时,用户可以立即下载。 大多数新软件版本通常未经测试,并且包含需要修复的错误和问题。

虽然在开源世界中,用户测试最新软件和报告错误是完全正常的,但您可以选择通过将更新的软件包降级到较旧的测试版本来拥有稳定的系统。 最前沿的 Linux 发行版(如 Arch Linux 或其衍生产品)大多是这种情况。 另一方面,许多 Linux 发行版提供的稳定版本仅在其存储库中包含经过测试和受信任的软件包。 Ubuntu 和 Debian(稳定版)是两个很好的例子。

降级功能会派上用场,尤其是当您使用 Linux 为需要核心稳定的系统提供动力时。 以服务器为例。 当您通过网络同时向成百上千的用户提供资源时,您不能在稳定性上妥协并依靠未经测试的软件包。 在这种情况下,将软件包切换到其较旧的稳定版本是保持系统稳定性的最可行途径。

如何在 Linux 上降级软件包

每个 Linux 发行版都有一个默认的包管理器,允许您通过降级来切换到较旧的包版本。 在基于 Debian 的发行版中,您拥有 APT 包管理器,而基于 Arch Linux 和 RHEL 的发行版分别附带 Pacman 和 RPM。

在 Ubuntu 和 Debian 上

在 Ubuntu 和其他基于 Debian 的发行版上降级软件包就像安装过程一样简单。 您只需要知道软件包名称和要安装的特定版本号。

假设您已经知道要降级哪个包,您可以使用以下命令获取包版本详细信息:

apt list -a packagename

例如,让我们查找 GNOME 终端的可用软件包版本:

apt list -a gnome-terminal

输出:

输出将显示存储库中当前可用的指定包的所有版本。 记下第二个值 (“3.36.1.1-1ubuntu1在这种情况下)在与您要切换到的版本相对应的输出中,并以以下命令格式指定它:

sudo apt install packagename=version

降级 侏儒终端 打包到较旧的“3.36.1.1-1ubuntu1”版本:

sudo apt install gnome-terminal=3.36.1.1-1ubuntu1

输出:

APT 将警告您降级过程。 输入“Y”并点击确认更改 Enter.

您可以使用 – 版本 旗帜:

gnome-terminal --version

如果输出显示的版本号早于最新版本,则该软件包已成功降级,您可以照常继续使用它。

Arch Linux 上的降级软件包

在 Arch Linux 上,您可以使用保存的 Pacman 缓存切换到较早安装的软件包的旧版本。 包缓存是基于 Arch 的系统上的一个目录,它存储您在机器上下载的每个包。 除非指定,否则不会从包缓存中删除包。

清理包缓存是释放 Linux 桌面空间的好方法。

为此,请搜索存储在 /var/cache/pacman/pkg 目录。 然后,使用 pacman 命令安装旧版本的软件包,如下所示:

sudo pacman -U /var/cache/pacman/pkg/packagename-old.tar.zst

从缓存中降级软件包不是最好的选择,因为它需要您进行大量搜索。 为了使它更容易,您可以使用 find 命令来执行搜索。

更好的选择是使用降级实用程序。 默认情况下它在 Arch Linux 上不可用,您必须从 AUR 下载它。

yay -S downgrade

要使用 downgrade 在基于 Arch 的发行版上降级软件包,请发出以下命令:

sudo downgrade package

输出:

输出将列出所有可安装的软件包版本。 从选项中选择并输入与包版本对应的数字以继续安装旧包。

在 Fedora 和 RHEL

在基于 RPM 的 Linux 发行版上,例如 Fedora、CentOS 和 Red Hat Enterprise Linux,在 YUM 包管理器中有一个内置功能,允许用户降级包。

要使用 YUM 降级软件包,只需运行:

sudo yum downgrade packagename

例如,要降级 Firefox 浏览器包:

sudo yum downgrade firefox

输出:

上述命令将切换到先前最新版本的软件包。

要将软件包降级到特定版本,首先,您需要知道确切的版本号。 为此,您可以前往 Fedora 哪个网站 并搜索包裹。 它将列出该软件包的所有可用版本。

官方存储库中可能未提供软件包的所有版本。 在这种情况下,您可以从 Fedora Koji Web 并使用 rpm 命令手动安装它。

只需记下完整的包名并在 降级 命令如下:

sudo yum downgrade pkgnamewithversion

要在单个命令中降级多个包,只需提供用空格分隔的包名称:

sudo yum downgrade package1 package2 package3

维护 Linux 桌面的稳定性

与 Windows 和其他操作系统类似,Linux 上的软件包存在错误,如果不加以注意,甚至会破坏您的系统。 然而,由于有帮助的开源社区测试这些损坏的包并向开发人员报告错误,这些问题很快得到解决。

如果您对安装稳定的操作系统一无所知,那么您可以从列表中排除 Arch Linux 和其他基于 Arch 的发行版。 这些大多是最前沿的发行版,并在最新版本发布后立即提供对软件包的更新。

如果您想要使用 Linux 获得更稳定的桌面体验,请考虑安装提供 LTS 版本的发行版,例如 Ubuntu、Debian、Linux Mint 或 openSUSE Leap。