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

giu*_*sti 2 debian

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

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

apt install gimp=2.10.8-2
Run Code Online (Sandbox Code Playgroud)

并且

apt-get install gimp=2.10.8-2
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ste*_*itt 5

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

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

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

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

  • 将所有包复制到安全的地方
  • 创建Packages文件:dpkg-scanpackages . > Packages(目录复制所有的包,你需要dpkg-devdpkg-scanpackages
  • 压缩Packages文件:(gzip < Packages > Packages.gz这会保留两个文件)
  • 创建Release文件:apt-ftparchive -o "APT::FTPArchive::Release::Origin=cache-repository" release . > Release(你需要apt-utilsapt-ftparchive
  • 签字: gpg --yes --sign --armor --clearsign --output InRelease Release

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