是否在POSIX系统上始终提供wget或类似程序?

时间:2012-02-28 22:35:37

标签: linux bash posix wget lynx

是否有像wget/lynx/GET这样的HTTP客户端默认在POSIX或* nix操作系统中分发,可用于最大程度的可移植性?

我知道大多数系统都安装了wgetlynx,但我似乎记得使用默认设置安装了一些Ubuntu服务器系统,但他们没有安装wgetlynx在基础包中。

我正在为Linux(可能还有Mac)编写一个shell脚本,将一块软件安装到计算机上。为了防止分发几个大文件,我想从互联网上获取这些文件,而不是使用安装程序打包。目前,安装脚本将分发在从Makeself创建的单个文件中。

我希望避免安装脚本超过100 MB,如果文件包含在内,那么如果此人正在升级或重新安装软件,则可能不需要它们。也许最便携的事情是将文件包含在pacakage中。

现在我只是想按顺序检查wgetlynxGET的脚本,它会使用它可以下载的任何一个,但是我如果我可以下载可以在所有系统上运行的文件,我可以完全避免这种情况。

编辑:

有没有人对lwp-request(GET)及其可用性了解多少?在我迄今为止检查过的几个系统中,这似乎很容易获得,我记得这一直是大约10年多以前回到RedHat。

5 个答案:

答案 0 :(得分:14)

根据我的经验,工具按此顺序提供:

  • wget
  • curl
  • sftp
  • ftp
  • GET(我一直使用HEAD并经常忘记它只是套件中的一个工具)
  • tftp
  • nc(不像我希望的那样常见)
  • socat(更不常见)

bash /dev/tcp工具适用于我使用的大多数系统(有些使用dashpdksh代替),但使用echo和{ {1}},bashnc正在为HTTP访问做好准备 - 您必须以某种方式处理标题 ,这会降低其优雅性

答案 1 :(得分:7)

POSIX 7公用事业的官方列表

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html

以下列表中

  • wget的
  • 卷曲
  • FTP

同样适用于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发行版中最常见的。最佳做法可能是让您的脚本查看命令是否可用,如果没有则转到下一个命令。