Diferencia entre `dpkg -i` y` apt-get install`

16

De todas las otras preguntas y respuestas (como: ¿Cuál es la diferencia entre dpkg y aptitude / apt-get? ) Entiendo que apt-getes un reinicio dpkgy proporciona una gestión de dependencia.

Suponiendo que estoy instalando algo que no tiene dependencias (o que también están instaladas al mismo tiempo), ¿habría alguna diferencia entre instalarlo usando apt-getvsdpkg

Por ejemplo (un poco las diferencias concretas que estoy buscando)

  • Por ejemplo dpkg, no puedo descargar el paquete desde algún lugar, debo descargarlo antes de comenzar la instalación, mientras que apt-getlo haré en mi nombre.
  • dpkgno configurará pkg, solo copiará archivos. apt-getconfigurará también.

...

Kashyap
fuente

Respuestas:

16

dpkg -iinstala *.debpaquetes, es decir, paquetes que ya ha descargado de alguna parte. También los configura, pero no descarga / instala dependencias. Debe haber descargado los archivos de paquete binario manualmente desde algún lugar. También puede haber riesgos al descargar paquetes desde ubicaciones que no son los repositorios que su distribución había incluido / habilitado por defecto, ya que los paquetes de terceros pueden ser de naturaleza maliciosa.


apt-get/aptitude install accede automáticamente a los repositorios e índices de PPA que habilitó, busca el mejor candidato, lo descarga y todas sus dependencias, los instala y configura automáticamente.

Utilizando apt-get install -f, puede instalar automáticamente las dependencias faltantes de paquetes, por ejemplo, instalados a través de dpkg -i.

Byte Commander
fuente
55
Una nota rápida aquí, apt-getpuede instalar dependencias de paquetes instalados con dpkg -i. Corre apt-get install -fpara lograr eso.
noirscape
1
@ Ev1l0rd Correcto, agregué eso a mi respuesta.
Byte Commander
2
Otra diferencia importante, y un caso para usar apt-geto aptitude, es que recuerdan si un paquete se instaló manualmente (solicitado específicamente) o si se instaló para cumplir con una dependencia. De esa manera, cuando luego elimine un paquete, podrán eliminar automáticamente (o al menos informarle) sobre los paquetes que se "instalaron automáticamente y ya no son necesarios". Si instaló cada paquete con, dpkgentonces tendría que recordar y eliminar manualmente no solo su paquete sino todas sus dependencias (suponiendo que nada más dependa de ellos).
Benjamin Staton
1
@BenjaminStaton Bueno, como dpkg -ino le importan las dependencias, todo lo que se instala con él, por supuesto, se instala "manualmente".
Byte Commander