¿Para qué sirve dpkg?

21

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

rɑːdʒɑ
fuente
Esto se ha editado al menos dos veces para mejorar la claridad; tal como está, puede valer la pena mantenerlo abierto (siempre que no sea un duplicado) porque ha generado al menos una buena respuesta.
belacqua
1
debes visitar primero: en.wikipedia.org/wiki/Dpkg
Pandya

Respuestas:

17

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

Sin embargo, lo que no se ha explicado es la anatomía de una actualización con dpkgy apt-get. Si, por ejemplo, llamamos apt-geta la instalación cheese, se analiza el árbol de dependencias y se obtienen los archivos necesarios apt-get, que luego los pasa dpkga extraer, analizar e instalar en las ubicaciones correctas y configurarlos de acuerdo con los scripts dentro de ellos.

Las secuencias de comandos que se leen dpkgdentro de cada archivo .deb son importantes, ya que proporcionan información al programa sobre la instalación, eliminación y configuración de los paquetes. Por lo tanto, cuando observa, /var/log/dpkg.loghay muchos detalles detallados sobre 'desencadenantes' y paquetes que pasan por diferentes etapas de desempaquetado y configuración. En su blog, Raphael Hertzog (que es un desarrollador y mantenedor clave del dpkgpaquete Debian) explica más sobre los activadores dpkg y la forma en que dpkginspecciona y configura los paquetes.

Ahora estamos llegando al corazón de lo que dpkghace; maneja de manera experta los paquetes de 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-debpara más información.

El estado de cada paquete aparece en la lista /var/lib/dpkg/status, que se puede usar greppara verificar un paquete en particular. DpkgTambién se puede llamar para reconfigurar paquetes particulares que se han configurado (ver man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

O para configurar todos los paquetes no configurados 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 un gran tutorial que se centra en dpkgy apt-get, vea los capítulos 5 y 6 del Manual de Debian , que es la mejor discusión disponible. Ingrese man dpkgen su terminal o vea las páginas de manual de Ubuntu en línea para ver todas las opciones disponibles, como usar dpkg -lpara enumerar los paquetes instalados actualmente.


fuente
4

dpkg es una forma de línea de comando para instalar desde un .deb o eliminar paquetes ya instalados. Por ejemplo, si tenía un archivo .deb en su directorio de inicio, la ejecución dpkg -i yourpackage.debinstalará ese paquete por usted. Al menos me parece útil porque, a veces, al hacer clic en un archivo .deb, carga el Centro de software de Ubuntu, pero en realidad nunca lo instala o tiene problemas.

desconocido
fuente
4

Como siempre, el mancomando es un excelente lugar para comenzar.
man dpkgpuede darle todas las opciones, sin embargo:

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

Básicamente, es apt-get sin resolución de dependencias, y se usa para instalar archivos .deb.

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

Por ejemplo, utilizando dpkg -r zippuede eliminar el paquete zip, pero los paquetes que dependen de él todavía se instalarán y es posible que ya no funcionen correctamente.

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

LnxSlck
fuente