ver todas por paquetes paquete las kali instalar desde dependencias consola dependencies package debian

dependencies - todas - ¿Cómo listar/descargar las dependencias recursivas de un paquete debian?



instalar.deb debian 9 (4)

Como midihenry señaló midihenry , instale el paquete apt-rdepends y luego ejecute este

$ apt-rdepends gcc | awk ''$1 ~ /^Depends:/{print $2}'' | xargs apt-get download

esta línea obtendrá todas las dependencias de forma recursiva y, mirando la segunda tubería, descargará todos los paquetes por nombre desde el stdio, que es lo que la línea -

awk $1 ~ /^Depends:/{print $2} hace. imprime los nombres de los paquetes. Si ejecuta estos comandos de forma aditiva, verá lo que quiero decir.

Necesito listar / descargar todas las dependencias recursivas de un paquete debian.

Supongamos que necesito instalar el paquete a.deb y depende del paquete b.deb y nuevamente el paquete b.deb depende del paquete c.deb.

Necesito descargar todos los paquetes dependientes recursivos para que puedan instalarse en otra máquina sin acceso a Internet.

Gracias.


Puede usar apt-rdepends para obtener todas las dependencias para un paquete de forma recursiva. Y al canalizar el resultado a grep, solo puede tener los nombres de los paquetes y omitir la información innecesaria.

Ejemplo :

$ apt-rdepends cowsay | grep -E ''^[a-zA-Z0-9]''

Salida :

cowsay perl libbz2-1.0 libc6 libgcc1 gcc-4.9-base multiarch-support libdb5.3 libgdbm3 dpkg liblzma5 libselinux1 libpcre3 tar libacl1 libattr1 zlib1g install-info perl-base perl-modules

Luego puede descargar esos paquetes utilizando apt-get download $package e instalarlos sin conexión en su máquina.


Si solo desea descargar un paquete Debian, entonces:

apt-get -d package

o

apt-get download package

De lo contrario, si solo desea una lista de las dependencias de un paquete:

apt-cache depends package

Obviamente, reemplace el package con el nombre del paquete que desea consultar.


Por alguna razón, apt-rdepends no me funcionó (al buscar el paquete ''docker-engine'', se perdió la dependencia de libltdl7 que se introdujo con docker-engine 1.11.1-0 ).

Así que se me ocurrió la siguiente suite de comandos.

Listar recursivamente las dependencias

$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends <your-package-here> | grep "^/w" | sort -u

(obviamente tiene que cambiar <your-package-here> al final de la línea con el paquete que desea analizar)

La clave aquí es la opción --recurse . Lamentablemente, no puede especificar el contenido que desea (o no encontré el camino), por lo que debe desactivar todas las dependencias no deseadas para mantener solo las "dependencias". ¡Es un poco detallado y difícil de recordar!

Desde la página man de apt-cache:

Por defecto, las dependencias y rdepends imprimen todas las dependencias

Descarga esas dependencias

Entonces, para descargar esas dependencias, ejecute el siguiente comando que las descargará en el directorio de trabajo actual:

$ apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends <your-package-here> | grep "^/w" | sort -u)

Opcionalmente, para instalar esas dependencias.

Esto extiende ligeramente la pregunta planteada, pero parece coincidir con la intención de la pregunta.

Necesitas construir el índice de los paquetes recién descargados. Esto se hace desde la misma carpeta donde se descargaron todos los .deb:

$ dpkg-scanpackages . | gzip -9c > Packages.gz

Luego simplemente copie esa carpeta (todo .deb + el archivo Packages.gz) al sistema de destino que no tiene acceso a Internet y agregue la carpeta a la lista de fuentes de APT.

$ echo "deb file:<your folder here> ./" | sudo tee -a /etc/apt/sources.list $ sudo apt-get update

Et voilà

En un sistema sin acceso a Internet, puedo instalar un paquete (Docker en mi ejemplo) y sus dependencias:

$ sudo apt-get install docker-engine