es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for 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:

    apt-get build-dep --download-only <nombre-del-paquete>
    

    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:

    sudo apt-get install --no-install-recommends <ruta-a-los-paquetes-descargados>
    

    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 y libpulse0: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.

Comments are closed.