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

116

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

    
pregunta Aniket Thakur 17.06.2013 - 09:08

3 respuestas

156

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

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

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

  • Se les ocurrió una forma de "almacenar" los archivos de una aplicación en un "paquete" para que se pueda instalar fácilmente. Entonces, nació el paquete Deb ( .deb archivo de extensión ).

      

    Un archivo .deb contiene los archivos necesarios para ejecutar una aplicación, así como (me gusta llamarlo) "metadatos" que contienen otra información, como los nombres de las dependencias que la aplicación necesita. 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, do dpkg -I packageName.deb | grep Depends ).

  • Necesitaban una herramienta para instalar estos archivos .deb , por lo que se les ocurrió la herramienta dpkg . Esta herramienta, sin embargo, solo instalará el archivo .deb , pero no instalará sus dependencias porque no tiene esos archivos y no tiene acceso a "repositorios" para obtener las dependencias de.

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

aptitude luego apareció. Utiliza las bibliotecas apt-get usa y en realidad tiene una interfaz de usuario (interfaz de usuario) interactiva. . Si desea ver esta interfaz de usuario, simplemente escriba aptitude en la 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 al menos ser el mismo que sudo apt-get install packageName.deb . Puede que haya sutiles diferencias 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: Aparentemente, sí. aptitude -v[v[v[v[v]]]] moo .

aptitude podría no estar instalado de manera predeterminada. Para instalarlo, haga sudo apt-get install aptitude o haga clic aquí: aptitude .

Extra

  

La siguiente información realmente no responde " ¿Cuál es la diferencia entre dpkg y aptitude / apt-get? ", pero contribuye al panorama general.

De Carlos Campderrós ' comentario debajo :

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 sencilla y ordenada que le brinda información sobre el paquete .deb , los archivos incluidos en el paquete, y qué dependencias necesitan ser instaladas. Para ver esta GUI, harías gdebi-gtk packageName.deb . Puede probar gdebi instalándolo con sudo apt-get install gdebi o haga clic aquí: gdebi .

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

de Paddy Landau comment below :

alien es una herramienta que convierte entre .rpm y .deb packages. Entonces, si alguna vez cae en la situación en la que tiene un paquete .rpm y desea instalarlo en su Ubuntu (o cualquier otra distribución basada en Debian), puede usar el comando alien rpm_packageName.rpm para convertirlo a .deb , y luego instálalo usando dpkg . Puede hacer lo contrario (convertir .deb a .rpm ) usando alien -r packageName.deb .

    
respondido por el Alaa Ali 17.06.2013 - 09:30
5

apt-get

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

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

apt-get build-dep <package_name> Este comando busca en los repositorios e instala las dependencias de compilación. Si el paquete no está en los repositorios, devolverá un error.

apt-get install <package1_name> <package2_name> <package3_name> apt-get permite la instalación de paquetes múltiples. separe los paquetes con un espacio.

auto-apt run <command_string> Cuando se invoca, el comando auto-apt instala automáticamente los paquetes cuando falta el acceso al archivo. Si un programa intenta acceder a un archivo que pertenece a un paquete desinstalado, auto-apt lo instalará usando apt-get. Esta función requiere que apt y sudo funcionen.

Visite la página de instrucciones de apt-get

aptitude

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

aptitude tiene un shell propio que está activado por el teclado o el mouse y se ejecuta en una ventana de terminal

aptitude build-dep <package> - Instala las dependencias de compilación de paquetes, lo que significa que los paquetes necesarios para compilar (o compilar ) su paquete fuente. Por ejemplo, muchos paquetes necesitan debhelper o autotools para compilarse, pero no es necesario que se ejecuten.

Visite la página de instrucciones de aptitude

dpkg

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

dpkg -i <package.deb> instala un paquete Debian en su computadora. No instala ninguna dependencia, hasta donde puedo averiguarlo, de los archivos de ayuda.

Para obtener más información, escriba dpkg --help en una ventana de terminal.

Guías

se puede encontrar una guía de administración de archivos aquí

    
respondido por el SimplySimon 17.06.2013 - 09:29
0

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

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

Debería utilizar la herramienta de línea de comando apt-get o apt (desde 14.04) para instalar paquetes. Estas herramientas están usando dpkg para ti y al mismo tiempo tienen el mecanismo de resolución de dependencia dentro.

    
respondido por el prosti 16.08.2018 - 21:24

Lea otras preguntas en las etiquetas