¿Para qué es dpkg?

19

Mi pregunta es simple: quiero saber más sobre dpkg, ¿qué hace?

    
pregunta Ten-Coin 08.08.2012 - 15:31

3 respuestas

15

Como se ha dicho, dpkg es una herramienta de sistema de bajo nivel para extraer, analizar, descomprimir e instalar o eliminar archivos .deb. Sin embargo, es mejor usar Software Centre o Gdebi para instalar o eliminar archivos .deb que se hayan obtenido de otras fuentes porque estos dos programas tienen resolución de dependencia.

Sin embargo, lo que no se ha explicado es la anatomía de una actualización que usa dpkg y apt-get . Si, por ejemplo, llamamos a apt-get para instalar cheese , se analiza el árbol de dependencias y los archivos necesarios se obtienen por apt-get , que luego los pasa a dpkg para extraer, analizar e instalar en las ubicaciones correctas y configúrelos según las secuencias de comandos dentro de ellos.

Los scripts leídos por dpkg dentro de cada archivo .deb son importantes ya que dan información al programa con respecto a la instalación, eliminación y configuración de los paquetes. Por lo tanto, cuando mira en /var/log/dpkg.log , hay muchos detalles detallados sobre "desencadenantes" y paquetes que pasan por diferentes etapas de desempaquetado y configuración. En su blog, Raphael Hertzog (desarrollador clave de Debian del paquete dpkg ) explica más sobre los activadores de dpkg y la forma en que dpkg inspecciona y configura los paquetes.

Ahora estamos llegando al corazón de lo que dpkg hace; maneja expertamente paquetes Debian, en lugar de sus dependencias. Con dpkg-deb , por ejemplo, puede realizar varias acciones al analizar y extraer manualmente archivos de los archivos .deb; ver man dpkg-deb para más información.

El estado de cada paquete se enumera en /var/lib/dpkg/status , que se puede usar con grep para verificar un paquete en particular. Dpkg también se puede llamar para reconfigurar paquetes particulares que se han configurado (ver man dpkg-reconfigure ):

sudo dpkg-reconfigure <package>

O para hacer una configuración de todos los paquetes desconfigurados si ha habido un problema con una actualización y la configuración de algunos paquetes aún está pendiente:

sudo dpkg --configure -a

Para obtener un excelente tutorial que se centra en dpkg y apt-get , consulte los capítulos 5 y 6 de Debian Handbook , que es la mejor discusión disponible. Ingrese man dpkg en su terminal o vea las páginas de manual de Ubuntu en línea para ver todos los opciones disponibles, como usar dpkg -l para listar paquetes actualmente instalados.

    
respondido por el user76204 19.08.2012 - 00:09
4

dpkg es una forma de línea de comandos para instalar desde .deb o eliminar paquetes ya instalados. Por ejemplo, si tiene un archivo .deb en su directorio de inicio, ejecutar dpkg -i yourpackage.deb instalará ese paquete por usted. Encuentro esto útil al menos para mí porque a veces, al hacer clic en un archivo .deb, carga el Centro de Software de Ubuntu pero nunca realmente lo instala o tiene problemas.

    
respondido por el unknownone 09.08.2012 - 18:49
4

Como siempre, el comando man es un excelente lugar para comenzar.
man dpkg puede darle todas las opciones, sin embargo:

dpkg es un gestor de paquetes para sistemas basados ​​en Debian. Puede instalar, eliminar y compilar paquetes, pero a diferencia de otros sistemas de administración de paquetes, no puede descargar e instalar automáticamente los paquetes y sus dependencias.

Así que básicamente es apt-get sin resolución de dependencia, y se usa para instalar archivos .deb.

Sin embargo, te lo advierto: NO se recomienda desinstalar paquetes usando dpkg, en la mayoría de los casos. Es mejor usar un administrador de paquetes que maneje dependencias, para asegurar que el sistema esté en un estado consistente.

Por ejemplo, con dpkg -r zip puede eliminar el paquete zip, pero los paquetes que dependen de él seguirán instalados y es posible que ya no funcionen correctamente.

Puede leer más sobre esto en la guía del servidor y en otro lugar .

    
respondido por el LnxSlck 08.08.2012 - 15:54

Lea otras preguntas en las etiquetas