Являются ли wget или подобные программы всегда доступными для POSIX-систем?

Существует ли HTTP-клиент, такой как wget/lynx/GET, который по умолчанию распределяется в операционных системах POSIX или * nix, которые могут использоваться для максимальной переносимости?

Я знаю, что в большинстве систем установлены wget или lynx, но, похоже, я помню, что устанавливал некоторые серверные системы Ubuntu с использованием настроек по умолчанию, и у них не было ни wget, либо lynx, установленных в базовом пакете.

Я пишу оболочку script для Linux (и, вероятно, Mac) для установки на компьютер части программного обеспечения. Чтобы не распространять несколько больших файлов, я хотел бы извлечь эти файлы из Интернета вместо того, чтобы упаковывать их вместе с установщиком. В настоящее время установка script должна быть распределена в одном файле, созданном из Makeself.

Я бы хотел, чтобы установка script составляла более 100 МБ, что было бы, если бы файлы были включены, а также они могут не потребоваться, если человек обновляет или переустанавливает программное обеспечение. Может быть, самая портативная вещь, которую нужно сделать, это включить файлы в pacakage.

Сейчас я просто думаю о том, чтобы проверить script на wget, lynx и GET в этом порядке, и он будет использовать то, что может загрузить, но я мог бы избежать этого вообще если бы я мог загрузить файлы, которые будут работать во всех системах.

EDIT:

Знает ли кто-нибудь о lwp-request (GET) и его доступности? Кажется, это легко доступно на нескольких из систем, которые я проверил до сих пор, и я помню, что это всегда было около 10 лет назад, возвращаясь к RedHat.

Ответы

Ответ 1

По моему опыту, инструменты доступны в следующем порядке:

  • wget
  • curl
  • sftp
  • ftp
  • GET (я все время использую HEAD и часто забываю, что это всего лишь один инструмент в пакете)
  • tftp
  • nc (не так часто, как я желаю)
  • socat (еще менее распространенный)

Инструмент bash /dev/tcp доступен для большинства систем, которые я использовал (вместо них использовались dash или pdksh), но с помощью echo с bash, nc или socat идет длинный путь для доступа HTTP - вам придется каким-то образом обрабатывать заголовки, что снижает его элегантность.

Ответ 2

Официальный список утилит POSIX 7

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

В списке нет следующих элементов:

  • Wget
  • завиток
  • FTP

То же самое относится к LSB, который по существу гарантирует только утилиты POSIX.

Но я действительно думаю, что POSIX C достаточно для реализации большей части функциональности netcat, поэтому это действительно упущенная возможность.

Ответ 4

Я предлагаю использовать ftp или wget, поскольку они наиболее распространены в дистрибутивах Linux. Лучшая практика может заключаться в том, чтобы ваш script посмотреть, доступна ли команда, если не перейти к следующей команде.

Ответ 5

Curl, вероятно, даже чаще, чем wget. По крайней мере, по моему опыту, только потому, что от него зависят другие инструменты. Но оба curl и wget - это супер простая установка и будут доступны в любой системе.