¿Cómo dejar que 'dpkg -i' instale dependencias para mí?

259

Decir, tengo foo-1.2.3.deb que depende de perl y python , sin embargo, ejecutando el comando:

dpkg -i ./foo-1.2.3.deb

no instalará estas dependencias. Entonces debo apt-get install perl python a mano.

¿Cómo hacer que dpkg -i instale estas dependencias automáticamente?

    
pregunta Xiè Jìléi 04.05.2011 - 15:11

10 respuestas

347

Después de usar dpkg , ejecutar el siguiente comando me ayudó a instalar las dependencias requeridas:

sudo apt-get -f install

En total, su terminal debería tener este aspecto:

$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ... 
[additional messages]

$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...

Observe la línea sobre Setting up package_with_unsatisfied_dependencies . Esto corrige (y completa) la instalación de package_with_unsatisfied_dependencies.deb .

    
respondido por el Arindom 04.05.2011 - 17:38
108

Puede instalar gdebi-core , que es la versión de línea de comandos del instalador del paquete GDebi de 10.04 y anteriores. En las versiones más nuevas de Ubuntu, el Centro de Software se usa para instalar Debs, que no tiene una línea de comando equivalente.

Para instalar un paquete Deb usando gdebi, solo ejecuta:

sudo gdebi my_package_1.0.deb
    
respondido por el Andrew Gunnerson 04.05.2011 - 16:47
35

Gdebi

gdebi instala un paquete Deb y sus dependencias. Para usarlo, ejecuta:

sudo gdebi package.deb

En las versiones más nuevas de Ubuntu, esto no está instalado por defecto, por lo que deberá instalarlo desde los repositorios.

Consulte man gdebi para obtener una lista completa de opciones.

gdebi es la línea de comando equivalente a la herramienta gráfica del mismo nombre que solía incluirse por defecto en Ubuntu. El comando para la herramienta gráfica es gdebi-gtk y tiene una funcionalidad similar:

    
respondido por el dv3500ea 04.05.2011 - 18:56
26

comenzando con apt 1.1 (disponible en Xenial (16.04), estirar) apt install también permite archivos locales:

sudo apt install ./foo-1.2.3.deb

Más simple y más limpio.

Consulte el anuncio de lanzamiento

    
respondido por el textshell 05.07.2016 - 11:23
18

en ejecución

sudo apt-get install -f

después de instalar el paquete con dpkg puede resolver dependencias rotas (al menos man apt-get say so ...). Lo actualizaré cuando lo revise.

    
respondido por el Denwerko 04.05.2011 - 15:17
9

dpkg no tiene soporte de dependencia. Hay una forma de evitarlo, pero eso requeriría que crearas una base de datos local (y por lo tanto ya conocerías las dependencias) y se considera obsoleta (...).

¿Tiene que ser línea de comando? (¿Instalación del servidor?) Si es así, también eche un vistazo a apt-get -f pero tenga cuidado: resolver dependencias después de la instalación podría terminar con un sistema dañado.

gdebi (gui frontend) solía ser capaz de hacer esto pero fue reemplazado por USC.

¿Cómo descargó el .deb. Algunas de las nuevas características de 11.04 son el manejo de .deb descargado de un sitio web: se abre en USC, por lo que el instalador resolverá las dependencias.

EDITAR según el comentario de andrew: sudo gdebi foo-1.2.3.deb haría el truco!

    
respondido por el Rinzwind 04.05.2011 - 15:32
3

Como alternativa al gdebi-gtk puede usar el Centro de software de Ubuntu.

Haga doble clic en el paquete y un botón de instalación debería estar disponible.

    
respondido por el Henrique 10.05.2011 - 09:55
3

Podrías crear un archivo dpkg-dep-inst con el siguiente contenido.

#!/bin/bash

DEBIAN_FILE1=
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install

Supongo que creó el archivo en su carpeta de inicio. Hazlo ejecutable con chmod +x dpkg-dep-inst y muévelo a /usr/local/bin con sudo cp dpkg-dep-inst /usr/local/bin .

Ahora puede instalar el paquete Debian con dependencias automáticamente con:

sudo dpkg-dep-inst foo-1.2.3.deb
    
respondido por el BuZZ-dEE 28.01.2013 - 17:01
1

Acabo de toparme con este problema. ¡Llamando a apt-get install -f no instalará recomendado dependencias! La única solución para esto sería crear un repositorio local y agregarlo a /etc/apt/sources.list , es decir:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update
    
respondido por el Alex Kläser 10.02.2016 - 16:19
0

En realidad, la respuesta es que dpkg package manager no puede instalar dependencias de fábrica. Usted cam man dpkg y descubrió eso. Entonces necesita usar herramientas como apt , apt-get , aptitude , ..., basado en dpkg .

Diría que el mismo caso es para el administrador de paquetes rpm en el otro hemisferio de Linux. rmp no está destinado a realizar instalaciones basadas en la dependencia. Puede instalar paquetes individuales, y para instalar las dependencias usa yum , urpmi , up2date , todos están basados ​​en RPM.

Como se indicó, existe un ligero peligro al instalar paquetes con dpkg directamente, ya que la resolución posterior de la resolución de la dependencia puede terminar con un sistema dañado como @Rinzwind esbozado.

    
respondido por el prosti 16.08.2018 - 21:05

Lea otras preguntas en las etiquetas