lunes, 19 de enero de 2015

Los comandos wget y dpkg

No soy tan friki como para usar la consola hasta para saber la fecha y la hora (aunque es realmente fácil, basta escribir el comando 'date'), pero si que es cierto que me he ido acostumbrando a usarla para ciertas operaciones habituales porque realmente, aun siendo 'noobie', descubres que es un método cómodo y rápido... reteniendo en la memoria unos pocos comandos. Pero el caso es que veo en foros, etc, que los 'usuarios pro', que usan mucho la consola, emplean con cierta frecuencia los comandos wget, y dpkg, y me propuse entender qué eran, y para qué podían usarse.
Evidentemente, hasta ahora he vivido muy feliz sin ellos y no me apetece nada estudiarlos a fondo, sino solo tener un poco de 'culturilla general'
El comando dpkg 
Es un comando muy antiguo (de los orígenes de Debian) y muy potente. Sirve para gestionar (listar, instalar, desinstalar, proporcionar información, etc...) los paquetes .deb típicos de esta distribución, y de sus derivadas. Es la base de apt-get, aptitude y, por supuesto, de los interfaces gráficos como Synaptic, los 'centros de software', etc.
Parece ser que tiene el inconveniente de que, siendo un gran manejador de paquetes... es algo básico porque, por ejemplo, no sabe nada de 'dependencias' (no automatiza la instalación y desinstalación de los paquetes dependientes) . Por eso, creo que está superado por apt-get y, sobre todo, por aptitude.
Pero tiene una utilidad que a mi me interesa: el mandato 'sudo dpkg-reconfigure paquete', que permite reconfigurar los paquetes para dejarlos más a nuestro gusto (o corregir alguna desconfiguración).
Algunos ejemplos pueden ser...
sudo dpkg-reconfigure gdm3 (por ejemplo para cambiar de Display Manager, si tienes varios) 
sudo dpkg-reconfigure keyboard-configuration (para elegir un tipo específico de teclado) 
y otras, como … -reconfigure locales, para los idiomas, ...-reconfigure xserver-xorg, etc, etc. 
Así que yo lo usaré de modo muy puntual, porque para todo el asunto de instalar y desinstalar paquetes, APT (acrónimo de 'Advanced Packaging Tools', herramienta avanzada de quien deriva, además de apt-get, las muy conocidas y usadas como aptitude, synaptic, etc), o el propio instalador de paquetes *.deb 'offline', el GDebi, me parecen más completos, al automatizar y gestionar mejor (sobre todo aptitude) el tema de las dependencias.

El comando wget 
Este es un viejo y potentísimo comando que sirve para descargar cosas de internet 'al modo antiguo' es decir, desde la consola, desde protocolos http, https y ftp. Significa, literalmente 'obtener (get) desde la WWW (w)'. Y permite descargar incluso páginas web enteras, de forma recursiva (niveles). Hay mucha info, por Google, sobre cómo usar wget.
Por poner solo algunos ejemplos...
wget http://paginaweb.com paquete.deb descarga el archivo 'paquete.deb' de la web indicada
wget http://paginaweb.com *.pdf descarga todos los archivos 'pdf' que contenga esa página 
También permite poner varias descargas en el mismo comando (incluso desde diferentes protocolos), por ejemplo... 
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/video.mpg 
Y, lo que es más fácil, puedes crear un archivo de texto 'lista.txt', con todas las descargas que queremos hacer, y lanzarlas desde una sola orden con 
wget -i lista.txt 
La 'i' es de 'input'. Porque wget admite modificadores: por ejemplo, en las descargas que se presuman largas, añadiendo la opción -c, en caso de que se detuviese, se continuaría la descarga donde se hubiese cortado. 

Wget es, posiblemente, uno de los mejores y más rápidos gestores de descargas.
Mira este comando:
wget -r -c -k -p http://comoserdebianitaynomorirenelintento.blogspot.com.es/
donde...
 -r : Esto indica la recursividad. Por defecto, descarga 5 niveles. Si quieres descargar más, o menos, se lo indicas con '-l(número). O sea 'level' seguido de un número. Por ejemplo, wget -r -l3 solo descargará hasta el tercer nivel de enlaces del sitio web que indiques. 
-c: como ya he dicho, indica que si se interrumpe la descarga, se continúe donde la ha dejado
-k : Esto indica que se convertirán los links del sitio descargado para poder verlos luego 'offline'. 
-p : esto indica que se descarguen los elementos extras de la web, como las imágenes libres y en línea de la página, las hojas de estilo, etc. Ojo, descarga solo 'las imágenes en línea' si no lo están (como es el caso del ejemplo, que sabe dios donde las guarda blogspot, y si están protegidas) no se descargan. (Este es el problema que aparece en algunas webs con imágenes. Creo que aplicaciones que hacen eso, como la que indicaba aquí, que supongo que se basan en wget, lo solucionan... pero son bastante más lentas).  
Por defecto, el sitio a descargar se guarda en el mismo directorio donde estés ejecutando wget, con la opción P/ruta/ puedes indicar un directorio distinto, pero tampoco merece la pena liarse ¿no? Ya lo cambiarás de sitio luego. 
NOTA: más adelante descubrí otra forma (del mismo estilo) de descargar todo. Lo primero a hacer, como dije, y para evitar líos, es crearte una carpeta en el escritorio (por ejemplo Escritorio/prueba) Una vez hecho esto, abrir una terminal en dicha carpeta (que es donde se descargará todo) y, finalmente con el comando
wget -r -nH dirección_web-a-descargar
verás que te lo descarga todo en un plisplás. 


En resumen, wget es un comando muy potente, y que da 'mucha productividad' a los usuarios 'pro'. 
No creo que sea mi caso, porque, como hago descargas puntuales, lo suelo hacer 'en modo gráfico', mediante el navegador, y alguna de sus complementos (DownthemAll!, DownloadHelper, etc) o con botón derecho ratón... descargar...
Pero es interesante conocerlo y a quien le quiera profundizar en este comando, le recomiendo, más que leerse su manual ('man wget') que, como pasa siempre, más que manual (para novatos) es un 'prontuario' para listos (o gente que ya sepa del tema) que busque cosas por Google, como por ejemplo, esto:
https://lists.debian.org/debian-user-spanish/2011/08/msg00272.html 

Y, mira por donde , ahora entiendo algo más de esta orden que ves por ahí y que sirve para descargar e instalar la Public Key del VirtualBox de Oracle 
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

No hay comentarios:

Publicar un comentario