有没有办法降级 Debian 中的任何单个软件包?

有没有办法降级 Debian 中的任何单个软件包?

我目前正在运行 Debian “测试”,并且我刚刚将 Gimp 从 版本升级2.10.8-2到 版本2.10.8-2+b1。可悲的是,它对我不起作用。我无法打开任何图像,甚至无法创建新的空白图像,因为它每次都会崩溃。

希望存储库至少有该包的几个版本,我尝试使用降级

apt install gimp=2.10.8-2

并且

apt-get install gimp=2.10.8-2

但两者都失败了Version '2.10.8-2' for 'gimp' was not found

有没有可靠的方法来降级 Debian 中的任何软件包?也许是在升级不满意之后进行某种“回滚”?

我考虑过添加stable存储库并有时强制降级,可能会阻止有问题的软件包。但我首先想要一个不太激烈的解决方案,考虑到这可能需要降级太多的依赖项。可能会导致比解决的问题更多的问题。

答案1

这些apt工具不支持回滚,因此没有直接的方法来撤消升级。您需要确定要降级的软件包,并找到相应的二进制文件以提供给aptdpkg。您可以使用多种方法。

最通用的一种是使用快照.debian.org。它包含上传到 Debian 档案的每个软件包的副本,并且还提供快照存储库,其中包含给定时间戳的一组连贯的软件包。在你的情况下,你会寻找合适版本的gimp源码包,然后将相应的存储库添加到您的源中(有关说明,请参阅主页)。

gimp在这个特定实例中有效的另一种方法(您已经考虑过)是将 Debian 10 添加到您的存储库中,因为您想要降级到的软件包版本在那里可用。目前,除了软件包之外,这不会导致任何降级gimp;你最终只会与libopenexr23并肩libopenexr24

apt最后,由于您在档案 ( )中仍然有较旧的软件包,因此您可以使用或将缓存转换为存储库/var/cache/apt/archives从那里安装它:dpkg -i

  • 将所有包复制到安全的地方

  • 创建Packages文件:

    dpkg-scanpackages . > Packages
    

    (在您将所有包复制到的目录中;您dpkg-dev需要dpkg-scanpackages

  • 压缩Packages文件:

    gzip < Packages > Packages.gz
    

    (这会保留两个文件)

  • 创建Release文件:

    apt-ftparchive -o "APT::FTPArchive::Release::Origin=cache-repository" release . > Release
    

    (你apt-utils需要apt-ftparchive

  • 签字:

     gpg --yes --sign --armor --clearsign --output InRelease Release
    

然后,您可以deb file:/path/to/...向存储库添加一个条目并从那里安装软件包。 (如果您apt告诉假设存储库是可信的,则可以跳过签名步骤。)

相关内容