【发布时间】:2012-02-28 22:35:36
【问题描述】:
是否有像wget/lynx/GET 这样默认分布在 POSIX 或 *nix 操作系统中的 HTTP 客户端,可用于实现最大的可移植性?
我知道大多数系统都安装了 wget 或 lynx,但我似乎记得使用默认设置安装了一些 Ubuntu 服务器系统,并且它们在基本包中没有安装 wget 或 lynx。
我正在为 Linux(可能还有 Mac)编写一个 shell 脚本来将一个软件安装到计算机上。为了避免分发几个大文件,我想从互联网上获取这些文件,而不是使用安装程序打包。目前,安装脚本将分发在从Makeself 创建的单个文件中。
我想避免安装脚本超过 100 MB,如果包含文件,则安装脚本会超过 100 MB,而且如果该人正在升级或重新安装软件,则可能不需要它们。也许最便携的做法是将文件包含在 pacakage 中。
现在我只想让脚本检查wget、lynx 和GET,按照这个顺序,它会使用它可以下载的任何一个,但如果有的话,我可以完全避免这种情况是一种我可以下载适用于所有系统的文件的方法。
编辑:
有人知道 lwp-request (GET) 及其可用性吗?到目前为止,这似乎在我检查过的几个系统上很容易获得,我记得这总是在大约 10 多年前回到 RedHat。
【问题讨论】:
-
您也可以使用
curl或(极端示例)netcat(通常别名为nc)。但是,我认为wget应该是最普遍可用的。如果这不可用,很可能所有其他人都不会那么好 -
True
curl也是一种可能性,但我认为这种可能性不如wget常见。我没有想到nc,所以这也有可能,我知道它已经存在了很长时间。 -
对了,你也可以use bash itself来发起HTTP请求。我猜 bash 比 wget 更常用(尽管该特定功能可能不那么常用)。
-
在 Bash
/dev/tcp上找到很酷的东西。如果您想添加有关nc和那个 bash 技巧的答案,我可能会接受。我开始认为,也许我过度分析了这个特定的部分,并且总是可以告诉他们在最坏的情况下安装其中一个包。 -
既然你提到了 Mac:OS X 自带 curl(还有 ftp、sftp、nc,当然还有 bash)但没有 wget。
标签: linux bash posix wget lynx