Debian

使用 mozjpeg 代替 jpeg-turbo,包括滿足依賴關係

  • February 19, 2017

我正在嘗試使用 mozjpeg 作為 jpeg-turbo 的替代庫。我完全能夠獲取原始碼並根據需要對其進行編譯,甚至可以從中創建一個 deb 文件,我可以使用它來安裝包(例如apt-get install ./mozjpeg_3.2_amd64.deb)。

為了清楚起見,請注意這兩個包應該提供完全相同的介面,因此在功能上是等效的。因此,mozjpeg 應該滿足對 jpeg-turbo 的依賴。

好的,繼續,當我繼續安裝依賴包(例如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-get 配置文件中操作此類依賴項。

當多個包提供相同的功能時,可以創建對特定功能的依賴關係,而不是依賴於特定的包名稱,virtual-package但通常需要與其他包維護者協調。

對於您自己的環境,您可以在沒有任何此類協調的情況下嘗試:

手冊中有許多警告,但是當您為 mozjpeg 建構包時,您可以使用該Provides: jpeg-turbo選項將其設置為虛擬包,一旦安裝,它將滿足需要 jpeg-turbo 的包的依賴要求。

引用自:https://serverfault.com/questions/833465