我有使用 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)
--compression
仅在wget
使用zlib
(用于压缩和解压缩的库)构建时才可用。wget
Debian 中的包没有明确构建依赖于该库,它通过另一个库,即 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 错误 907047和Ubuntu 错误 1788608要求修复;因此,zlib
在 Debian 软件包的 1.19.5-2 版(存在于 Debian 10 及更高版本中)中添加了显式依赖项,并导入到 Ubuntu(19.04 及更高版本)中。