Debian
使用 mozjpeg 代替 jpeg-turbo,包括滿足依賴關係
我正在嘗試使用 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 的包的依賴要求。