如何在 Linux 上降级软件包
当软件包的最新更新充满错误时,切换到旧版本可以恢复 Linux 桌面的稳定性。
当您在 Linux 上升级软件包却发现更新的版本已损坏并且无法正常工作时,这很烦人。在这种情况下,您可能会想从系统中完全删除该软件包,但有更好的方法来解决此问题。
在基于 Linux 的操作系统上,您可以使用默认包管理器轻松切换到旧版本的包。以下是如何在 Linux 上降级软件包以及您可能需要这样做的原因。
为什么要降级软件包?
有时,当开发人员发布软件包的新版本时,用户可以立即下载。大多数新软件版本通常未经测试,并且包含需要修复的错误和问题。
虽然在开源世界中,用户测试最新的软件并报告错误是完全正常的,但您可以选择通过将更新的软件包降级到较旧的测试版本来拥有稳定的系统。对于像 Arch Linux 或其衍生品这样的前沿 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
要将 gnome-terminal 软件包降级到较旧的“3.36.1.1-1ubuntu1”版本:
sudo apt install gnome-terminal=3.36.1.1-1ubuntu1
输出 :
APT 将警告您降级过程。输入“Y”并按 Enter 确认更改。
您可以使用 --version 标志验证 APT 是否成功降级软件包:
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
要使用降级来降级基于 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 Koji Web 并搜索该软件包。它将列出该包的所有可用版本。
官方存储库中可能不提供软件包的所有版本。在这种情况下,您可以从 Fedora Koji Web 下载 RPM 包并使用 rpm 命令手动安装。
只需记下完整的包名称并在 downgrade 命令中指定它,如下所示:
sudo yum downgrade pkgnamewithversion
要在单个命令中降级多个包,只需提供用空格分隔的包名称:
sudo yum downgrade package1 package2 package3
保持 Linux 桌面的稳定性
与 Windows 和其他操作系统类似,Linux 上的软件包也存在错误,如果不加以处理,甚至可能会破坏您的系统。然而,由于开源社区测试了这些损坏的软件包并向开发人员报告错误,这些问题很快得到了解决。
如果您执意要安装稳定的操作系统,那么您可以从列表中排除 Arch Linux 和其他基于 Arch 的发行版。这些大多是前沿发行版,并在最新版本发布后立即提供软件包更新。
如果您想在 Linux 上获得更稳定的桌面体验,请考虑安装提供 LTS 版本的发行版,例如 Ubuntu、Debian、Linux Mint 或 openSUSE Leap。