我不得不从它的源代码库下载并安装一个库的版本。问题是来自Kubuntu包管理器的其他软件包需要安装这个库。现在我正在和ffmpeg一起工作,但是我以前必须这样做(例如OpenCV),我正在寻找未来最好的方法.
所以我想要做的是创建一个debian包,我可以用dpkg来安装这个包。从那以后,我对deb文件进行了解压缩,以修改它,试图使它正常工作。
问题是,ffmpeg在包管理器中被分成多个包,如果没有必要的话,我不想编写5/6包来替换每个包。我已经确保它与所有这些包所需的所有内容一起正确编译。
我一直在尝试使用"Requires“和”seem“,但它似乎不能正常工作。之后,当我尝试安装VLC时,它要求安装包管理器中的所有VLC。我还确保版本号晚于包管理器中的版本号。

下面是我的deb控制文件中所写的内容。据我所见,这都是在μ子包管理器中确认的。
Package: ffmpeg
Priority: extra
Section: checkinstall
Installed-Size: 172216
Maintainer: root@skund
Architecture: amd64
Version: 8:1.2.1-git-2
Provides: ffmpeg,libav-tools,libpostproc52,libavdevice53,libavutil51,libavformat53,libavcodec53,libswscale2
Replaces: ffmpeg,libav-tools,libpostproc52,libavdevice53,libavutil51,libavformat53,libavcodec53,libswscale2
Description: Package created with checkinstall 1.6.2在这里,它安装在包管理器中:


有人想办法让这件事发挥作用吗?
发布于 2013-04-29 19:12:27
首先,Provides:不适用于指定版本的依赖项。来自Debian策略手册,“虚拟软件包-提供”:
如果关系字段附带了版本号,那么只有真正的包才会被认为是...。换句话说,如果指定了版本号,这是一个忽略所有提供的包名的请求,并且只考虑真正的包。
库的依赖关系几乎总是版本化的。所以这是行不通的。
相反,你可以:
apt-get source PACKAGE)并为最新的ffmpeg更新它(实际上,您甚至可以向Debian跟踪器发送所需的修补程序)。当然,您需要更新库的子文件(我打赌ABI已经改变了),并且可能需要重新构建许多依赖于ffmpeg的东西。如果API发生变化,其中一些可能需要进行源更改。/usr/local中。您可以为此构建一个.deb,并给它一个不同的包名(例如,local-ffmpeg)。然后,您可以在Debian提供的ffmpeg旁边安装它,而不必担心上面的所有内容。您还可以使用stow将其安装在/usr/local中。https://unix.stackexchange.com/questions/74073
复制相似问题