Использование mozjpeg вместо jpeg-turbo, включая удовлетворяющие зависимости
Я пытаюсь использовать mozjpeg в качестве вставной библиотеки замены для jpeg-turbo. Я прекрасно могу получить исходные тексты и скомпилировать их по мере необходимости и даже создать из него файл deb, который я могу использовать для установки пакета (например, apt-get install ./mozjpeg_3.2_amd64.deb
).
Для ясности обратите внимание, что эти два пакета должны обеспечивать одинаковый интерфейс и, следовательно, быть функционально эквивалентными. Соответственно, зависимость от 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, устанавливались с использованием замены?
Заранее спасибо.
1 ответ
Зависимости кодируются сопровождающими пакетов в самих пакетах как зависимость от конкретного имени пакета и / или версии. Насколько я знаю, нет способа, с помощью которого вы как конечный пользователь могли бы манипулировать такими зависимостями, например, из файла конфигурации apt-get.
Возможно создать отношения зависимости от конкретной функциональности, а не в зависимости от конкретного имени пакета, через virtual-package
когда несколько пакетов предлагают одинаковую функциональность, но обычно это требует координации с другими сопровождающими пакетов.
Для вашей собственной среды вы можете попробовать это без какой-либо координации:
В руководстве есть ряд предупреждений, но когда вы собираете пакет для mozjpeg, вы можете использовать Provides: jpeg-turbo
возможность сделать его виртуальным пакетом, который после установки будет удовлетворять требованиям зависимости для пакетов, для которых требуется jpeg-turbo.