¿Cuál es la diferencia entre dpkg y aptitude / apt-get?
125
Al instalar un software a través de dpkg -i packageA.deb, ¿ packageAse descargarán e instalarán automáticamente las dependencias requeridas ? ¿Cómo es esto diferente de usar apt-geto aptitude?
No, dpkgsolo instala un paquete, por lo dpkg -i packageName.debque solo instalará este paquete Deb y le notificará de cualquier dependencia que deba instalarse, pero no las instalará y no configurará el packageName.debporque bueno ... las dependencias son no ahí.
apt-getes 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. Entonces apt-getes como un inteligente dpkg.
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 forma de "almacenar" los archivos de una aplicación en un "paquete" para que se pueda instalar fácilmente. Entonces, nació el paquete Deb ( .debarchivo de extensión ).
Un .debarchivo 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 .debarchivo, 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 quiere ver las dependencias, hágalo dpkg -I packageName.deb | grep Depends).
Necesitaban una herramienta para instalar estos .debarchivos, por lo que se les ocurrió la dpkgherramienta. Sin embargo, esta herramienta solo instalará el .debarchivo, pero no instalará sus dependencias porque no tiene esos archivos y no tiene acceso a "repositorios" desde donde extraer las dependencias.
Luego, se les ocurrió apt-get, lo que automatiza los problemas en el punto anterior. Debajo del capó, apt-getes básicamente dpkg(me gusta pensar que apt-getes un front-end para dpkg), pero uno inteligente que buscará las dependencias y las instalará. Incluso analiza las dependencias instaladas actualmente y determina las que no están siendo utilizadas por ningún otro paquete, y le informará que puede eliminarlas.
aptitudeLuego vino. Utiliza las bibliotecas apt-getusos y en realidad tiene una interfaz de usuario interactiva (interfaz de usuario). Si desea ver esta interfaz de usuario, simplemente escriba aptitudeel terminal. Eso esaptitude . Aprovecha las bibliotecas para proporcionar más opciones y ventajas que apt-get. Por ejemplo, aptitudeeliminará automáticamente los paquetes elegibles, mientras que apt-getnecesita un comando separado para hacerlo. Pero, al final, haciendo sudo aptitude install packageName.debdebería al menos ser igual 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 todas esas cosas. Puede leer la respuesta aquí para obtener más información sobre las diferencias entre aptitudey apt-get.
Además, aptitudeno tiene Super Cow Powers.
EDITAR: Al parecer, lo hace. aptitude -v[v[v[v[v]]]] moo.
aptitudeEs posible que no esté instalado de forma predeterminada. Para instalarlo, haz sudo apt-get install aptitudeo haz clic en esto: aptitude .
Extra
La siguiente información realmente no responde directamente " ¿Cuál es la diferencia entre dpkg y aptitude / apt-get? ", Pero contribuye al panorama general.
gdebies otra herramienta que es una especie de mezcla entre apt-gety aptitude. Cuando lo use para instalar un .debpaquete ( gdebi packageName.deb), identificará las dependencias que faltan, 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 .debpaquete, los archivos incluidos en el paquete y qué dependencias deben instalarse. Para ver esta GUI, lo harías gdebi-gtk packageName.deb. Puede gdebiintentarlo instalándolo sudo apt-get install gdebio haciendo clic en esto: gdebi .
No quiero confundir a nadie, pero solo para darle otra parte de la imagen, hay otro formato de paquete de Linux popular llamado RPM, y sus archivos tienen la .rpmextensión. Este formato de paquete se usa en distribuciones de Linux basadas en RPM (como Red Hat, CentOS y Fedora). Usan el comando rpmpara instalar un paquete, y yumes el front-end para él, es el más inteligente. Entonces, sus .rpmarchivos son nuestros .debarchivos, su rpmherramienta es nuestra dpkgherramienta y su yumes nuestra apt-get.
alienes una herramienta que convierte entre .rpmy .debpaquetes. Entonces, si alguna vez cae en la situación en la que tiene un .rpmpaquete y desea instalarlo en su Ubuntu (o cualquier otra distribución basada en Debian), puede usar el comando alien rpm_packageName.rpmpara convertirlo .deby luego instalarlo usando dpkg. Puede hacer lo contrario (convertir .deba .rpm) usando alien -r packageName.deb.
Eso fue muy útil y exactamente lo que estaba buscando. Tx!
Aniket Thakur
44
Además, puede usar gdebi( apt-get install gdebi-core) que se mezcla apt-get/ aptitudecon dpkg. Lo llama con gdebi some_package.deby analizará sus dependencias, llamará apt-getpara instalar las que faltan y cuando se cumplan todas las dependencias, luego llame dpkgpara finalmente instalar su paquete.
Carlos Campderrós
2
@Alaa Bajo Extra , también puede mencionar que alienconvierte paquetes entre .rpmy .deb. Esto es útil para paquetes disponibles para RPM pero no para DEB (o viceversa). Por ejemplo, alien packagename.rpmpara que sea utilizable para Ubuntu.
@edwardtorvalds AskUbuntu es un sitio de preguntas y respuestas. Busque su respuesta aquí en el sitio de las miles de preguntas anteriores, y si no la encuentra, haga su propia pregunta, es de esperar que personas más experimentadas que yo también respondan.
Alaa Ali
5
apt-get
La gestión de paquetes se apt-getejecuta de la mano con el /etc/apt/sources.listarchivo.
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 múltiples paquetes. 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 a los archivos. Si un programa 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.
aptitudeproporciona la funcionalidad dselecty apt-getmuchas otras características adicionales que no se encuentran en ninguno de los programas.
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 <package> - Instale las dependencias de compilación de los paquetes, lo que significa los paquetes necesarios para compilar (o compilar ) su paquete fuente. Por ejemplo, muchos paquetes necesitan debhelpero autotoolsdeben construirse, pero no los necesitan para ejecutarse.
Creo que lo más importante y también una diferencia es que debe tener en cuenta que debe usar la apt-getherramienta para instalar paquetes. ( apto aptitudeestá bien también).
Esto se debe a que dpkgestá destinado a instalar paquetes sin instalar paquetes dependientes. Debido a que solo instalar un paquete con dpkg, puede conducir a un problema posterior donde la resolución de dependencia puede terminar con un sistema roto.
Debe usar la línea de comando apt-geto la aptherramienta (desde 14.04) para instalar paquetes. Estas herramientas están utilizando dpkgpara usted y al mismo tiempo tienen el mecanismo de resolución de dependencia en su interior.
Respuestas:
No,
dpkgsolo instala un paquete, por lodpkg -i packageName.debque solo instalará este paquete Deb y le notificará de cualquier dependencia que deba instalarse, pero no las instalará y no configurará elpackageName.debporque bueno ... las dependencias son no ahí.apt-getes 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. Entoncesapt-getes como un inteligentedpkg.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 forma de "almacenar" los archivos de una aplicación en un "paquete" para que se pueda instalar fácilmente. Entonces, nació el paquete Deb (
.debarchivo de extensión ).Necesitaban una herramienta para instalar estos
.debarchivos, por lo que se les ocurrió ladpkgherramienta. Sin embargo, esta herramienta solo instalará el.debarchivo, pero no instalará sus dependencias porque no tiene esos archivos y no tiene acceso a "repositorios" desde donde extraer las dependencias.apt-get, lo que automatiza los problemas en el punto anterior. Debajo del capó,apt-getes básicamentedpkg(me gusta pensar queapt-getes un front-end paradpkg), pero uno inteligente que buscará las dependencias y las instalará. Incluso analiza las dependencias instaladas actualmente y determina las que no están siendo utilizadas por ningún otro paquete, y le informará que puede eliminarlas.aptitudeLuego vino. Utiliza las bibliotecasapt-getusos y en realidad tiene una interfaz de usuario interactiva (interfaz de usuario). Si desea ver esta interfaz de usuario, simplemente escribaaptitudeel terminal. Eso esaptitude. Aprovecha las bibliotecas para proporcionar más opciones y ventajas queapt-get. Por ejemplo,aptitudeeliminará automáticamente los paquetes elegibles, mientras queapt-getnecesita un comando separado para hacerlo. Pero, al final, haciendosudo aptitude install packageName.debdebería al menos ser igualsudo apt-get install packageName.deb. Puede haber diferencias sutiles aquí y allá que no conozco, pero ambas buscarán las dependencias y harán todas esas cosas. Puede leer la respuesta aquí para obtener más información sobre las diferencias entreaptitudeyapt-get.Además,
aptitudeno tiene Super Cow Powers.aptitudeEs posible que no esté instalado de forma predeterminada. Para instalarlo, hazsudo apt-get install aptitudeo haz clic en esto: aptitudeExtra
De Carlos Campderrós ' comentario a continuación :
gdebies otra herramienta que es una especie de mezcla entreapt-getyaptitude. Cuando lo use para instalar un.debpaquete (gdebi packageName.deb), identificará las dependencias que faltan, las instalará usandoapt-get, y finalmente instalará y configurará el paquete usandodpkg. Incluso tiene una GUI simple y ordenada que le brinda información sobre el.debpaquete, los archivos incluidos en el paquete y qué dependencias deben instalarse. Para ver esta GUI, lo haríasgdebi-gtk packageName.deb. Puedegdebiintentarlo instalándolosudo apt-get install gdebio haciendo clic en esto: gdebiNo quiero confundir a nadie, pero solo para darle otra parte de la imagen, hay otro formato de paquete de Linux popular llamado RPM, y sus archivos tienen la
.rpmextensión. Este formato de paquete se usa en distribuciones de Linux basadas en RPM (como Red Hat, CentOS y Fedora). Usan el comandorpmpara instalar un paquete, yyumes el front-end para él, es el más inteligente. Entonces, sus.rpmarchivos son nuestros.debarchivos, surpmherramienta es nuestradpkgherramienta y suyumes nuestraapt-get.De arroz Landau 's comentario a continuación :
alienes una herramienta que convierte entre.rpmy.debpaquetes. Entonces, si alguna vez cae en la situación en la que tiene un.rpmpaquete y desea instalarlo en su Ubuntu (o cualquier otra distribución basada en Debian), puede usar el comandoalien rpm_packageName.rpmpara convertirlo.deby luego instalarlo usandodpkg. Puede hacer lo contrario (convertir.deba.rpm) usandoalien -r packageName.deb.fuente
gdebi(apt-get install gdebi-core) que se mezclaapt-get/aptitudecondpkg. Lo llama congdebi some_package.deby analizará sus dependencias, llamaráapt-getpara instalar las que faltan y cuando se cumplan todas las dependencias, luego llamedpkgpara finalmente instalar su paquete.alienconvierte paquetes entre.rpmy.deb. Esto es útil para paquetes disponibles para RPM pero no para DEB (o viceversa). Por ejemplo,alien packagename.rpmpara que sea utilizable para Ubuntu.aptitudeno es una interfaz paraapt-get. Ambos programas son frontends para lalibapt-pkgbiblioteca.apt-get
La gestión de paquetes se
apt-getejecuta de la mano con el/etc/apt/sources.listarchivo.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 múltiples paquetes. 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 a los archivos. Si un programa intenta acceder a un archivo que se sabe que pertenece a un paquete desinstalado, auto-apt lo instalará usandoapt-get. Esta característica requiere apt y sudo para funcionar.Visita la página de instrucciones de apt-get
aptitud
aptitudeproporciona la funcionalidaddselectyapt-getmuchas otras características adicionales que no se encuentran en ninguno de los programas.aptitudetiene un shell propio que se activa con el teclado o el mouse y se ejecuta en una ventana de terminalaptitude build-dep <package>- Instale las dependencias de compilación de los paquetes, lo que significa los paquetes necesarios para compilar (o compilar ) su paquete fuente. Por ejemplo, muchos paquetes necesitandebhelperoautotoolsdeben construirse, pero no los necesitan para ejecutarse.Visita la página de instrucciones de aptitud
dpkg
es una herramienta para instalar, construir, eliminar y administrar paquetes Debian. enlazar
dpkg -i <package.deb>instala un paquete Debian en su computadora. No instala ninguna dependencia hasta donde puedo encontrar en los archivos de ayuda.Para detalles, escriba
dpkg --helpen una ventana de terminal.Guías
Una guía para la gestión de archivos se puede encontrar aquí
fuente
Creo que lo más importante y también una diferencia es que debe tener en cuenta que debe usar la
apt-getherramienta para instalar paquetes. (aptoaptitudeestá bien también).Esto se debe a que
dpkgestá destinado a instalar paquetes sin instalar paquetes dependientes. Debido a que solo instalar un paquete condpkg, puede conducir a un problema posterior donde la resolución de dependencia puede terminar con un sistema roto.Debe usar la línea de comando
apt-geto laaptherramienta (desde 14.04) para instalar paquetes. Estas herramientas están utilizandodpkgpara usted y al mismo tiempo tienen el mecanismo de resolución de dependencia en su interior.fuente