Manjaro 16.06 (Daniella) ha sido liberado

Descargando Repositorios de Manjaro «a lo taíno»

Saludos a los lectores de GUTL. Hace ya tiempo no escribo un post para este excelente espacio pero hoy trataré de escribir algo que sea útil al menos para un usuario. Hoy quiero dejarles una solución relacionada con repositorios, Manjaro y la incómoda situación del cubano de a pie y el acceso pleno a Internet. Como he dicho otras veces, los usuarios cubanos que usamos GNU/Linux demostramos a diario que «sin Internet se puede, aunque no es lo mismo«.

En GUTL y otros sitios relacionados con el Software Libre en Cuba es recurrente el tema de la dificultad de usar Linux debido a la imposibilidad de acceder a repositorios. En el planeta Tierra, la cosa es diferente ya que nadie necesita llevarse todos los repositorios a su ordenador (instalas y desinstalas de manera online), pero acá, en la bella isla del Caribe, las cosas se complican y a menos que seas administrador de Red de alguna institución estatal que te facilite las cosas, usar GNU/Linux es una tarea titánica.

Por suerte, los muchachones que administran el nodo nacional de los Joven Club de Computación y Electrónica mantienen actualizados varios mirrors de repositorios de las distros más usadas en Cuba, por ejemplo Arch Linux y Manjaro. Pero aún así, copiar estos repositorios intactos sigue siendo casi imposible y sincronizar desde una Wifi_Etecsa (la menciono y les juro que me da vergüenza hablar de cualquier servicio de ETECSA) es totalmente inviable, como si Internet fuera exclusivo para usar Facebook o hablar por IMO.

Si vas al Joven Club de tu barrio a pedir que te copien los repositorios que necesites (y me centro en Manjaro que es la distro que utilizo) lo más probable es que ningún trabajador de dicha institución sepa siquiera de que le estás hablando.

Por suerte, aunque ni siquiera puedes usar Rsync (sería lo ideal) para sincronizar desde una Red diferente a Joven Club, si podemos usar Wget y luego adaptar el resultado para lograr un repositorio muy pero muy nuestro, a lo taíno, como todo en Cuba.

Descargando paquetes tar.xz con Wget desde repositorios Manjaro de Joven Club

Seguramente para hacer esto necesitarás atravesar un proxy (recordemos que aún vivimos en Proxy Island), sea desde tu centro laboral o estudiantil. Veamos como usar wget a través de un proxy con usuario y contraseña.

Pongo como condición inicial que imagino estarás en un ordenador con Linux, aunque sea en modo Live. Abriremos una terminal (que por cierto, no vamos a cerrar hasta que hayamos terminado de descargar el último paquete) y ejecutamos lo siguiente:

export http_proxy="http://ip:puerto"

Donde dice ip colocan el número de ip del proxy y donde dice puerto, obviamente el puerto de dicho proxy. Ahora, sin cerrar la terminal (si la cierran estarían abandonando esa sesión de la shell y perderían el valor exportado) ejecutarán wget con los parámetros necesarios para descargar los paquetes según la arquitectura que necesiten, en este ejemplo uso 32 bits (así no tendrán que llevarse a casa paquetes de una arquitectura innecesaria):

wget --proxy-user "usuario" --proxy-passwd "password" -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /ubicacion/donde/copiar/ http://descargas.jovenclub.cu/repos/manjaro/stable/core/i686/ -A "*.pkg.tar.xz"
wget --proxy-user "usuario" --proxy-passwd "password" -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /ubicacion/donde/copiar/ http://descargas.jovenclub.cu/repos/manjaro/stable/extra/i686/ -A "*.pkg.tar.xz"
wget --proxy-user "usuario" --proxy-passwd "password" -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /ubicacion/donde/copiar/ http://descargas.jovenclub.cu/repos/manjaro/stable/community/i686/ -A "*.pkg.tar.xz"

Nótese que estamos obviando las firmas .sig de cada paquete 😉

Deben sustituir usuario por el nombre de usuario para autenticar en el proxy y password por la contraseña de dicho usuario. También deben sustituir la ubicación exacta donde copiar los paquetes. He visto ejemplos donde descargan los paquetes específicos desde las carpetas overlay y sync moviendo el comodín * hasta especificar la arquitectura que se desea bajar, en ese caso se corre el riesgo de no descargar paquetes multiplataforma *any-pkg.tar.xz, por eso prefiero hacerlo de la manera expuesta arriba.

Si quieres saber exactamente que hace cada parámetro añadido a wget te invito a que te pases por man wget desde la terminal.

Les dejo como tareas hacer un script propio en el que wget obvie paquetes que ustedes no quieran descargar o que por el contrario tome en cuenta una lista predeterminada de paquetes que deseas (cuidado con las dependencias, alíate a pacman para esto). Los que resuelvan esa tarea espero soluciones en los comentarios, no es complicado de hacer.

En dependencia de tu ancho de banda (o estrecho de banda, según sea tu caso) en un buen rato puedes tener descargados todos los paquetes en las carpetas core, extra y community. Ahora te recomiendo los unas todos en un único directorio. En mi caso los paso todos a mi disco externo a una carpeta llamada manjaro-repofull, es decir, mi futuro repositorio local no se dividiría en tres ramas core, community y extra, sino en una sola que llamaré mirepo, así a lo taíno como todo en Cuba.

Ahora, en mi caso específico, me llevo toda esa paquetería hacia mi ordenador propio, en mi casita humilde y bella para entonces pasar a la parte más interesante y menos estresante, crear el repositorio local desde Manjaro. Llego a casa, prendo la PC, entro a mi sesión, conecto el disco duro externo y a trabajar.

Crear una base de datos de repositorios solo para los paquetes descargados

Una cosa es tener una carpeta llena de archivos tar.xz y otra muy diferente es que esa carpeta sea reconocida por Manjaro como una fuente de repositorios. Para esto necesitamos crear una base de datos que incluya todos los datos de cuantos paquetes hay en dicha carpeta (podíamos haber descargado las bases de datos de los repositorios oficiales, pero como tal vez usamos un script para descargar solo los paquetes que necesitamos, lo mejor es crear una base de datos nueva y a la medida justa). Esto es sencillo, muy sencillo.

Entraremos desde la terminal o consola al directorio exacto donde tenemos los paquetes tar.xz y desde esa ubicación específica ejecutamos algo similar a lo siguiente:

repo-add mirepo.db.tar.gz *.pkg.tar.xz

Y en dependencia de la cantidad de paquetes y la potencia de nuestro ordenador, esperamos un rato a que termine de crearse la base de datos.

Al final tendremos nuestra carpeta con la estructura correcta de un repositorio totalmente reconocible y usable

Al final tendremos nuestra carpeta con la estructura correcta de un repositorio totalmente reconocible y usable

Ahora toca aclararle a pacman cual es la nueva y única fuente de paquetes que debe leer, es como decirle al pobre comecocos que le toca trabajar en una PC con única conexión exterior al cable de alimentación eléctrica, nada de Internet.

Esto lo haremos mediante la adición de unas sencillas líneas en cualquier lugar del archivo pacman.conf (ubicado en /etc). Para evitar conflictos recomiendo deshabilitar el resto de las líneas de ese archivo usando # y luego añadir algo como esto:

[mirepo]
SigLevel = Never
Server = file:///run/media/maikel/MAIKEL_DAISY/MAIKEL/SWL/manjaro-repofull/

Con SigLevel = Never le aclaramos a pacman que obvie la comprobación de firmas de autenticidad de paquetes ya que no hemos descargado los paquetes .sig de los repositorios de origen.

También les recomiendo editar el archivo /etc/pacman.d/mirrorlist y eliminar o deshabilitar con # todos los mirrors existentes y dejar exclusivamente el nuestro, en mi caso:

Server = file:///run/media/maikel/MAIKEL_DAISY/MAIKEL/SWL/manjaro-repofull/

Con esto ya podemos actualizar, instalar y desinstalar paquetes con total confianza.

Ya está listo nuestro repositorio local.

Ya está terminado nuestro repositorio local. sudo pacman -Syu y sistema al día

En fin, espero le sirva a más de uno y recuerden que a mitad de artículo les dejé una tarea 😉

¿Te resultó interesante? Compártelo ...



Maikel Llamaret Heredia

Publicado por Maikel Llamaret Heredia

https://swlx.info » Facebook » Twitter » Google+ » Linkedin » Forma parte de GUTL desde el 6 diciembre, 2011. Parte de la familia GUTL. Usuario de Tecnologías Libres desde hace varios años. Fiel a GNU/Linux y las filosofías del Software Libre y el Código Abierto. Linux User # 587451. Creador y actual mantenedor del Proyecto SWL-X. Freelancer dedicado al Desarrollo / Diseño Web y Marketing Online. Creador de Web & Media Integrated Solutions

Este artículo tiene 50 comentarios

  1. OFFTOPIC: Por favor a los admins de TinoRED, cambiaron ahora el frontend web que se utiliza para acceder a descargas.jovenclub.cu, pero no puedo entrar a ver que hay actualizado por ejemplo en los repos de Arch y Manjaro 🙁
    Eso sin contar que ni siquiera me permite organizarlos por fecha de actualizacion, como se podia anteriormente.

    • Hola «cacique»… (es un chiste)
      Llevo un par de días con el Manjaro en la PC (versión KDE) y creo que es justo lo que me recomendó el médico. Hasta ahora no he hecho nada grande, pero no creo que sea un cambio tan traumático para un ubuntero, tal como creía. Por cierto, mi versión es de 64 bits (son 4 GB de RAM); ¿el cambio en el código es «i686» por «x86_64»? Gracias de antemano por tu respuesta.
      P.D y OFFTOPIC: ¿Viste lo que paso con nuestros blogs en cubava?

      • Y que paso con sus blogs en Cubava? Y por cierto, mas que offtopics es algo que nada tiene que ver con GUTL, pero bueno, recuerden algo, Reflejos aclara bien que a los tres meses de usted tener su blog olvidado va a ser borrado, si usted no lee las leyes de Reflejos eso no lo exime de tener que acatarla. En fin, Reflejos y yo tenemos poco o nada que ver, pero tampoco es bueno que se hable mal hasta por gusto, si tu Blog fue borrado es porque llevabas mas de 90 dias sin usarlo. Por otro lado dices «nuestros Blogs», mmmm, consejo, habla por el tuyo, no por los blogs de otros, nada, es solo un consejo.
        Retornando a Manjaro, Repositorios y zona de descarga de Tino Red en la que estan alojados, que creo es de lo único de lo que debe hablarse en los comentarios de esta entrada, si, en tu caso deberias usar x86_64

          • Me imagine queras decir eso por eso te respondí lo que te respondí (y lo reafirmo), porque a SWL-X lo borre yo a conciencia, porque me dio la gana, nunca di motivos por inactividad a que se borrara ese Blog, en Reflejos blog inactivo es igual a Blog borrado y hasta yo apoyo eso, repito lo borre yo colega, y por fa, en GUTL hablemos de GUTL y temas afines.
            Sobre windows, ni idea, hace ya tiempo no lo uso, y es en serio, a no ser cuando tengo que ir a una sala Nauta a regalarle un poco de mi escaso dinero a… bueno a conectarme…

          • En el caso de 64 bits es muy posible pero sobre todo si vas a correr aplicaciones de 32 en 64. En ese caso, si solo bajas paquetes de 64, para que bajar el contenido de esa carpeta???? el contenido de multilib es para tener la opcion de multiarquitectura (paquetes de 32 en 64, nunca al contrario)…

          • Ok. Muchas gracias.
            Off-Topic: Y para terminar con el asunto, hacía menos de 2 semanas que había publicado un artículo, PLT no me lo borraron por inactividad. Pero, olvidemos eso.
            Voy a probar con las opciones que me diste y «haber que sale»…

        • Me pasa lo mismo, inclusive hasta para mandar a descargar paquetes de la carpeta no se me descargan, y dudo que en ese caso sea porque cargue lenta la pagina.

    • Socio disculpa que lo escriba aqui pero bueno hay manera de contactar, que posibilidades hay de que pueda subir fotos a mis post, si quires puedes preguntarle por mi a Ozkar, somos socios, depsues que lo leeas, borra el comentario, disculpa la molestia.
      Saludos Alejandro

      • Prueba a ver si ya puedes subir imagines.
        Trata que no sean gigantografías para que tus posts carguen rápido, pero tampoco muy enanas e ilegibles. En fin, avísame por acá mismo si ya puedes subir imágenes a tus posts.

  2. Troll: Humm! Me has fusilado a la cara! 😀
    Na, ahora en serio, yo también lo hago de esa forma. Con la excepción de que yo descargo directamente de las carpetas overlay y sync, así es como queda mi script:

    wget -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /home/ozkar/Public/manjaro/ http://download.jovenclub.cu/repos/manjaro/pool/overlay/ -A "*-x86_64.pkg.tar.xz"
    wget -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /home/ozkar/Public/manjaro/ http://download.jovenclub.cu/repos/manjaro/pool/sync/ -A "*-x86_64.pkg.tar.xz"
    wget -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /home/ozkar/Public/manjaro/ http://download.jovenclub.cu/repos/manjaro/pool/overlay/ -A "*-any.pkg.tar.xz"
    wget -m -N -r -nH -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --no-parent --reject "index.html*" -P /home/ozkar/Public/manjaro/ http://download.jovenclub.cu/repos/manjaro/pool/sync/ -A "*-any.pkg.tar.xz"

    Al descargar directo de esas carpetas, hay que especificar las arquitecturas(i686 o X86_64) y los paquetes que son comunes (any).

  3. Gracias por el porte pero no es necesario hacer estos «cry baby» post en la comunidad. Todos tenemos problemas con Internet en nuestra ermosa isla y el imperialismo nos bloquea y dificulta la expancion tecnologica.

    • Pues colega, nadie te obliga a leer lo que escribo, inicio mis post como estimo conveniente siempre y cuando se adapte a GUTL. Vivo en tu misma ermosa isla y sufro las mismas dificultades de expancion tecnológica que la mayoría, pero escribo como escribo sin tapujos y al que no le guste puede irse a leer otro post. Disculpa la sinceridad y gracias por comentar. Ahhh y por favor a ti y a los demás no hagamos de este comentario un interminable flameware.

  4. para usar el wget en windows (ya sabes que se promueve el swl haciendo uso y abuso del priv) es (sin las comillas): «set http_proxy=http://host:port». otro asunto es el uso de todo un arsenal de opciones, a mi me va bien (uso xubuntu, y descargo los programas que quiero haciendo magia con apt-offline y wget) con: «wget –proxy-user –proxy-password -x -np -nH -i FILE», por lo menos en tino no me hace falta mas nada. Para los usuarios de Manjaro quizas les interese «-nc», que es para no descargar un archivo si ya existe en la carpeta a descargar, y «-N», que es para lo mismo pero evalua el tamano de los archivos y el timestamp. En las man pages hay uno muy detallado de wget

  5. Y todo esto hay que hacerlo porque el protocolo rsync es «algo de internet» y no first class citizen como debería ser, tanto tráfico que nos ahorraríamos en la intranet .cu, pero bue… ¯\_(ツ)_/¯

  6. Saludos comunidad, pudiera alguien decirme el tamaño del repositorio de Manjaro, de ser posible especificar el tamaño para 32 bit.

    Saludos de antemano..

  7. Sorry, por el off-topic, pero necesito la forma de hacer esto mismo, pero en mi caso para Ubuntu, espero que puedan ayudarme.
    Gracias por adelantado y Happy New Years, Gutl

    • Usa debmirror o aptmirror, y si quieres complicarte menos usa rsync, aunque creo que desde la zona de descargas de JCCE solo se puede usar rsync estando desde su propia Red. En la Wiki y en el Foro de GUTL hay abundante info de aptmirror y debmirror

      • Gracias, pero ya estoy resolviendo, lo que se me olvido decir arriba es que lo quería hacer con el Wget desde Windows, pero modificando el Script que usas acá lo estoy logrando, solo que al paso que voy me tomaran años, debido al inmenso tamaño del repo.

  8. Hola yo hice un script con lftp para poder hacer lo mismo , es basado en la filosofía de archlinux.

  9. Tengo una duda hace varios días pude conseguir el Repo de Manjaro actualizado con toda su estructura es decir ( las carpetas de corre, extra, community, multilab) y comienza la duda, anteriormente lo había bajado como dice aquí a lo «la taíno» es decir todo los archivos en una misma carpeta y después crear la BD . pero ahora no se de que forma puedo configurar el Pacman.Conf para que me reconozca la nueva ruta del Repo local…. En fin, necesito ayuda.

    • Asi lo tengo yo (no uso multilib, porque solo ejecuto apps de 64 bits)


      [core]
      SigLevel = PackageRequired
      Server = http://descargas.jovenclub.cu/repos/manjaro/stable/core/x86_64/

      [extra]
      SigLevel = PackageRequired
      Server = http://descargas.jovenclub.cu/repos/manjaro/stable/extra/x86_64/

      [community]
      SigLevel = PackageRequired
      Server = http://descargas.jovenclub.cu/repos/manjaro/stable/community/x86_64/

      • A ver gracias por la prontitud, pero no tengo acceso en la PC a Intranet, la tengo en el HDD de casa, es decir ( /run/media/tr0j4n/Datos/Repofull/Manjaro/Stable/ y las carpetas dentro.

        [core]
        SigLevel = PackageRequired
        Server = http://descargas.jovenclub.cu/repos/manjaro/stable/core/x86_64/

        me va a dar problemas porque no encontrara la página, porque como es logico no tengo conexión.

        mi duda era de como hacer lo mismo, pero desde mi HDD, ahora voy a la casa a ver si puedo de alguna forma montar una Web en localhost a ver si puedo resolver con eso.

          • ok………. hoy mismo pruebo………….. y 2 millones de gracias Maikel, por toda la ayuda.

          • Es verdad, para eso esta el foro, pero mi usuario todavía esta en el Grupo de los usuarios que hay que Moderar los mensajes, y créeme todavía tengo algunos( no se si lo borraron ya) que están esperando aprobación, aunque ya esas dudas no creo que me hagan falta respuesta ya.

            y a cuanto el problema, no me pincho.

            Aquí lo que me dice la consola.

            error: el archivo de configuración file:///run/media/tr0j4n/Datos/Repofull/manjaro/stable/core/x86_64 no pudo ser leído: No existe el fichero o el directorio

          • OT: ya cree un hilo en el foro, favor de aprobarlo y seguimos por allá, y si no es molestia, ya que veo que ahora eres Admin, puedes quitarme del Grupo de Nuevos Usuarios Registrados, para así no depender de los Mod/Admin para que me aprueben los Mensajes.

          • Revisando el post, veo que yo mismo pongo mi ejemplo local, a ti te da error porque esa no es la ubicacion del repo

          • ya que veo que ahora eres Admin

            Ni yo mismo me habia dado cuenta, 🙁 ahora que pensaba jubilarme de GUTL

          • Tr0j4n, mira detalladamente la sintaxis que Maikel te dijo. Tu error consiste en que añadiste un / de mas.

            Saludos.

          • No Rafa, la sintaxis esta bien son tres / dos del protocolo y la primera de la ubicacion, recuerda que en Unix likes todo esta montado sobre la raiz / asi que seria siempre file:// + /… quedando file:///…
            Al colega le da error porque esa ubicacion esta mal

          • La sintaxis está bien, son tres (///) para el parámetro «file». Lo que podría intentar es forzar la actualización con pacman -Syy.

            Si el repo está bien configurado, es decir como base de datos, entonces no reconoce la ruta. Debería recorrer con el navegador de ficheros la ruta especificada para asegurarse de que existe.

            También debe indicar [custom] en la línea anterior.

            [custom]
            file:///

            Saludos.

          • Exacto, el parametro custom sirve como nombre de la rama del repo. Por ejemplo si son los oficiales es bueno encabezar cada rama con [core] [extra] y [community] (y [multilib] si necesita esa rama), como lo tengo puesto acá y que es válido tambien para repos locales

Los comentarios están cerrados.