2012-02-28 10 views
16

Esiste un client HTTP come wget/lynx/GET distribuito per impostazione predefinita nei sistemi operativi POSIX o * nix che potrebbero essere utilizzati per la massima portabilità?I programmi wget o simili sono sempre disponibili su sistemi POSIX?

so maggior parte dei sistemi hanno wget o lynx installato, ma mi sembra di ricordare l'installazione di alcuni sistemi server Ubuntu utilizzando le impostazioni predefinite e avevano né wget o lynx installati nel pacchetto base.

Sto scrivendo uno script di shell per Linux (e probabilmente Mac) per installare un pezzo di software sul computer. Per evitare di dover distribuire un paio di file di grandi dimensioni, mi piacerebbe recuperare questi file da Internet invece di eseguire il packaging con il programma di installazione. Attualmente, lo script di installazione deve essere distribuito in un singolo file creato da Makeself.

Vorrei evitare che lo script di installazione sia di oltre 100 MB, quale sarebbe se i file fossero inclusi e potrebbero non essere necessari se la persona sta aggiornando o reinstallando il software. Forse la cosa più portatile da fare è includere i file nel pacakage.

In questo momento sto solo pensando di avere il controllo di script per wget, lynx, e GET, in questo ordine e utilizzerà quale uno può per il download, ma ho potuto evitare questa del tutto, se ci fosse un modo ho potuto scarica i file che funzionano su tutti i sistemi.

EDIT:

Qualcuno sa molto di lwp-request (GET) e la sua disponibilità? Questo sembra essere prontamente disponibile su molti dei sistemi che ho controllato fino ad ora, e ricordo che è sempre stato circa 10 anni fa a tornare a RedHat.

+1

Si potrebbe anche usare 'arricciato 'o (estremo esempio)' netcat' (spesso aliasato come 'nc'). Tuttavia, penso che "wget" dovrebbe essere il più universalmente disponibile. Se questo non è disponibile, è probabile che tutti gli altri non lo siano altrettanto. –

+0

Anche il 'curl' è una possibilità, ho pensato che uno sarebbe meno comune di' wget' però. Non ho pensato a 'nc', quindi anche questa potrebbe essere una possibilità, so che è in circolazione da molto tempo. – drew010

+3

A proposito, puoi anche [usare bash stesso] (http://thesmithfam.org/blog/2006/05/23/bash-socket-programming-with-devtcp-2/) per fare la richiesta HTTP. Suppongo che bash sia ancora più comunemente disponibile di wget (anche se quella particolare caratteristica potrebbe non essere così comunemente abilitata). –

risposta

12

Nella mia esperienza, gli strumenti sono disponibili su in questo ordine:

  • wget
  • curl
  • sftp
  • ftp
  • GET (io uso HEAD tutto il tempo e spesso dimenticare è solo uno strumento nella suite)
  • tftp
  • nc (non così comune come vorrei)
  • socat (anche meno comuni)

Il bash/dev/tcp strumento è disponibile sulla maggior parte dei sistemi che ho usato (alcuni utilizzati dash o pdksh invece), ma l'utilizzo di echo con bash, nc o socat sta procedendo verso l'alto per l'accesso HTTP. Dovrai gestire le intestazioni in qualche modo, riducendo l'eleganza.

+0

Molti client 'ftp',' ncftp', 'lftp', ecc. Possono o non possono installare i link simbolici' ftp'; I sistemi derivati ​​da Debian popoleranno almeno '/ etc/alternatives/ftp' con il client' ftp' preferito dal sistema, e '/ usr/bin/ftp' punterà a ciò. – sarnold

+1

Ho trovato che wget è disponibile sulla maggior parte dei sistemi che ho usato, tuttavia il ricciolo è sempre stato qualcosa che ho compilato a mano. Al contrario, tuttavia, poiché SFTP è basato sull'avere accesso SSH, ho scoperto che è generalmente anche sempre disponibile. Quindi lo classificherei più in alto –

1

Suggerisco di utilizzare ftp o wget, in quanto sono i più comuni nelle distribuzioni Linux. La migliore pratica potrebbe essere quella di vedere il tuo script per vedere se un comando è disponibile, altrimenti passare al comando successivo.

1

Curl è probabilmente ancora più comune di wget. Almeno nella mia esperienza semplicemente perché altri strumenti dipendono da questo. Ma sia curl che wget sono un'installazione super semplice e saranno disponibili su qualsiasi sistema.

+0

Sono d'accordo, ma quando si tratta di essere preinstallato su un sistema, non penso sia comunemente installato "out of the box". Soprattutto quando parliamo di distro di linux di 5 anni. – drew010

+1

Le distribuzioni Linux di oltre 5 anni non dovrebbero essere installate ovunque .. –

+0

Hai ragione, non so cosa sto pensando. Non penso che succederà niente di così vecchio. Grazie per i commenti – drew010