Cómo listar/descargar las dependencias de construcción recursivas de un paquete debian?
Recientemente he aprendido que se puede usar apt
para descargar fuentes y editar, reconstruir e instalar fácilmente el paquete localmente desde Paso de volumen y teclas multimedia de Cinnamon.
# Descargar las fuentes
apt source cinnamon-settings-daemon
cd cinnamon-settings-daemon-4.4.0+tricia
# Luego instalar las dependencias de construcción
apt build-dep cinnamon-settings-daemon
# Luego construir desde las fuentes modificadas
apt build
# Instalar el archivo deb modificado (nota que la cadena de versión puede ser diferente para diferentes versiones de Cinnamon)
apt deb ~/cinnamon-settings-daemon_4.4.0+tricia_amd64.deb
También quiero poder simplemente descargar todos los paquetes necesarios para apt build-dep
, al igual que para la instalación de paquetes binarios. Sin embargo, cuando he intentado usar --download-only
y luego instalar los archivos deb, resultó que se necesitaban varios otros archivos:
Los siguientes paquetes adicionales serán instalados:
libarchive-cpio-perl libcupsfilters-dev libicu66:i386 libltdl-dev
libmail-sendmail-perl libpng-tools libpulse0:i386 libsys-hostname-long-perl
Incluso apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances cinnamon-settings-daemon | grep "^\w" | sort -u
no lista, por ejemplo, libarchive-cpio-perl
y también --download-only
cuando intenté sustituir un archivo de estado dmkg vacío ($(apt-config shell STATUS Dir::State::status)
) y descargué ~500 archivos en lugar de ~100, ese(s) archivo(s) “adicional(es)” todavía falta(n).
Añadido 1:
Agregué --no-install-recommends
a apt install debs
y ahora solo quedaron dos i386
en adicional sin descargar:
Los siguientes paquetes adicionales serán instalados:
libicu66:i386 libpulse0:i386
¿Alguna idea de qué es tan especial sobre ellos? Estos son los únicos i386
mencionados, el primero está en la lista apt cache
de arriba. El segundo no se encuentra en la lista, por lo que combinar ambos conjuntos de deb no es una forma de resolverlo.
davy.ai
Solución para descargar todos los paquetes necesarios para
apt build-dep
Para descargar todos los paquetes necesarios para
apt build-dep
, puedes usar el siguiente comando:Esto descargará todos los paquetes necesarios para construir el paquete especificado, pero no los instalará.
Instalación de los paquetes descargados
Para instalar los paquetes descargados, puedes usar el siguiente comando:
El uso de
--no-install-recommends
garantizará que solo se instalen los paquetes necesarios y no se instalen paquetes recomendados.Los paquetes faltantes,
libicu66:i386
ylibpulse0:i386
, pueden ser necesarios para construir el paquete en un sistema de 32 bits. Si estás construyendo el paquete en un sistema de 64 bits, es posible que no necesites estos paquetes.