Mantenimiento. Reinstala tu sistema y recupera todo tu software con una repo offline.

Saludos manjaristas.

Les dejo una breve guía ilustrada y paso a paso para que consigan reinstalar su sistema, o cambiarlo por otro, y recuperar todo el software que ya tenían en pocos minutos.

1). En primer lugar, antes de iniciar la reinstalación del sistema, procedemos a limpiar la cache de Pacman(la colección de paquetes de Pacman) . Con esto conseguimos eliminar las distintas versiones de un mismo paquete, dejándonos únicamente la más reciente. Así tendremos una cache más pequeña en tamaño y con menos elementos (se copia más rápido y la creación de la base de datos también es más rápida). Para ello, usaremos el comando: «paccache -r -k 1″ (sin comillas).

El comando «pacman -Sc» cumple una función similar, aunque nada más deja aquellos paquetes que están instalados en el sistema, por lo que si tienen un paquete que han desinstalado pero quieren conservar, usen paccache.

Ahora ya podemos copiar el contenido de /var/cache/pacman/pkg a un directorio diferente donde esté a salvo del formateo. Si usas una partición diferente para /home, entonces un lugar seguro sería /home/user/pkg. Para la copia será necesario usar el explorador de archivos con permisos de root.

2). Ahora puedes reinstalar Manjaro y formatear el punto de montaje  raíz.

3). Ya en el sistema nuevo, con el /home viejo montado, procedemos a crear la base de datos de nuestra repo offline:

Nos situamos dentro de nuestra repo clonada, y abrimos un terminal:

fflrl

Una vez abierta la consola, usamos el comando repo-add, que nos creará la base de datos. Este comando toma dos argumentos, el primero es el nombre del archivo a crear y el segundo es el nombre de los archivos que se utilizarán para ello.

El nombre de la repo depende de la preferencia de cada uno. Yo usaré «offlinerepo» de nombre porque es más intuitivo, pero puede ser el nombre que más les guste.

Como el repositorio tendría más de mil paquetes, sería insalubre escribirlos todos para alimentar el comando, así que en vez de sus nombres usaremos el comodín «*» para que nos tome a todos.

El comando por tanto, sería así: repo-add offlinerepo.db.tar.gz *.pkg.tar.xz

Cada archivo del tipo .pkg.tar.xz se incluirá en la base de datos, que es justo lo que queremos:

lwfymLa construcción de la base de datos puede llevar entre 5 y 15 minutos, dependiendo de la capacidad del PC y la cantidad de paquetes que hayan.

4). El paso más importante: Informarle a Pacman que hay otra repo a considerar.

Para esto, y con privilegios de root, abrimos el archivo pacman.conf, que se encuentra en /etc. Lo más sencillo sería usar un editor avanzado como Mousepad, pero si prefieren la línea de comandos pueden usar sudo nano /etc/pacman.conf.

bndjr

Este es el archivo de configuración del gestor de paquetes. Es aquí donde añadimos la información de nuestro repositorio local.

La última parte del documento contiene la lista de repositorios habilitados. Ahí colamos el nuestro respetando la sintaxis que requiere Pacman (1). Al final se encuentra un ejemplo de cómo agregar repos a la lista, lo ideal sería copiar y pegar esas líneas para modificarlas (2):

jhshm

En la cabecera de la entrada de repositorio, colocamos el nombre. Este nombre debe coincidir exactamente con el nombre que usamos al crear la base de datos en el paso 1. Para este caso es: [offlinerepo]

SigLevel hace referencia al tipo de autenticación de claves que hace Pacman en los paquetes. Como nuestro repo local no tiene ningún tipo de firma digital ni nada, lo podemos poner en «none», o como indica el ejemplo «Optional TrustAll».

Finalmente, en server le pasamos la ruta del repositorio al gestor. file:///home/user/pkg

Es importante ubicar nuestro repositorio antes que los demás, así el gestor de paquetes le da preferencia:

gbszb

Con esto conseguimos que Pacman utilice los paquetes de nuestro repositorio aún si en los demás existen versiones más nuevas que las que tenemos.

La guía es larga, pero el proceso es súper fácil. Prueben en su próxima instalación y vean como LibreOffice se instala en 45 segundos. 😀

Saludos cordiales.

 

Fuentes:

wiki.archlinux.org

Esta entrada fue publicada en Manjaro, Tutoriales y etiquetada , , , . Guarda el enlace permanente.

26 respuestas a Mantenimiento. Reinstala tu sistema y recupera todo tu software con una repo offline.

  1. Rene dijo:

    Reblogueó esto en UbuMint.

    Me gusta

  2. Sukoi dijo:

    Saludos Rolando, ayudame con un problema que tuve con este proceso y es que al introducir el comando »repo-add offlinerepo.db.tar.gz *.pkg.tar.xz» , despues al tratar de actualizar con la terminal me sale un error »no se pudo obtener el archivo offlinerepo desde disco» Couldn ‘ t open file. (Yo tambien utilice el nombre offlinerepo, me parecio adecuado).

    Me gusta

    • transistorleak dijo:

      Eso no debería suceder. Suponiendo que todo el procedimiento haya sido correcto, lo único que se me ocurre que lo puede estar provocando es una ruta mal escrita en pacman.conf.

      Si tu repo está en otra partición y tiene un formato inusual para Linux, como NTFS, también eso podría ser un problema, especialmente en la ruta hacia el archivo. No se admiten espacios en blanco en la ruta, caracteres especiales y espacios se escapan con el símbolo «\».

      También podría deberse a un error de tipeo en algún lado, hay que tener cuidado con el uso de mayúsculas y minúsculas. El nombre de la base de datos y la entrada deben ser exactamente iguales.

      Después de la revisión, si todo parece estar bien, puedes borrar el archivo de base de datos y utilizar nuevamente Pacman para hacer uno nuevo. En el tutorial no expliqué que se podía hacer en una instalación fresca, pero por supuesto se puede. Recrea la base de datos y vuelve a configurar pacman.conf con la nueva información.

      Revisa que no haya ese tipo de errores. Si usas Telegram, mi nick es @RREDesigns, me puedes escribir ahí para soporte en directo y con capturas.

      Suerte.

      Me gusta

  3. sukoi dijo:

    Pues hoy temprano me puse a revisar todo lo que dices y no encuentro el problema, el nombre del repo y la ruta estan bien , el repo lo tengo en la particion home con el formato ext4.
    Además me salió otro problema, ya no podía actualizar o instalar nada, pero bueno eso lo solucione eliminando la ruta de pacman.conf.
    En fin, no le hayo, creo que la novatez me gana, saludos.

    Me gusta

    • transistorleak dijo:

      Ese problema tampoco debería ocurrir. Yo lo hice varias veces y jamás tuve un fallo como ese. Muéstrame las entradas de tu archivo pacman.conf. Me juego a que algo está mal escrito.

      Me gusta

      • sukoi dijo:

        Aquí estan:
        [offlinerepo]
        SigLevel = Optional TrustAll
        Server = file:///home/ambr/pkg

        [core]
        SigLevel = PackageRequired
        Include = /etc/pacman.d/mirrorlist

        [extra]
        SigLevel = PackageRequired
        Include = /etc/pacman.d/mirrorlist

        [community]
        SigLevel = PackageRequired
        Include = /etc/pacman.d/mirrorlist

        # If you want to run 32 bit applications on your x86_64 system,
        # enable the multilib repositories as required here.

        [multilib]
        SigLevel = PackageRequired
        Include = /etc/pacman.d/mirrorlist

        Me gusta

    • transistorleak dijo:

      Pues parece que la sintaxis está bien. Suponiendo que tu carpeta de home se llame «ambr», todo en minúsculas y que el archivo de base de datos exista no debería haber problema.

      ¿Podés fijarte si offlinerepo.db.tar.gz de hecho existe y si tiene un tamaño coherente (unos 200kb más o menos), y si el nombre del archivo no tiene un error de tipeo?

      Me gusta

  4. sukoi dijo:

    Parece que ya lo resolví, el asunto es no moví el archivo offlinerepo.db.tar.gz de la copia que hice de pkg, yo asumi que esa carpeta es la que se usaria para el repo.
    En fin de cualquier forma te doy las gracias por la ayuda. 😀

    Me gusta

    • transistorleak dijo:

      Bueno, si ya se arregló entonces está todo bien. Mucha suerte.

      Me gusta

    • sukoi dijo:

      Me olvidaba de otro asuntito, despues de actualizar me apareció un error: no se pudo abrir el archivo /var/lib/pacman/local/xfce4-notifyd-0.3.3-1/desc: No existe el fichero o el directorio. Y ahora las notificaciones del escritorio y el icono para configurarlas desaparecieron, todo lo demas está bien, ¿a qué se deberá esto?.

      Me gusta

      • transistorleak dijo:

        Seguramente se debe a un update incompleto. Yo actualicé hoy y no he notado fallos todavía.

        ¿Podrías fijarte qué versión de notifyd está en ese path? A veces cuando una parte se actualiza y su dependencia no lo hace ocurren estas cosas.

        Me gusta

  5. sukoi dijo:

    Ya revice, la versión de notifyd es la misma pero la carpeta está vacía.

    Me gusta

  6. sukoi dijo:

    Perfecto, gracias.

    Me gusta

  7. cesar dijo:

    transistorleak, amigo ya realice todo el procedimiento, las actualizaciones se instalaron sin problema pero las aplicaciones como clementine, bleachbit, etc las tengo que instalar una por una, mi pregunta es, existe algun comando para instalarlas todas de una vez.

    Me gusta

    • cesar dijo:

      Y otra duda que tengo es, el repo que creamos se debe eliminar de pacman.conf o puede dejarse sin problema?

      Me gusta

      • transistorleak dijo:

        Buenos días.

        En cuanto a tus dudas:
        1. Sí, tendrás que instalarlas todas otra vez, pero no necesariamente por separado. Usa en Pacman el comando en esta forma: «sudo pacman -S gimp blender clementine openshot libreoffice-fresh simplescreenrecorder udacity inkscape etc» Podés usar un sólo comando para instalar cuantas aplicaciones quieras. Si usas un set de herramientas que nunca faltan en tu trabajo, te sugiero ya poner ese comando en un archivo de shell que puedas ejecutar y no escribirlo todo de nuevo, o al menos copiar y pegar en la consola.

        2. Se puede eliminar. Pacman trata al repo como cualquier otro, y copia los paquetes de vuelta a la cache. Si ya están todos los paquetes instalados podrías o bien eliminarlo, comentarlo, o simplemente ponerlo en último lugar, después de los oficiales. Yo uso la última opción pues así Pacman me permite actualizar las aplicaciones y me avisa cuando hay instaladas versiones más recientes de los paquetes de la repo offline.

        En unos días haré una continuación de este tutorial para mostrar algunas cosas más respecto al mantenimiento del repo mismo.

        Espero que te sirva la respuesta. Saludos.

        Me gusta

  8. cesar dijo:

    -Saludos, pude instalar todos los paquetes excepto clipgrab

    $ sudo pacman -S clipgrab
    resolviendo dependencias…
    advertencia: no se pudo resolver «qtwebkit», una dependencia de «clipgrab»
    :: El siguiente paquete no se puede actualizar debido a dependencias que no se pudieron resolver:
    clipgrab
    :: ¿Quiere omitir el siguiente paquete para esta actualización? [s/N]
    error: no se pudo preparar la operación (no se pudieron satisfacer las dependencias)
    :: clipgrab: necesita qtwebkit

    -Traté de instalar qtwepkit pero me sale esto
    $ sudo pacman -S qtwebkit
    [sudo] password for cinico:
    error: destino no encontrado: qtwebkit

    -Además algunos otros paquetes tampoco se encuentran y es raro porque antes los instalé sin problema

    $ sudo pacman -S celestia
    [sudo] password for cinico:
    error: destino no encontrado: celestia

    $ sudo pacman -S stellarium
    error: destino no encontrado: stellarium

    Me gusta

    • transistorleak dijo:

      Es muy raro en verdad. Si no están en tu repo offline Pacman debería buscar en los demás. Sé que qtwebkit está en el repositorio extra, lo acabo de buscar.

      Ya actualizaste los mirrors y las bases de datos de Pacman?

      Me gusta

  9. cesar dijo:

    Ya lo hice y sigue sin funcionar.
    ¡Revisé el repositorio extra con pamac y está vació!
    No entiendo, los otros repos parece que están bien.

    Me gusta

  10. cesar dijo:

    Primero sudo: pacman-mirrors -g
    Y después: sudo pacman -Syy
    Hasta ahí el repo seguía sin funcionar, después me fui a buscar en la wiki de arch y encontre un comando: sudo pacman-optimize && sync, y nuevamaente sudo pacman -Syy, ahora todo funciona bien otra vez.

    Me gusta

  11. Darío dijo:

    Buena tarde, este tutorial es útil solo en las derivadas de arch, o se puede realizar en otras distribuciones?.

    Me gusta

Deja un comentario