Всегда ли wget или подобные программы доступны в системах POSIX? - PullRequest
19 голосов
/ 29 февраля 2012

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

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

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

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

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

EDIT:

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

Ответы [ 5 ]

14 голосов
/ 29 февраля 2012

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

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

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

7 голосов

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

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

В списке присутствуют , а не :

  • Wget
  • локон
  • FTP

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

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

2 голосов
/ 04 сентября 2012

gnu awk (gawk) имеет встроенную поддержку TCP даже в системах, отличных от Linux http://www.gnu.org/software/gawk/manual/gawkinet/html_node/

2 голосов
/ 29 февраля 2012

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

1 голос
/ 29 февраля 2012

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

...