He leído y seguido¿Es posible actualizar, actualizar e instalar software antes de mostrar una imagen?. Logré montar la imagen oficial de Arch, sincronizar la base de datos y actualizar los paquetes preinstalados. Desafortunadamente, fue bastante lento. Creo que fue lento porque pacman
estaba siendo emulado, lo cual me parece un poco excesivo.
Investigué un poco y man pacman
enumero la siguiente opción.
-r, --root
Especifica una raíz de instalación alternativa (el valor predeterminado es /). Esto no debe usarse como una forma de instalar software en /usr/local en lugar de /usr. Esta opción se utiliza si desea instalar un paquete en una partición montada temporalmente que es "propiedad" de otro sistema.
NOTA: si la ruta de la base de datos o el archivo de registro no se especifican ni en la línea de comando ni enpacman.conf(5), su ubicación predeterminada estará dentro de esta ruta raíz.
¿Podemos aprovechar esta opción para instalar paquetes en una imagen montada?
Respuesta1
Sí
No es demasiado difícil. Asegúrese de haber seguido las instrucciones en¿Es posible actualizar, actualizar e instalar software antes de mostrar una imagen?cuidadosamente y que lo haya qemu-user-static
instalado correctamente en el sistema montado.
pacman.conf
El /etc/pacman.conf
archivo controla pacman
y, normalmente, no necesitaríamos editarlo. Sin embargo, existe un problema con lo suministrado pacman.conf
cuando se utiliza de esta manera. Incluye la directiva
Include = /etc/pacman.d/mirrorlist
Desafortunadamente, esto recoge la lista de réplicas de su sistema host, que probablemente no reflejará los paquetes ARM. Copie /etc/pacman.conf
desde su montaje a un directorio apropiado y reemplace esa línea con
Server = http://mirror.archlinuxarm.org/arm/$repo
Puedes encontrar mi adaptado pacman.conf
engithub.
Correrpacman
Ahora puedes correr pacman
. Suponiendo que su archivo de configuración esté en su archivo pwd
, ejecute
sudo pacman -r <mount-point> --config pacman.conf -Syu
Referencias
- proyecto github, que está bifurcado de @Jivingsproyecto github.