降级:恢复到软件包的先前版本

在Linux上降级软件包

正常的是 总是更新软件包 以获得更多这些的最新版本。 通常,开发人员会力争随着新版本的到来,他们会越来越好。 但这并非总是如此。 有时,某个软件包的先前版本可能会更稳定,因某些原因而运行得更好,或者甚至是用户更喜欢更新之前的版本,因为它具有新版本不再实现的功能。

如果是这种情况,在这种情况下 本教程将向您展示如何降级 的任何软件包,即回滚更新并获取系统上安装的先前版本。 这样,如果新版本让您失望,您就不会有问题。 好吧,让我们开始吧!

由于没有适用于所有发行版的通用方法,因此我将展示如何使用 最受欢迎的软件包管理器。 顺便说一句,如果您使用其他方法(例如YaST,Synaptic等),则该过程也是可行的,但是图形化且直观得多。 在这里,我将通过控制台解释那些产生最大混乱的方法。

apt-get:Debian / Ubuntu及其衍生版本

对于所有 基于DEB包的发行版 借助apt-get软件包管理器,您可以轻松地从较新的版本更改为较旧的版本。 例如,我们将把firefox包作为参考,假设我们想从当前版本退回到以前的版本。 在这种情况下,您可以执行以下命令:

  • 你可以得到 包装信息 firefox(或任何您需要的名称,只需将名称更改为适当的名称),例如安装的先前版本等,可以使用以下命令:
sudo apt-cache showpkg firefox

  • 一旦你知道 您要安装的先前版本,您可以使用以下命令来安装所需的软件包。 在我们的例子中,在上一个命令中,我们获得了一个名为firefox = 57.3-build1-0ubuntu1的软件包,这是我们要安装的软件包:
sudo apt-get install firefox=57.3-build1-0ubuntu1

  • 完成此操作后,您将已经安装了该程序的先前版本。 你知道,如果没有的话 指定版本 使用APT,您可以在该软件包的存储库中安装可用的最新版本。 在这种情况下,我们已经指出了具体的版本。

请记住,有可能 两个不同的版本包共存 在GNU / Linux上没有问题。 因此,如果您想拥有同一软件包的两个不同版本,则可以...

pacman:Arch Linux及其衍生版本

如果你有 Arch Linux,那么您将不得不将pacman作为包管理器处理。 如果需要,此工具还允许您返回以前的版本。 这样做的方式有些不同,但非常简单:

  • 搜寻en程序包缓存可用版本,您可以检查记录。 要在我们的情况下仅过滤firefox软件包的结果(但您已经知道可以用软件包的名称替换为您想要的软件包的名称...),则可以使用:
ls /var/cache/pacman/pkg/ | grep firefox

  • 现在,一旦知道所需的版本,就可以使用以下命令 安装它:
sudo pacman -U /var/cache/pacman/pkg/firefox-57.3.pkg.tar.xz

zypper:SUSE / openSUSE及其衍生版本

在世界上 SUSE,您可以使用zypper软件包管理器。 这也是在早期版本中获取软件包的简便方法。 在我们的情况下,使用Mozilla Firefox,将是这样的:

  • 第一件事是以类似于我们为Arch所做的方式查询程序包缓存,并使用以下命令来了解 软件包的先前版本 可用的:
cat /var/log/zypp/history | grep firefox

  • 找到以前的版本后,您可以 安装该版本 使用zypper像这样:
sudo zypper -in -f firefox_57.3

dnf:Red Hat / CentOS / Fedora及其衍生版本

最后,在基于Fedora的发行版上 会使用yum或dnf。 为了还原软件包更新并降级到以前的版本,可以使用以下命令:

  • 在这种情况下,第一件事就是看 之前的版本 尝试在DNF存储库中安装的软件包。 对于我们的示例,您可以使用以下命令来获取列表:
sudo dnf --showduplicates list firefox

  • 现在,一旦您仔细看了一下 您要安装的版本, 您只需要从上一个命令的输出中抛出的数据中复制它,并将其粘贴到下一个命令中即可。 例如:
<pre>sudo dnf install firefox-57.3.fc28</pre>

您也可以使用 快照或快照 返回以前的版本。 为此,您可以使用以下命令,分别执行以下命令:获取历史记录,然后从历史记录中获取具有其ID(无论您希望使用哪种形式)的交易信息,然后还原为状态指示ID的交易的金额(在我们的示例32中):

sudo dnf history

sudo dnf history info 32

sudo dnf history undo 32

我希望本教程可以帮助您解决新版本的软件包在您喜欢的发行版中引起您的问题。 您已经知道可以离开 有问题或建议的评论...


3条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   匿名

    在gentoo中,不再需要的软件包版本被屏蔽,通过将其显式放置在/etc/portage/package.mask/package.mask文件中来进行更新。
    例如,如果我们不想要最新的Firefox(即69.0.1),则可以这样告诉它:

    = www-client / firefox-69.0.1
    或者,如果我们不希望将来的更新版本更高
    > = www-client / firefox-69.0.1

    然后进行降级将是这样的:
    #出现-av1 firefox
    这些是将按顺序合并的软件包:
    计算依赖关系…完成了!
    [ebuild UD] www-client / firefox-68.1.0
    您要合并这些软件包吗? [是/否]和

    UD表示更新降级

    1.    艾萨克

      您好,非常感谢您的贡献。 我决定放一些发行版,因为它们使用最多,但是显然有很棒的发行版,例如Slackware,Gentoo和其他我没有提到的发行版。 有时很难选择一个或另一个,而您总是必须选择并省去一些...
      您好!

  2.   Alex

    有没有办法一次用很多包做到这一点?