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

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

我有 Windows 版本的经验:

GNU Wget 1.19.4 构建于 mingw32 之上。

但现在在 Ubuntu 上,我有:

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

有一个相对新的选择--compression1.19.2 中添加的调用:

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

并且在1.19.4 发行说明这也是有谈及的。

在 Ubuntu 版本上运行时wget -h缺少。--compression我怎样才能获得包含它的版本,或者如何启用使用它的可能性?当我尝试运行实际命令时,它只是说:

wget: unrecognized option '--compression=auto'

答案1

--compressionwget仅当使用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.listdebapt source

请注意,默认启用压缩 ( --compression=auto) 可能会产生令人惊讶的后果,这就是为什么发行说明提到这一点

事实证明,实现 gzip 支持并非易事。尤其是面对我们必须支持的许多有缺陷的服务器。因此,目前连接压缩支持已标记为实验性并默认禁用。

Debian 错误 887910举个例子。我提交了Debian 错误 907047Ubuntu 错误 1788608请求修复;因此,zlib在 Debian 软件包的版本 1.19.5-2(存在于 Debian 10 及更高版本中)中添加了显式依赖项,并导入到 Ubuntu(19.04 及更高版本)中。

相关内容