Saludos comunidad, con la llegada del camaleón a la Universidad de las Ciencias Informáticas; los amantes de esta distribución hemos estado de plácemes. Desde entonces en el blog se han estado publicando una serie de artículos que brindan a todos información y algunos trucos referentes a esta distro, uno de estos fue: ¿Cómo se hace? Descargar y configurar localmente repositorios de OpenSuse compartido por el colega ale. En esta ocasión, gracias a la colaboración y autoría de Rigoberto Leander Salgado Reyes, trabajador de la universidad, les propongo una nueva variante para descargar los repositorios de openSUSE, a través de una aplicación Java que su autor titula Suse Mirror y así poder utilizarlos sin necesidad de estar conectados a una red, una vez descargados claro está.

La aplicación esta desarrollada en JAVA mediante la utilización de JVM 8, esto último es importante pues en el desarrollo se utilizaron características de JAVA 8 como son programación funcional, utilización de expresiones lambda entre otras. Para mayor detalle acerca de las nuevas características de JAVA 8 se pueden remitir a http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html.

El funcionamiento de la aplicación es el siguiente:

Para las secciones paralelas se utilizaron colecciones concurrentes, programación funcional y estructuras de entrada/salida asíncronas.

La aplicación se diseñó para usarse parecido al apt-mirror presente en los sistemas basados en Debian, es decir mediante líneas de comando, permitiendo agregar la descarga/actualización del repositorio como una tarea al planificador del sistema, por tanto la forma de utilizar la aplicación es la siguiente:

java   -jar suse-mirror.jar config.json

Un ejemplo de utilización sería:

java -Xms512m -Xmx2g  -jar suse-mirror.jar config.json

En donde se inicia con 512MB de RAM y se le permite aumentar hasta 2GB. La especificación de los umbrales de inicio y máximo son opcionales, dado que la máquina virtual de JAVA utiliza determinados valores por defecto para su funcionamiento. También es posible crear un script en bash o sh que contenga las configuraciones necesarias.

O más sencillo, ejecutamos el fichero sh que se encuentra dentro del comprimido que se comparte y se denomina suse-mirror.sh, una vez configurados los parámetros que se especifican en el fichero config.json y que más abajo se describen.

El contenido del fichero config.json es el siguiente:

{
  concurrentDownloads: 0,
  outputDirectory: "/run/media/heimdall/Datos/uNIx/sUSe/rEPo/",
  arch: "all",
  repositories: [
    "http://suse.uci.cu/updates",
    "http://suse.uci.cu/repo/oss/",
    "http://suse.uci.cu/repo/non-oss/",
    "http://suse.uci.cu/packman/Essentials/",
    "http://suse.uci.cu/packman/Multimedia/",
    "http://suse.uci.cu/packman/Games/",
    "http://suse.uci.cu/packman/Extra/"
  ],
  proxyHost: "",
  proxyPort: "",
  proxyUser: "",
  proxyPasswd: ""
}

Donde:

  • concurrentDownloads: se encuentra en 0 para que Java reconozca la cantidad de hilos óptimos.
  • outputDirectory: le especificamos la ruta donde deseamos descargar el repositorio.
  • arch: por defecto está en “all” para que descargue ambas arquitecturas.
  • repositories: se le especifican las rutas de los repositorios a descargar.
  • proxyHost, proxyPort,  proxyUser,  proxyPasswd: nos brindarán el resto de las opciones de configuración.

Descarga

Una vez presentada la aplicación y explicados los detalles para su utilización, no me queda más que dejarles a su disposición la descarga de la misma.

Suse Mirror v1.0 (137 descargas)

El autor comunica que el código de la aplicación está disponible en https://codecomunidades.uci.cu/rlsalgado/suse-mirror para aquellos que deseen contribuir al desarrollo de la misma y que ante alguna duda o sugerencia se agradecerá lo comuniquen a través de los comentarios.

Espero que les sea de ayuda, en mi caso personal me fue de lo mejor 🙂

Saludos.