我的 wget 中怎么会缺少 --compression?

Fir*_*com 3 gzip wget

我有使用 Windows 版本的经验:

基于 mingw32 的 GNU Wget 1.19.4。

但现在在 Ubuntu 上,我有:

GNU Wget 1.19.4,一个非交互式网络检索器。

在 1.19.2 中添加了一个名为的相对较新的选项--compression

  • gzip 内容编码的新选项 --compression

1.19.4 发行说明中也谈到了这一点。

在运行时wget -h--compression丢失在Ubuntu版本。我怎样才能得到一个有它的版本,或者我如何启用使用它的可能性?当我尝试运行实际命令时,它只是说:

wget: unrecognized option '--compression=auto'
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 8

--compression仅在wget使用zlib(用于压缩和解压缩的库)构建时才可用。wgetDebian 中的包没有明确构建依赖于该库,它通过另一个库,即 GNU TLS 库间接获得它;Ubuntu 版本放弃了后者,结果最终失去了对压缩的支持。

您可以在构建日志中看到这一点:

checking for ZLIB... no
checking for compress in -lz... no
Run Code Online (Sandbox Code Playgroud)

--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
Run Code Online (Sandbox Code Playgroud)

这将在 中生成一个包/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 及更高版本)中。