Instalar wget de GNU Linux en macOS

Instalar en macOS High Sierra, desde el código fuente, openssl y la herramienta wgetde GNU Linux. Utilizar wget para descargar a nuestro ordenador una copia estática de un sitio web remoto.

Nota previa: para compilar e instalar aplicaciones desde su código fuente en macOS es necesario disponer de las Command Line Tools (CLT) correspondientes a la versión del sistema. Si tienes Xcode instalado, ya las tienes. En caso contrario puedes instalarlas de 3 maneras diferentes:

  • Abre Terminal y teclea uno de los comandos que están incluidos en esas herramientas, por ejemplo gcc, y se abrirá una ventana de alerta con 3 opciones: instalar las CLT, instalar Xcode completo (no es necesario) o no instalar por ahora.
  • Abre Terminal y escribe xcode-select –install, se abre una ventana de alerta similar a la anterior.
  • Descarga directa desde la web de Apple, elige la versión de las CLT correspondiente a tu versión de macOS.

Instalar wget compilando el código fuente

En primer lugar hay que instalar la versión más reciente de openssl que en el momento de escribir este artículo es openssl-1.1.1f. Se descarga con curl y se instala con los comandos habituales. Openssl es necesario si wget tiene que acceder a sitios seguros.

curl -O https://www.openssl.org/source/openssl-1.1.1f.tar.gz

./config
make
sudo make install

En segundo lugar hay que instalar la versión más reciente de wget que en el momento de escribir este artículo es 1.20.3. Se descarga con curl y se instala con los comandos habituales (configure > make > make install) pero con algunas anotaciones que se detallan a continuación.

curl -O http://ftp.gnu.org/gnu/wget/wget-latest.tar.gz

Antes de empezar el proceso de instalación conviene darle a configure valores iniciales exportando 2 variables de entorno, desde línea de comandos, para que configure sepa dónde buscar las librerías necesarias para el soporte SSL.

export OPENSSL_CFLAGS="-I/usr/local/include"
export OPENSSL_LIBS="-L/usr/local/lib -lssl -lcrypto -lz"

El comando configure se ejecuta con soporte para SSL:

./configure --with-ssl=openssl
make
sudo make install

Para comprobar si está bien instalada:

wget http://ftp.gnu.org/gnu/wget/wget-latest.tar.gz
Resolving ftp.gnu.org… 209.51.188.20
Connecting to ftp.gnu.org|209.51.188.20|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 4489249 (4.3M) [application/x-gzip]
Saving to: 'wget-latest.tar.gz'
wget-latest.tar.gz 100%[========>] 4.28M 936KB/s in 4.7s
'wget-latest.tar.gz.1' saved [4489249/4489249]

Al terminar puedes borrar los paquetes descargados y las carpetas descomprimidas.

Descargar un sitio entero con wget

mkdir Sitio-local
cd Sitio-local
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --domains sitio.es --timestamping --html-extension --restrict-file-names=windows https://sitio.es

Esto crea una copia del sitio web en la carpeta Sitio-local. Las opciones son:

-m –mirror: entre otras cosas, hace la descarga recursiva.
-k –convert-links: convertir los enlaces para que funcionen en modo local, off-line.
-E –adjust-extension: añade extensiones a los archivos (html or css) dependiendo de su contenido.
-p –page-requisites: obtener todos los elementos que componen la página (imágenes, CSS, etc.).
-np –no-parent: no seguir los enlaces más arriba del directorio.
-N –timestamping: sólo descarga archivos que sean más nuevos que el equivalente local.
-D –domains sitio.es: no seguir los enlaces fuera de sitio.es.
–html-extension: guardar archivos con la extensión .html.
–restrict-file-names=windows: modificar nombres de archivos para que funcionen correctamente en Windows.

Nota: En macOS el equivalente de wget de Linux es curl -O. Es apropiado para descargar elementos sueltos de un sitio web pero no para hacer un espejo del sitio web como wget.