Comment laisser 'dpkg -i' installer des dépendances pour moi?

256

Dire, j'ai foo-1.2.3.deb qui dépend de perl et python , cependant, en exécutant la commande:

dpkg -i ./foo-1.2.3.deb

n'installe pas ces dépendances. Je dois donc apt-get install perl python à la main.

Comment faire pour que dpkg -i installe automatiquement ces dépendances pour moi?

    
posée Xiè Jìléi 04.05.2011 - 15:11
la source

10 réponses

344

Après avoir utilisé dpkg , l'exécution de la commande suivante m'a aidé à installer les dépendances requises:

sudo apt-get -f install

En tout, votre terminal devrait ressembler à ceci:

$ 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...

Remarquez la ligne concernant Setting up package_with_unsatisfied_dependencies . Cet corrige (et termine) l’installation de package_with_unsatisfied_dependencies.deb .

    
réponse donnée Arindom 04.05.2011 - 17:38
la source
108

Vous pouvez installer gdebi-core , qui est la version en ligne de commande du programme d’installation du package GDebi de 10.04 et des versions antérieures. Dans les nouvelles versions d’Ubuntu, le Software Center est utilisé pour installer debs, qui n’a pas d’équivalent de ligne de commande.

Pour installer un paquet deb en utilisant gdebi, exécutez simplement:

sudo gdebi my_package_1.0.deb
    
réponse donnée Andrew Gunnerson 04.05.2011 - 16:47
la source
35

Gdebi

gdebi installe un paquet deb et ses dépendances. Pour l'utiliser, exécutez:

sudo gdebi package.deb

Dans les nouvelles versions d'Ubuntu, ce n'est pas installé par défaut, vous devrez donc l'installer à partir des référentiels.

Consultez man gdebi pour une liste complète des options.

gdebi est la ligne de commande équivalente à l'outil graphique du même nom qui était inclus par défaut dans Ubuntu. La commande de l'outil graphique est gdebi-gtk et possède des fonctionnalités similaires:

    
réponse donnée dv3500ea 04.05.2011 - 18:56
la source
25

commençant par apt 1.1 (disponible dans Xenial (16.04), stretch) apt install autorise également les fichiers locaux:

sudo apt install ./foo-1.2.3.deb

Tellement plus simple et plus propre.

Consultez la annonce de publication

    
réponse donnée textshell 05.07.2016 - 11:23
la source
18

en cours d'exécution

sudo apt-get install -f

après avoir installé le paquet avec dpkg peut résoudre des dépendances cassées (au moins man apt-get le dit ...). Mis à jour quand je vais le vérifier.

    
réponse donnée Denwerko 04.05.2011 - 15:17
la source
9

dpkg ne prend pas en charge les dépendances. Il existe un moyen de contourner cela, mais cela nécessiterait de créer une base de données locale (et donc vous connaissez déjà les dépendances) et cela est considéré comme obsolète (...).

Doit-il être en ligne de commande? (installation du serveur?) Si oui, jetez un oeil à apt-get -f mais soyez prudent: si vous résolvez les dépendances après l’installation, vous risquez de vous retrouver avec un système cassé.

gdebi (interface graphique) était capable de faire cela mais a été remplacé par USC.

Comment avez-vous téléchargé le fichier .deb? Certaines des nouvelles fonctionnalités de la version 11.04 sont la gestion des fichiers .deb téléchargés à partir d’un site Web: ils sont ouverts dans USC, ce qui permet de résoudre les dépendances.

EDIT basé sur le commentaire de Andrew: sudo gdebi foo-1.2.3.deb ferait l'affaire !!

    
réponse donnée Rinzwind 04.05.2011 - 15:32
la source
3

Comme alternative à gdebi-gtk , vous pouvez utiliser Ubuntu Software Center.

Double-cliquez sur le paquet et un bouton d’installation devrait être disponible.

    
réponse donnée Henrique 10.05.2011 - 09:55
la source
3

Vous pouvez créer un fichier dpkg-dep-inst avec le contenu suivant.

#!/bin/bash

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

Je suppose que vous avez créé le fichier dans votre dossier personnel. Rendez-le exécutable avec chmod +x dpkg-dep-inst et déplacez-le vers /usr/local/bin avec sudo cp dpkg-dep-inst /usr/local/bin .

Maintenant, vous pouvez installer le paquet Debian avec des dépendances automatiquement avec:

sudo dpkg-dep-inst foo-1.2.3.deb
    
réponse donnée BuZZ-dEE 28.01.2013 - 17:01
la source
1

Je viens de rencontrer ce problème. Appeler apt-get install -f n'installe pas les dépendances recommandées ! La seule solution pour cela serait alors de créer un référentiel local et d'ajouter à /etc/apt/sources.list , c'est-à-dire:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update
    
réponse donnée Alex Kläser 10.02.2016 - 16:19
la source
0

En fait, la réponse est que dpkg gestionnaire de paquets ne peut pas installer des dépendances prêtes à l'emploi. Vous cam man dpkg et l'a découvert. Vous devez donc utiliser des outils tels que apt , apt-get , aptitude , ..., basé sur dpkg .

Je dirais que le même cas concerne le gestionnaire de paquets rpm sur l’autre hémisphère Linux. rmp n'est pas destiné à effectuer des installations basées sur des dépendances. Il peut installer des packages uniques, et pour installer les dépendances, vous utilisez yum , urpmi , up2date tous basés sur RPM.

Comme indiqué, il y a un léger danger d’installation directe des packages avec dpkg , car la résolution ultérieure des résolutions de dépendances peut aboutir à un système cassé comme @Rinzwind le décrit.

    
réponse donnée prosti 16.08.2018 - 21:05
la source

Lire d'autres questions sur les étiquettes