Estoy tratando de configurar un entorno provisional en una máquina virtual, para probar las actualizaciones antes de aplicarlas a mi sistema principal.
Para hacerlo, hice una instalación básica de Debian Wheezy (igual que en el sistema principal) en la VM, luego ejecuté como root desde dentro de la VM:
# dpkg --clear-selections
# dpkg --add-architecture i386
# apt-get update
# ssh me@main-system 'dpkg --get-selections | grep -v deinstall' | \
dpkg --set-selections
Desafortunadamente, la arquitectura i386 es necesaria en mi caso; El sistema es amd64 nativo.
El problema es con dpkg --set-selections
ejecutar en la VM. Tengo algunos paquetes que requieren un manejo especial (en realidad, esa es la razón principal por la que quiero un entorno de preparación en primer lugar), pero cuando ejecuto el último comando anterior, obtengo un billón de líneas de salida como:
dpkg: warning: package not in database at line NNN: package-name
para paquetes que realmente deberían estar disponibles en el sistema base. Los ejemplos incluyen xterm
, yelp
y zip
.
Ahora para mi pregunta:
¿Cuál es el proceso específico para transferir la lista de selección de paquetes de un sistema Debian a otro (asumiendo el mismo nivel de lanzamiento de Debian, en Wheezy) y luego aplicar esos cambios? El objetivo es que ambos tengan la misma lista de paquetes instalados, idealmente de tal manera que al hacer una diff
entre las salidas de dpkg --get-selections
o dpkg --list
en los dos regrese sin mostrar diferencias.
La grep -v deinstall
parte está prestada de Evitar que los paquetes se eliminen después de volverdpkg --set-selections
a hacerlo en Ask Ubuntu.
He cambiado la fuente en la VM para que sea la misma que en el sistema principal, también instalando apt-transport-https
:
deb https://ftp-stud.hs-esslingen.de/debian/ wheezy main non-free
deb-src https://ftp-stud.hs-esslingen.de/debian/ wheezy main non-free
deb https://ftp-stud.hs-esslingen.de/debian/ wheezy-updates main non-free
deb-src https://ftp-stud.hs-esslingen.de/debian/ wheezy-updates main non-free
deb [arch=amd64] http://archive.zfsonlinux.org/debian wheezy main
Mirando la salida --set-selections, veo:
dpkg: warning: package not in database at line 1: a2ps
dpkg: warning: package not in database at line 1: abiword
dpkg: warning: package not in database at line 1: abiword-common
dpkg: warning: package not in database at line 1: abiword-plugin-grammar
dpkg: warning: package not in database at line 1: abiword-plugin-mathview
dpkg: warning: package not in database at line 1: accountsservice
dpkg: warning: package not in database at line 1: acl
dpkg: warning: package not in database at line 4: aglfn
dpkg: warning: package not in database at line 4: aisleriot
dpkg: warning: package not in database at line 4: alacarte
dpkg: warning: package not in database at line 4: alien
...
Los números de línea parecían impares, y la porción correspondiente de la salida de --get-selections es:
a2ps install
abiword install
abiword-common install
abiword-plugin-grammar install
abiword-plugin-mathview install
accountsservice install
acl install
acpi-support-base install
acpid install
adduser install
aglfn install
aisleriot install
alacarte install
alien install
Observe que entre acl
y aglfn
are acpi-support-base
, acpid
y adduser
para los cuales no se informan errores . Parece que los paquetes para los que se informan los errores están de un
acuerdo dpkg -l
o dpkg -l
no tienen ninguna idea sobre ellos ( dpkg-query: no packages found matching ...
). Sé que hay algunos paquetes instalados localmente, pero no muchos. i386
no figura hasta gcc-4.7-base:i386 install
mucho más abajo en la lista (línea 342 en la salida --get-selections).
dpkg --get-selections
(y supongo que te referías a la dpkg --set-selections
transcripción?)? Incluso el primero tiene más de 3.600 líneas y alrededor de 100 KB.
/var/lib/dpkg/Packages
(que es aún más larga) también podría ser útil, esto podría ser un síntoma de un archivo de paquetes roto.
dpkg --get-selections … | … dpkg --set-selections
es la forma de replicar las selecciones de paquetes. Si le está fallando, necesitará proporcionar más información sobre por qué. Publique su conjunto completo de fuentes en ambos sistemas, la salida dedpkg --get-selections
y la transcripción completa dedpkg --get-selections
(tal vez podamos discernir un patrón al ver qué funciona y qué no). Si el sistema principal amd64 o i386? ¿Funciona si no agrega la arquitectura i386?