是否有像wget/lynx/GET
这样的HTTP客户端默认在POSIX或* nix操作系统中分发,可用于最大程度的可移植性?
我知道大多数系统都安装了wget
或lynx
,但我似乎记得使用默认设置安装了一些Ubuntu服务器系统,但他们没有安装wget
或lynx
在基础包中。
我正在为Linux(可能还有Mac)编写一个shell脚本,将一块软件安装到计算机上。为了防止分发几个大文件,我想从互联网上获取这些文件,而不是使用安装程序打包。目前,安装脚本将分发在从Makeself创建的单个文件中。
我希望避免安装脚本超过100 MB,如果文件包含在内,那么如果此人正在升级或重新安装软件,则可能不需要它们。也许最便携的事情是将文件包含在pacakage中。
现在我只是想按顺序检查wget
,lynx
和GET
的脚本,它会使用它可以下载的任何一个,但是我如果我可以下载可以在所有系统上运行的文件,我可以完全避免这种情况。
编辑:
有没有人对lwp-request(GET
)及其可用性了解多少?在我迄今为止检查过的几个系统中,这似乎很容易获得,我记得这一直是大约10年多以前回到RedHat。
答案 0 :(得分:14)
根据我的经验,工具按此顺序提供:
wget
curl
sftp
ftp
GET
(我一直使用HEAD
并经常忘记它只是套件中的一个工具)tftp
nc
(不像我希望的那样常见)socat
(更不常见) bash
/dev/tcp
工具适用于我使用的大多数系统(有些使用dash
或pdksh
代替),但使用echo
和{ {1}},bash
或nc
正在为HTTP访问做好准备 - 您必须以某种方式处理标题 ,这会降低其优雅性
答案 1 :(得分:7)
POSIX 7公用事业的官方列表
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
以下列表中不:
同样适用于LSB,它基本上只保证POSIX实用程序。
但我确实认为POSIX C足以实现大多数netcat
功能,所以它真的是错失良机。例如:HTTP get Request using C WITHOUT libCurl
答案 2 :(得分:2)
卷曲可能比wget更常见。至少在我的经验中,仅仅因为更多其他工具依赖于它。但curl和wget都是一个超级简单的安装,可以在任何系统上使用。
答案 3 :(得分:2)
gnu awk(gawk)即使在非Linux系统上也内置了TCP handeling http://www.gnu.org/software/gawk/manual/gawkinet/html_node/
答案 4 :(得分:1)
我建议使用ftp或wget,因为它们是Linux发行版中最常见的。最佳做法可能是让您的脚本查看命令是否可用,如果没有则转到下一个命令。