wget或类似的程序总是在POSIX系统上可用?

是否有一个像wget/lynx/GET这样的默认分布在POSIX或* nix操作系统中的HTTP客户端,可以用来实现最大的可移植性?

我知道大多数系统都安装了wgetlynx ,但我似乎记得使用默认设置安装了一些Ubuntu服务器系统,并且它们没有安装在基本软件包中的wgetlynx

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

我想避免安装脚本超过100 MB,如果这些文件被包含在内,并且如果这个人正在升级或重新安装软件,这些文件可能是不需要的。 也许最便携的做法是将文件包含在pacakage中。

现在我只是想按照这个顺序检查wgetlynxGET ,并且会使用它来下载任何一个,但是我可以完全避免这种情况,如果有办法,我可以下载文件将在所有系统上工作。

编辑:

有没有人知道很多关于lwp-request( GET )及其可用性? 这似乎很容易在我已经检查的几个系统上可用,我记得这个系统总是在10年前回到RedHat。

根据我的经验,工具可以按照这个顺序提供:

  • wget
  • curl
  • sftp
  • ftp
  • GET (我总是使用HEAD ,经常忘记它只是套件中的一个工具)
  • tftp
  • nc (不如我所愿)
  • socat (甚至不太常见)

bash /dev/tcp工具在我用过的大多数系统上都可用(有些使用dashpdksh代替),但是在bashncsocat使用echo会让HTTP访问变得漫长 -不得不以某种方式处理标题,这将降低其优雅。

POSIX 7公用程序的官方列表

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

以下列表不在列表中:

  • wget的
  • 卷曲
  • FTP

LSB也是如此,它基本上只保证POSIX公用事业。

但是我认为POSIX C足以实现大部分的netcat功能,所以这是一个错失的机会。

gnu awk(gawk)甚至在非Linux系统上建立了TCP handeling http://www.gnu.org/software/gawk/manual/gawkinet/html_node/

我建议使用ftp或wget,因为它们是Linux发行版中最常见的。 最好的做法可能是让你的脚本查看命令是否可用,如果不是,则转到下一个命令。

卷曲可能比wget更普遍。 至少根据我的经验,仅仅因为更多的其他工具依赖于它。 但是curl和wget都是一个超级简单的安装,并且可以在任何系统上使用。