我试图使用mozjpeg作为jpeg-turbo的替换库。我完全能够获取源代码并根据需要编译它们,甚至可以从它创建一个deb文件,我可以用它来安装包(例如apt-get install ./mozjpeg_3.2_amd64.deb)。
为了明确起见,请注意这两个包应该提供完全相同的接口,因此在功能上是等价的。因此,mozjpeg应该满足对jpeg-turbo的依赖。
好的,接下来,当我继续安装依赖程序包(例如,幽灵脚本开发头,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的任何包都会使用替换安装吗?
提前谢谢。
发布于 2017-02-19 10:50:56
包维护人员在包本身中将依赖项编码为对特定包名和/或版本的依赖。据我所知,没有一种方法可以让您作为最终用户操纵这种依赖关系,例如从apt-get配置文件。
当多个包提供相同的功能时,可以通过virtual-package创建依赖于特定功能的依赖关系,而不是依赖特定的包名,但这通常需要与其他包维护人员进行协调。
但是,对于您自己的环境,您可以在没有任何协调的情况下尝试这样做:
手册中有许多警告,但是当您为mozjpeg构建包时,您可以使用Provides: jpeg-turbo选项使其成为一个虚拟包,一旦安装,它将满足对需要jpeg-turbo的包的依赖要求。
https://serverfault.com/questions/833465
复制相似问题