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:
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:
La 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.
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):
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:
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
Reblogueó esto en UbuMint.
Me gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Bueno, si ya se arregló entonces está todo bien. Mucha suerte.
Me gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Ya revice, la versión de notifyd es la misma pero la carpeta está vacía.
Me gustaMe gusta
No debería. Mira esto: http://i.xomf.com/rfklz.png
Me gustaMe gusta
Reinstala el paquete xfce4-notifyd. Está en los repos. Podés hacerlo con Pamac si te resulta más fácil que la consola. Desinstala y vuelve a instalar. Luego revisa esa carpeta nuevamente. Este es el paquete: http://i.xomf.com/hkvcr.png
Me gustaMe gusta
Perfecto, gracias.
Me gustaMe gusta
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 gustaMe gusta
Y otra duda que tengo es, el repo que creamos se debe eliminar de pacman.conf o puede dejarse sin problema?
Me gustaMe gusta
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 gustaMe gusta
-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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Eso sí que es muy extraño. ¿Qué comando usaste para actualizar los mirrors?
Me gustaMe gusta
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 gustaMe gusta
Me alegro que lo pudieras hacer funcionar. Mucha suerte. 😀
Me gustaMe gusta
Buena tarde, este tutorial es útil solo en las derivadas de arch, o se puede realizar en otras distribuciones?.
Me gustaMe gusta
En las derivadas de Arch. Saludos
Me gustaMe gusta