Header Ads

Updates

Si hay algo realmente molesto son las actualizaciones, en especial las de Ubuntu, que son cada vez más frecuentes, al punto que han superado en cantidad y tamaño a las de Windows. Esto se debe a que en Ubuntu, a diferencia de Debian, Red Hat o SuSe, no existen DVDs extra con los repositorios y todo hay que descargarlo de internet vía apt-get update o aptitude update.
Cada semana Ubuntu descarga un promedio de 50 a 100 mb en solo actualizaciones del sistema operativo y aplicaciones esenciales, sin contar con los programas que tengamos instalados.
Las instalaciones en limpio son otro dolor de cabeza, ya que generan descargas post-install superiores a 300mb. Incluso hasta en la super rápida versión descontinuada de Ubuntu 10.04.02, las actualizaciones de base superan los 250mb durante y después de la instalación. Y si por alguna razón tenemos que formatear algún equipo de nuestra Lan, nuevamente hay que descargar cientos de megas en actualizaciones.
Esto se traduce en un consumo excesivo del ancho de banda, y si tenemos en nuestra Lan un grupo considerable de equipos con Ubuntu, es una verdadera odisea.
Al menos la comunidad Windows solucionó este problema y hay disponible muchas soluciones, como las ofrecidas por Ricktendo con su Update Pack Latino para XP, integrando los "addon" con Nlite, y los métodos de integración de actualizaciones para las versiones Vista, 7 y 8. (Puede consultarlos en el foro Wincert).
Ante la pesadilla, muchos optan por no actualizar Ubuntu, sin embargo esto es un error, ya que las actualizaciones son necesarias, más viniendo de un sistema operativo con tantos forks y en "constante construcción"... Pero para todo hay una solución.
Actualizaciones p2p
Una alternativa para descargar repositorios no centralizados es la herramienta apt-p2p que descarga las actualizaciones de Ubuntu (también de Debian) via p2p (similar a DebTorrent), sobre todo para aquellos que tienen un limitado ancho de banda de internet y conexiones satelitales muy costosas, donde el ahorro es prioridad.
Según la define el portal Ubuntizando, "apt-p2p no es mas que un proxy p2p para nuestro apt. Su utilidad radica en que las descargas no se hacen desde un servidor centralizado, estas se realizan desde otros usuarios que hubieran realizado la descarga antes. Esto acelera las descargas mas allá de los limites de ancho de banda de nuestro servidor de repositorios".
Ventajas
1. Descargas de los pares (peers), lo que aumenta el ancho de banda disponible para el usuario
2. Reduce los requisitos de ancho de banda necesarios para configurar un repositorio de paquetes
3. Integra a la perfección con la herramienta APT
4. Cae automáticamente a la descarga de un espejo HTTP cuando sus pares (peers) no están disponibles
5. Se basa en otros instrumentos ya existentes
6. Es rápida y requiere un limitado uso de la CPU y la memoria
7. Tratará de descargar cualquier archivo que pueda encontrar un hash de los pares (peers) (incluyendo Packages.bz2, Sources.gz, ...)
Instalando apt-p2p
Antes de comenzar tenga presente que:
a. El puerto de trabajo por defecto en el localhost es 9977 (TCP y UDP), por lo tanto si tiene un Firewall activado (Iptables, etc) debe abrir este puerto para que sea "alcanzado" por otros peers. Puede cambiar los puertos en el archivo de configuración /etc/apt-p2p/apt-p2p.conf
b. El directorio cache por defecto es /var/cache/apt-p2p
c. Verifique en launchpad.net los repositorios para su versión de Ubuntu. (Para Precice). Consulte su versión de Ubuntu en el terminal, con los comandos lsb_release -a o cat /etc/issue
sudo apt-get install apt-p2p
Backup del archivo sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list-apt-p2p-backup
Editar sources.list con su editor preferido
sudo gedit /etc/apt/sources.list
Y reemplace los repositorios con las líneas
#apt-p2p (Añadir “localhost:9977″ después de cada “http://” deb)
deb http://localhost:9977/archive.canonical.com/ubuntu precise partner
deb-src http://localhost:9977/archive.canonical.com/ubuntu precise partner
deb http://localhost:9977/*mirror-address*/ubuntu/ precise main universe restricted multiverse
deb-src http://localhost:9977/*mirror-address*/ubuntu/ precise main universe restricted multiverse
Borrando la cache y actualizando repositorios p2p
sudo rm -rf /var/cache/apt-p2p/cache/*
sudo apt-get update && sudo apt-get upgrade
Consultar las estadísticas de las descargas en el navegador
http://localhost:9977
Limitaciones
Al depender de pares (peers) conectados, puede ocurrir que cuando este haciendo un apt-get update después de haber configurado el archivo source.list con localhost:9977, se presenten errores en la descarga de algunos repositorios, lo cual frena la actualización.
Además, Apt-P2P no está diseñado para funcionar como una descarga para varios clientes en una red privada. Apt-P2P comprueba el origen de las solicitudes de entrada y sólo responde a los del localhost, por tanto no se puede usar Apt-P2P para sincronizar actualizaciones entre el servidor local de repositorios y los equipos de nuestra Lan. (Lea el manual man apt-p2p). 
Creando nuestro propio sistema de caché dedicado (repositorio caché)
La manera más idónea de actualizar una red local con terminales Ubuntu es creando un repositorio caché. La ventaja es que un solo equipo (que actuará como servidor del repositorio caché) será el único que realmente descargará las actualizaciones. Los terminales de la red interna lo harán desde nuestro repositorio caché.
Existe una variedad de alternativas. Por ejemplo Apt tiene muchas opciones, tales como apt-proxy, apt-cache, especialmente apt-cacher y apt-mirror, las cuales trataremos a continuación.
Puede instalarlos por terminal o por el Centro de Software de Ubuntu y/o Synaptic
sudo apt-get install apt-mirror
o
sudo apt-get install apt-cacher-ng
NOTA: apt-cacher tiene dependencias con apache, perl y wget, por lo que instalará los paquetes si no se encuentran. Caso contrario ejecute
sudo apt-get install apt-cacher apache2
sudo /etc/init.d/apache restart
Apt-cacher vs Apt-mirror
La diferencia principal entre ambos radica en que, con apt-mirror nuestro servidor local descarga TODOS los repositorios, consumiendo cientos de gigas en el disco duro, en cambio apt-cacher, de un modo más eficiente, solo descarga los repositorios que solicitan los usuarios y los va almacenando en la cache para futuras peticiones.
Puede consultar mas detalles sobre sus diferencias AQUI o AQUI
Apt-cacher NG es un caché de proxy HTTP para descargar paquetes de software, principalmente para clientes Debian/Ubuntu. En parte esta basado en los conceptos de apt-cacher, pero se vuelve a escribir con un enfoque principal en el rendimiento y el uso de bajos recursos, generalmente provee el servicio por el puerto 3142
Consulte los tutoriales apt-cacher, apt-cacher-ng y apt-mirror.
NOTA: La ip y puerto del servidor de repositorios se definen en el archivo de configuración de apt-cacher
sudo gedit /etc/apt-cacher/apt-cacher.conf
Lea el artículo Apt-Cacher-Server
AptonCD
sudo apt-get install aptoncd
Otra manera para actualizar varios terminales con Ubuntu/Debian es utilizando AptonCD. Con esta herramienta compilamos todas las actualizaciones descargadas creamos una ISO autoinstalable de los repositorios descargados y se coloca en una "carpeta compartida" en la red local para que cada equipo con Ubuntu puedan actualizarse con la ISO, previamente montada.
Tutorial AptonCD
Squid Repositorio Caché
La alternativa más recomendada es crear un repositorio caché con el Squid, la cual fue explicada con detalles en nuestro artículo Squid Cache. Con este método no necesitamos modificar el archivo souce.list, ni crear una caché dedicada a los repositorios, ya que la misma caché de Squid se puede usar para almacenarlos.
Otras alternativas
Otras maneras de actualizar los equipos es "moviendo" el directorio de actualizaciones del servidor local de repositorios a los terminales de nuestra red Lan, usando el comando apt-move y un script para trasladar los datos. También puede usar un software (como FreeFileSync, etc) para sincronizar el directorio /etc/apt del servidor local de repositorios (que es donde se descargan las actualizaciones) o simplemente compartirlo, sin embargo no recomendamos ninguna de estas alternativas, ya que mover los repositorios de un equipo a otro o sincronizar la carpeta /etc/apt del repositorio cache con los terminales locales, son técnicas poco eficientes que podrían derivar en problemas vinculados al bloqueo del archivo 'sources.list', al ejecutar procesos que no son lo suficientemente transparentes para el usuario final, además de la gran demanda de espacio en los discos duros sincronizados y del permanente consumo de los recursos de nuestra red.
Conectando equipos al Servidor Local de Repositorios (repositorio caché)
Antes de comenzar tenga en cuenta que por el tamaño de los repositorios de Ubuntu se recomienda crear un repositorio caché solamente para aplicaciones esenciales, parches de seguridad, etc, a no ser que disponga de inmensas cantidades de recursos en su servidor y almacenamiento local.
Para conectar los equipos de nuestra red local al repositorio cache, deberá editar el archivo source.list de cada equipo y cambiarle las entradas de los repositorios y apuntarlas hacia el servidor local donde se encuentra el repositorio cache, con el formato:
deb http://ip_del_servidor/ nombre-de-la-distribución nombre-repositorio
Ejemplo de un servidor Ubuntu 12.04.02 LTS con apt-cacher:
deb http://192.168.1.1:3142/ubuntu/ precise main restricted
Limitaciones de todos los sistemas mencionados
Todos los terminales, incluyendo el servidor de repositorios, deben tener la misma versión del Sistema Operativo, para que la actualización no genere error.
Con la tecnología de Blogger.