Wget

我的wget怎麼會缺少–compression?

  • January 9, 2020

我有使用 Windows 版本的經驗:

GNU Wget 1.19.4 建立在 mingw32 之上。

但現在在 Ubuntu 上,我有:

GNU Wget 1.19.4,一個非互動式網路檢索器。

在 1.19.2 中添加了一個相對較新的選項:--compression

  • gzip 內容編碼的新選項 –compression

1.19.4 發行說明中也談到了這一點。

在 Ubuntu 版本上執行時wget -h缺少--compression。我怎樣才能得到一個有它的版本,或者我怎樣才能使用它?當我嘗試執行實際命令時,它只是說:

wget: unrecognized option '--compression=auto'

--compression僅在wget使用zlib(用於壓縮和解壓縮的庫)建構時可用。wgetDebian中的包沒有顯式地建構依賴於該庫,它通過另一個庫 GNU TLS 庫間接獲取它;Ubuntu 建構放棄了後者,因此最終失去了對壓縮的支持。

您可以在建構日誌中看到這一點:

checking for ZLIB... no
checking for compress in -lz... no

重建包以啟用--compression可以如下完成:

cd /tmp
apt source wget
cd wget-1.19.4
apt build-dep wget
apt install zlib1g-dev
dch -n "Rebuild with compression support."
dpkg-buildpackage -us -uc

這將在 中生成一個包/tmp,然後您可以使用它進行安裝dpkg -i。您可能需要調整上述cd步驟,具體取決於wget您的儲存庫包含的版本。您可能還需要在 中添加與您的deb-src/etc/apt/sources.list匹配的deb行,以便能夠使用apt source.

請注意,預設啟用壓縮 ( --compression=auto) 可能會產生令人驚訝的後果,這就是發行說明提到

事實證明,實現 gzip 支持並非易事。尤其是面對我們必須支持的許多有缺陷的伺服器。因此,目前,連接壓縮支持已被標記為實驗性並預設禁用。

有關範例,請參閱Debian 錯誤 887910。我送出了Debian 錯誤 907047Ubuntu 錯誤 1788608請求修復;zlib因此,在 Debian 軟體包的 1.19.5-2 版本(存在於 Debian 10 及更高版本中)中添加了顯式依賴,並導入到 Ubuntu(19.04 及更高版本)中。

引用自:https://unix.stackexchange.com/questions/464372