2012-02-28 13 views
16

¿Hay un cliente HTTP como wget/lynx/GET que se distribuye de manera predeterminada en los sistemas operativos POSIX o * nix que podrían utilizarse para la máxima portabilidad?¿Está wget o programas similares siempre disponibles en los sistemas POSIX?

sé que la mayoría de los sistemas tienen wget o lynx instalado, pero creo recordar la instalación de algunos sistemas de servidor de Ubuntu con la configuración predeterminada y no tenían ni wget o lynx instalado en el paquete base.

Estoy escribiendo un script de shell para Linux (y probablemente Mac) para instalar una pieza de software en la computadora. Para evitar tener que distribuir un par de archivos grandes, me gustaría buscar estos archivos desde Internet en lugar de empaquetarlos con el instalador. Actualmente, la secuencia de comandos de instalación se distribuirá en un solo archivo creado a partir del Makeself.

Me gustaría evitar que el script de instalación tenga más de 100 MB, que sería si los archivos estuvieran incluidos, y también pueden no ser necesarios si la persona está actualizando o reinstalando el software. Tal vez lo más portátil para hacer es incluir los archivos en el pacakage.

En este momento sólo estoy pensando en tener el cheque guión de wget, lynx y GET, en ese orden y se usarán lo que uno se pueda por la descarga, pero no pude evitar esta completo si había una manera que pude descargue los archivos que funcionarían en todos los sistemas.

EDIT:

¿Alguien sabe mucho acerca de LWP-petición (GET) y su disponibilidad? Esto parece estar disponible en varios de los sistemas que he revisado hasta ahora, y recuerdo que esto siempre fue hace más de 10 años cuando volvía a RedHat.

+1

También podría usar 'curl' o (ejemplo extremo)' netcat' (a menudo con alias como 'nc'). Sin embargo, creo que 'wget' debería ser el más universalmente disponible. Si esto no está disponible, es probable que los demás no sean tan buenos –

+0

Verdadero 'rizo' también es una posibilidad, pensé que uno sería menos común que 'wget' sin embargo. No pensé en 'nc', por lo que podría ser una posibilidad también, sé que ha sido por mucho tiempo. – drew010

+3

Por cierto, también puede [usar bash en sí mismo] (http://thesmithfam.org/blog/2006/05/23/bash-socket-programming-with-devtcp-2/) para realizar la solicitud HTTP. Supongo que bash está aún más disponible que wget (aunque esa característica en particular podría no estar tan habilitada). –

Respuesta

12

En mi experiencia, las herramientas están disponibles acerca en este orden:

  • wget
  • curl
  • sftp
  • ftp
  • GET (yo uso HEAD todo el tiempo y, a menudo olvidarlo es solo una herramienta en el paquete)
  • tftp
  • nc (no es tan común como lo deseo)
  • socat (aunque menos común)

La herramienta bash/dev/tcp está disponible en la mayoría de los sistemas que he usado (o algunos utilizan dashpdksh vez), pero usando echo con bash, nc, o socat va por buen camino para el acceso HTTP - tendrá que manejar los encabezados de alguna manera, lo que reduce su elegancia.

+0

Muchos clientes 'ftp',' ncftp', 'lftp', etc., pueden o no instalar enlaces simbólicos' ftp'; Los sistemas derivados de Debian llenarán al menos '/ etc/alternatives/ftp' con el cliente' ftp' preferido del sistema, y ​​'/ usr/bin/ftp' señalará eso. – sarnold

+1

He encontrado que wget está disponible en la mayoría de los sistemas que he usado; sin embargo, curl generalmente siempre ha sido algo que he compilado a mano. Por el contrario, sin embargo, debido a que SFTP se basa en tener acceso SSH, he encontrado que generalmente también siempre está disponible. Entonces clasificaría eso más arriba –

1

Sugiero usar ftp o wget, ya que son los más comunes en las distribuciones de Linux. La mejor práctica puede ser que su script se vea para ver si hay un comando disponible, si no, vaya al siguiente comando.

1

Curl es probablemente incluso más común que wget. Al menos en mi experiencia simplemente porque más otras herramientas dependen de ello. Pero tanto curl como wget son una instalación súper simple y estarán disponibles en cualquier sistema.

+0

Estoy de acuerdo, pero cuando se trata de estar preinstalado en un sistema, no creo que se instale comúnmente "de fábrica". Especialmente cuando estamos hablando de distros Linux de más de 5 años. – drew010

+1

Las distribuciones de Linux de 5 años o más no deben instalarse en ningún lugar. –

+0

Tienes razón, no sé lo que estoy pensando. No creo que vaya a pasar nada tan viejo. Gracias por los comentarios – drew010

Cuestiones relacionadas