linux - ¿Está disponible wget o programas similares en los sistemas POSIX?
bash lynx (5)
El rizo es probablemente incluso más común que el wget. Al menos en mi experiencia simplemente porque otras herramientas dependen de ello. Pero tanto curl como wget son una instalación super simple y estarán disponibles en cualquier sistema.
¿Hay un cliente HTTP como wget/lynx/GET
que se distribuya de forma predeterminada en los sistemas operativos POSIX o * nix que podrían usarse para la máxima portabilidad?
Sé que la mayoría de los sistemas tienen wget
o lynx
instalado, pero me parece recordar que instalé algunos sistemas de servidores Ubuntu con la configuración predeterminada y no tenían wget
ni lynx
instalados 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 recuperar estos archivos de Internet en lugar de empaquetarlos con el instalador. Actualmente, el script de instalación se distribuirá en un solo archivo creado a partir de Makeself .
Me gustaría evitar que el script de instalación supere los 100 MB, lo que sería si se incluyeran los archivos, y es posible que no sean necesarios si la persona está actualizando o reinstalando el software. Tal vez lo más portátil es incluir los archivos en el pacakage.
Ahora mismo estoy pensando en que el script compruebe wget
, lynx
y GET
, en ese orden y utilizará lo que pueda para descargar, pero podría evitarlo por completo si hubiera una forma de descargar los archivos que Funcionaría en todos los sistemas.
EDITAR:
¿Alguien sabe mucho sobre lwp-request ( GET
) y su disponibilidad? Esto parece estar fácilmente disponible en varios de los sistemas que he comprobado hasta ahora, y recuerdo que siempre hace alrededor de 10 o más años volviendo a RedHat.
En mi experiencia, las herramientas están disponibles en este orden:
-
wget
-
curl
-
sftp
-
ftp
-
GET
(usoHEAD
todo el tiempo y, a menudo, olvido que es solo una herramienta de la suite) -
tftp
-
nc
(no es tan común como deseo) -
socat
(incluso menos común)
La herramienta bash
/dev/tcp
está disponible en la mayoría de los sistemas que he usado (algunos usan dash
o pdksh
lugar), pero usar echo
con bash
, nc
o socat
va por el camino más largo para el acceso a HTTP. Tendré que manejar los encabezados de alguna manera , lo que reduce su elegancia.
Sugiero usar ftp o wget, ya que son los más comunes en las distribuciones de Linux. La mejor práctica podría ser que su script busque si hay un comando disponible, de lo contrario, vaya al siguiente comando.
gnu awk (gawk) ha incorporado el manejo de TCP incluso en sistemas que no son de Linux http://www.gnu.org/software/gawk/manual/gawkinet/html_node/
Lista oficial de utilidades POSIX 7
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
Los siguientes no están presentes en la lista:
- wget
- rizo
- ftp
Lo mismo ocurre con el LSB que esencialmente solo garantiza las utilidades POSIX.
Pero creo que POSIX C es suficiente para implementar la mayoría de netcat
funciones de netcat
, por lo que es realmente una oportunidad perdida. Ej .: Solicitud de obtención HTTP usando C SIN libCurl