这是不建议使用 dpkg 安装随机包。

这是不建议使用 dpkg 安装随机包。

我安装了一个软件包(不记得是哪个,但这应该不会太重要)并且需要“真实的”,ffmpeg所以我清除了 debian 软件包ffmpeg并手动安装了另一个版本。

问题是,我现在无法安装或更新任何软件包,除非aptitude告诉我xyz package需要ffmpeg哪些软件包未安装。但是,由于安装了该软件包,所有依赖它的程序都可以正常工作。我不想用存储库版本覆盖我的版本,我只想告诉aptitudeffmpeg 确实已安装。

我已经尝试过apt-mark,但因为 aptitude 认为它没有安装,所以不会将其标记为手动。

根据要求apt-cache policy ffmpeg显示:

ffmpeg:
  Installed: (none)
  Candidate: 7:3.2.10-1~deb9u1~bpo8+1
  Version table:
     10:2.6.9-dmo1 0
        100 /var/lib/dpkg/status
     7:3.2.10-1~deb9u1~bpo8+1 0
        100 http://http.debian.net/debian/ jessie-backports/main amd64 Packages

我仍然对解决方案非常感兴趣,但我决定只安装存储库版本,然后重新安装我想要的版本。 Aptitude 确实“安装”了 ffmpeg,但它没有覆盖我当前的版本(可能它把它放在不同的位置,或者可能它看到了“较新”的版本)。

答案1

这是不建议使用 dpkg 安装随机包。

在采取任何行动之前阅读整个答案

Apt遇到问题,因为它与您安装的ffmpeg.就您而言,您还没有ffmpeg安装,因此出现上述错误。你的输出apt-cache policy ffmpeg证明了这一点。我不知道关联随机.deb文件的方法,apt除非你的包设置了apt关联的方法,除非您的软件包在安装过程中。如果有人能纠正我这一点,我将不胜感激。如果您需要当前存储库中没有的软件包,您可以,由您自行决定,将testing/unstable/backports/whatever 存储库添加到包含您正在查找的包的sources.list 中,并使用包管理器。

我不建议您使用非官方的 Debian 存储库。

查找可用版本ffmpeg 这里。如果您想要的版本位于稳定版以外的存储库中,您应该将其添加到您的sources.list中。如果你设置“Apt Pinning”您可以用很少的开销管理 Debian 的多个版本。要修复您的启动安装,ffmpeg请删除当前实例,以便我们可以从头开始。

apt-get purge ffmpeg
dpkg --purge ffmpeg
dpkg -l | ffmpeg

这将清除ffmpeg,然后查看它是否已安装。您应该寻找rc以下身份:根据这篇文章。然后您可以按照以下指南进行操作关于 apt pinning 的 wiki添加测试和不稳定的存储库。不要忘记/etc/apt/sources.list.d/为您计划使用的每个存储库创建文件以及相应的/etc/apt/preferences.d/文件。一旦你创建了正确的文件来设置 apt pinning,你就可以简单地运行:

apt-get install ffmpeg/unstable

ffmpeg从不稳定的存储库安装。如果你设置了 apt pinning,你可以用你想要的包所在的任何存储库替换不稳定的。

但是,如果您绝对必须使用非官方 Debian 存储库

这是添加第三方存储库的指南其中包含ffmpeg您可能正在寻找的软件包。如果您决定使用 apt pinning,则需要创建存储库 ( /etc/apt/sources.list.d/deb-multimedia.list) 和首选项 ( /etc/apt/preferences.d/deb-multimedia.preferences)。ffmpeg按照前面描述的方式清除后,完成以下步骤。

nano /etc/apt/sources.list

添加这一行:

deb http://www.deb-multimedia.org stretch main non-free

保存并退出。现在请按照下列步骤操作:

apt-get update

自 Buster 以来,“-oAcquire::AllowInsecureRepositories=true”选项是强制性的,因此对于不稳定也是必需的。

apt-get update -oAcquire::AllowInsecureRepositories=true

apt-get install deb-multimedia-keyring -oAcquire::AllowInsecureRepositories=true

由于 Squeeze,您可以使用 apt-get 安装此软件包。当包询问要做什么时,只需按 y(不要按回车键)。

如果 apt-get 找不到新密钥,请执行以下操作:

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb

您可以通过以下方式验证包的完整性:

sha256sum deb-multimedia-keyring_2016.8.1_all.deb
9faa6f6cba80aeb69c9bac139b74a3d61596d4486e2458c2c65efe9e21ff3c7d deb-multimedia-keyring_2016.8.1_all.deb

最后也是强制性的步骤。

并安装与 ffmpeg 相关的所有软件包apt-get updateapt-get dist-upgrade

之后您就可以运行apt-get install ffmpeg并且您应该拥有正确的包。

结论

我知道这涵盖了很多内容,但我想全面一些。我个人管理 Debian 的理念是,如果可能的话,不要偏离稳定版,也不要偏离官方仓库,并根据正确设置 apt pinning到 Debian 维基,并仔细限制和管理来自源.deb或从源安装的任何内容。如果您可以通过管理所有可能的内容来帮助防止包/库的版本控制之间发生冲突,那么apt您应该是安全的。

抱歉,如果这太冗长或者不是您需要的,我只是想确保我涵盖了所有基础。祝你好运!

相关内容