我安装了一个软件包(不记得是哪个,但这应该不会太重要)并且需要“真实的”,ffmpeg
所以我清除了 debian 软件包ffmpeg
并手动安装了另一个版本。
问题是,我现在无法安装或更新任何软件包,除非aptitude
告诉我xyz package
需要ffmpeg
哪些软件包未安装。但是,由于安装了该软件包,所有依赖它的程序都可以正常工作。我不想用存储库版本覆盖我的版本,我只想告诉aptitude
ffmpeg 确实已安装。
我已经尝试过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 update
。apt-get dist-upgrade
之后您就可以运行apt-get install ffmpeg
并且您应该拥有正确的包。
结论
我知道这涵盖了很多内容,但我想全面一些。我个人管理 Debian 的理念是,如果可能的话,不要偏离稳定版,也不要偏离官方仓库,并根据正确设置 apt pinning到 Debian 维基,并仔细限制和管理来自源.deb
或从源安装的任何内容。如果您可以通过管理所有可能的内容来帮助防止包/库的版本控制之间发生冲突,那么apt
您应该是安全的。
抱歉,如果这太冗长或者不是您需要的,我只是想确保我涵盖了所有基础。祝你好运!