我正在尝试使用mozjpeg作为jpeg-turbo的替代库。 我完全可以获取源代码并根据需要进行编译,甚至可以创build一个deb文件来安装软件包(例如, apt-get install ./mozjpeg_3.2_amd64.deb )。
要清楚,请注意,这两个包应该提供完全相同的界面,因此在function上是等同的。 因此,对jpeg-turbo的依赖应该由mozjpeg满足。
好的,继续,当我继续安装相关软件包(例如ghostscript开发头文件, libgs-dev )时,我遇到了错误,因为它们声明了libjpeg62-turbo-dev的依赖关系:
dpkg: error processing archive /tmp/apt-dpkg-install-HuzNRO/0-libjpeg62-turbo-dev_1%3a1.5.1-2_amd64.deb (--unpack): trying to overwrite '/usr/include/jerror.h', which is also in package mozjpeg 3.2-20170219
现在,在这一点上出现冲突当然是合乎逻辑的。 有没有办法来防止这一点? 我可以告诉依赖系统,mozjpeg满足对jpeg-turbo的依赖,这样任何依赖于jpeg-turbo的包都将使用替换来安装吗?
提前致谢。
依赖关系由包自身的包维护者编码,作为对特定包名和/或版本的依赖。 据我所知,没有一种方法可以让你作为最终用户从例如apt-getconfiguration文件中操作这样的依赖关系。
当多个软件包提供相同的function时,可以通过virtual-package在特定的function上创build依赖关系,而不是依赖于特定的软件包名称,但通常需要与其他软件包维护人员协调。
对于你自己的环境,你可以尝试一下,没有任何这样的协调:
手册中有很多警告,但是当您为mozjpeg构build包时,您可以使用Provides: jpeg-turbo选项使其成为一个虚拟包,一旦安装,它将满足对需要jpeg的包的依赖性要求-涡轮。