我下载了这个ffmpeg 包。当我尝试使用命令安装它时
sudo dpkg -i ffmpeg_0.7.1-5_i386.deb
它写入以下错误消息:
Unpacking ffmpeg (from ffmpeg_0.7.1-5_i386.deb) ...
dpkg: error processing ffmpeg_0.7.1-5_i386.deb (--install):
trying to overwrite '/usr/share/ffmpeg/libx264-ipod640.ffpreset', which is also in package libavcodec-extra-52 4:0.5.1-1ubuntu1.2
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing: ffmpeg_0.7.1-5_i386.deb
您能帮我为 Ubuntu 10.04 安装这个特定版本 (0.7.1-5) 吗?
编辑:命令后
sudo apt-get remove libavcodec52 libavcodec-extra-52
我现在应该手动一步步安装依赖项(可能还有它们的依赖项)还是有一些技巧?
答案1
混合来自 debian 和 ubuntu 存储库的二进制包是一个非常糟糕的主意。但是,如果您绝对确定需要那具体版本,可能的解决方案是下载 debian 包来源,然后在您的系统上进行设置build-essential
并在本地构建包,以便它匹配正确的依赖项。
添加行
deb-src http://ftp.at.debian.org/debian/ wheezy main non-free contrib
到您的sources.lst
文件,然后输入
apt-get update
apt-get build-dep ffmpeg
apt-get source ffmpeg
这将尝试下载构建包所需的所有包ffmpeg
(主要是 libwhatever-dev 加上工作编译器),然后在当前目录中下载并准备 ffmpeg 的源包。我建议您在执行此步骤之前创建 和cd
to 。/usr/src/ffmpeg
您现在的当前目录下将有以下文件和目录:
ffmpeg-debian-0.whatever/
ffmpeg-debian_0.whatever-something.diff.gz
ffmpeg-debian_0.whatever-something.dsc
ffmpeg-debian_0.whatever.orig.tar.gz
相当简单:这orig.tar.gz
是原始源代码 tarball;这-something.diff.gz
是 debian 软件包维护者应用的 diff,用于提供所有 debian 构建脚本,而 ffmpeg-debian-0.whatever/ 是解压和修补的源目录。
cd
进入源目录并运行命令debuild -us -uc -b
,然后在系统编译和构建包时获取汽水补充,使用当前现有的库版本来确定其依赖项。
一旦完成,dpkg -i
生成的 .deb 就可以享受了。
答案2
您安装的发行版对 ffmpeg 软件套件的打包方式似乎与您从其获取 ffmpeg 软件包的发行商不同。根本原因在第三行; libavcodec-extra-52 已安装 /usr/share/ffmpeg/libx264-ipod640.ffpreset 文件,并且 dpkg 不会使用一个包中的文件覆盖另一包中的文件。
这可能与一些依赖项有关 - 在我的 Wheezy 上,ffmpeg 4:0.7.1-5 替换了 libavcodec-extra-53 (<< 4:0.6~) 并依赖于 libavcodec-extra-53 (>= 4:0.7。 1),因此可能需要升级您的 libavcodec-extra-53。
您有两个选择:
- 肮脏的黑客:卸载Ubuntu的libavcodec-extra-52包,也许还有ffmpeg的其他组件:apt-get删除libavcodec-extra-52
- 更好:使用 Ubuntu 版本的 ffmpeg: apt-get install ffmpeg
答案3
无需手动下载一些 ffmpeg .deb 包(顺便说一句,你从哪里获得它?)。
只需通过发行版的包管理器安装它,例如:
$ sudo apt-get install ffmpeg
您使用的软件包与已安装的软件包冲突,并且可能存在其他问题。像 apt-get 这样的包管理器能够检测/诊断并(帮助)解决冲突。