¿Cuál es la diferencia entre dpkg y aptitude / apt-get?

Al instalar un software a través de dpkg -i packageA.deb , ¿se descargarán e instalarán automáticamente las dependencias requeridas por packageA ? ¿En qué se diferencia esto de usar apt-get o aptitude ?

No, dpkg solo instala un paquete, por lo que hacer dpkg -i packageName.deb solo instalará este paquete Deb y le notificará cualquier dependencia que deba instalarse, pero no los instalará, y no configurará el packageName.deb porque bueno … las dependencias no están ahí.

apt-get es un sistema de gestión de paquetes que maneja la instalación de paquetes Deb en distribuciones Linux basadas en Debian . Un Sistema de gestión de paquetes es un conjunto de herramientas que lo ayudarán a instalar, eliminar y cambiar paquetes fácilmente. Así que apt-get es como un dpkg inteligente.

Me gusta pensar en la línea de tiempo de esta manera (lo siguiente es solo yo hablando por experiencia. Está destinado a darte una idea de todo esto):

  • Se les ocurrió una manera de “almacenar” los archivos de una aplicación en un “paquete” para que se pueda instalar fácilmente. Así nació el paquete Deb ( archivo de extensión .deb ).

    Un archivo .deb contiene los archivos que necesita una aplicación para ejecutarse, así como (me gusta llamarlo) “metadatos” que contienen otra información, como los nombres de las dependencias que necesita la aplicación. Si desea ver el contenido de un archivo .deb , puede usar el comando dpkg -c packageName.deb , y si desea ver esta información de “metadatos”, use el comando dpkg -I pacakgeName.deb (y si solo desea ver las dependencias, haga dpkg -I packageName.deb | grep Depends ).

  • Necesitaban una herramienta para instalar estos archivos .deb , así que crearon la herramienta dpkg . Sin embargo, esta herramienta solo instalará el archivo .deb , pero no instalará sus dependencias porque no tiene esos archivos y no tiene acceso a los “repositorys” para extraer las dependencias.

  • Luego, crearon apt-get , que automatiza los problemas en el punto anterior. Debajo del capó, apt-get es básicamente dpkg (me gusta pensar que es apt-get ser un front-end para dpkg ), pero inteligente que buscará las dependencias y las instalará. Incluso examina las dependencias instaladas actualmente y determina las que no están siendo utilizadas por ningún otro paquete, y le informará que puede eliminarlas.

Entonces vino la aptitude . Utiliza las bibliotecas apt-get usa apt-get y en realidad tiene una IU interactiva (interfaz de usuario). Si desea ver esta IU, simplemente escriba aptitude en el terminal. Eso es aptitude . Aprovecha las bibliotecas para proporcionar más opciones y ventajas que apt-get . Por ejemplo, aptitude eliminará automáticamente los paquetes elegibles, mientras que apt-get necesita un comando separado para hacerlo. Pero, al final, hacer sudo aptitude install packageName.deb debería ser al menos lo mismo que sudo apt-get install packageName.deb . Puede haber diferencias sutiles aquí y allá que no conozco, pero ambas buscarán las dependencias y harán todo eso. Puede leer la respuesta aquí para obtener más información sobre las diferencias entre aptitude y apt-get .

Además, aptitude no tiene Super Cow Powers.

EDITAR: Al parecer, lo hace. aptitude -v[v[v[v[v]]]] moo .

aptitude podría no estar instalado por defecto. Para instalarlo, haga sudo apt-get install aptitude o haga clic en este: aptitude Instalar aptitude .


Extra

La siguiente información no responde directamente ” ¿Cuál es la diferencia entre dpkg y aptitude / apt-get? “, Pero contribuye al outlook general.


Del comentario de Carlos Campderrós a continuación :

gdebi es otra herramienta que es una especie de mezcla entre apt-get y aptitude . Cuando lo use para instalar un paquete .deb ( gdebi packageName.deb ), identificará las dependencias faltantes, las instalará usando apt-get , y finalmente instalará y configurará el paquete usando dpkg . Incluso tiene una GUI simple y ordenada que le brinda información sobre el paquete .deb , los archivos incluidos en el paquete y las dependencias que deben instalarse. Para ver esta GUI, deberías hacer gdebi-gtk packageName.deb . Puedes intentar con gdebi instalándolo con sudo apt-get install gdebi o sudo apt-get install gdebi clic en este: gdebi Instalar gdebi .


No quiero confundir a nadie, pero solo para darte otra parte de la imagen, hay otro formato popular de paquete de Linux llamado RPM, y sus archivos tienen la extensión .rpm . Este formato de paquete se usa en distribuciones de Linux basadas en RPM (como Red Hat, CentOS y Fedora). Utilizan el comando rpm para instalar un paquete, y yum es el front-end para él, es el más inteligente. Así que sus archivos .rpm son nuestros archivos .deb , su herramienta rpm es nuestra herramienta dpkg , y su yum es nuestro apt-get .

Del comentario de Paddy Landau a continuación :

alien es una herramienta que convierte .deb paquetes .rpm y .deb . Entonces, si alguna vez te encuentras en la situación en la que tienes un paquete .rpm , y quieres instalarlo en tu Ubuntu (o cualquier otra distribución basada en Debian), puedes usar el comando alien rpm_packageName.rpm para convertirlo en .deb , y luego instalarlo usando dpkg . Puede hacer lo contrario (convertir .deb a .rpm ) usando alien -r packageName.deb .

apt-get

La gestión de paquetes a través de apt-get se ejecuta de la mano con el archivo /etc/apt/sources.list.

apt-get install instala un nuevo paquete en su computadora.

apt-get build-dep Este comando busca los repositorys e instala las dependencias de comstackción para. Si el paquete no está en los repositorys, devolverá un error.

apt-get install apt-get permite la instalación de varios paquetes. separar los paquetes con un espacio.

auto-apt run Cuando se invoca, el comando auto-apt instala automáticamente los paquetes cuando falta el acceso al archivo. Si un progtwig intenta acceder a un archivo que se sabe que pertenece a un paquete desinstalado, auto-apt lo instalará usando apt-get. Esta característica requiere apt y sudo para funcionar.

Visita la página de instrucciones de apt-get

aptitud

aptitude proporciona la funcionalidad de dselect y apt-get , así como muchas características adicionales que no se encuentran en ninguno de los progtwigs.

aptitude tiene un shell propio que se activa con el teclado o el mouse y se ejecuta en una ventana de terminal

aptitude build-dep : instala las dependencias de comstackción de los paquetes, lo que significa los paquetes necesarios para comstackr (o comstackr ) su paquete fuente. Por ejemplo, muchos paquetes necesitan debhelper o autotools para construirse, pero no los necesitan para ejecutarse.

Visita la página de instrucciones de aptitud.

dpkg

es una herramienta para instalar, crear, eliminar y administrar paquetes de Debian. enlazar

dpkg -i instala un paquete Debian en su computadora. No instala ninguna dependencia hasta donde puedo encontrar en los archivos de ayuda.

Para detalles, escriba dpkg --help en una ventana de terminal.

Guías

una guía para la gestión de archivos se puede encontrar aquí

Creo que lo más importante y también una diferencia es que debes tener en cuenta que debes usar la herramienta apt-get para instalar paquetes. ( apt o aptitude está bien).

Esto se debe a que dpkg está destinado a instalar paquetes sin instalar paquetes dependientes. Debido a que simplemente instalar un paquete con dpkg , puede llevar a un problema posterior donde la resolución de dependencia puede terminar con un sistema dañado.

Debe utilizar la herramienta de línea de comandos apt-get o apt (desde 14.04) para instalar paquetes. Estas herramientas utilizan dpkg por usted y al mismo tiempo tienen el mecanismo de resolución de dependencias en su interior.