Dites, 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
ne pas installer ces dépendances. Je dois donc apt-get install Perl python
à la main.
Comment faire pour que dpkg -i
installe ces dépendances automatiquement?
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...
Notez la ligne à propos de Setting up package_with_unsatisfied_dependencies
. Ceci corrige (et termine) l'installation de package_with_unsatisfied_dependencies.deb
.
Vous pouvez installer gdebi-core
, qui correspond à la version en ligne de commande du programme d'installation du package GDebi à partir de 10.04 et antérieure. Dans les versions plus récentes d'Ubuntu, le Centre de logiciel est utilisé pour installer debs, qui n'a pas d'équivalent en ligne de commande.
Pour installer un paquet deb en utilisant gdebi, lancez simplement:
Sudo gdebi my_package_1.0.deb
en 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.
Voir le communiqué de presse
gdebi
installe un paquet deb et ses dépendances. Pour l'utiliser, lancez:
Sudo gdebi package.deb
Dans les versions plus récentes d'Ubuntu, ce n'est pas installé par défaut, vous devrez donc l'installer à partir des référentiels.
Voir man gdebi
pour une liste complète des options.
gdebi
est l'équivalent en ligne de commande de l'outil graphique du même nom qui était inclus par défaut dans Ubuntu. La commande pour l'outil graphique est gdebi-gtk
et présente des fonctionnalités similaires:
fonctionnement
Sudo apt-get install -f
après l’installation du paquet avec dpkg peut résoudre les dépendances brisées (au moins man apt-get say so ...). Ill mise à jour quand je vais le vérifier.
dpkg ne prend pas en charge les dépendances. Il y a un moyen de le contourner, mais cela nécessiterait de créer une base de données locale (et donc de connaître déjà les dépendances) et cela est considéré comme obsolète (...).
Doit-il être en ligne de commande? (installation du serveur?) Si tel est le cas, jetez également un coup d'œil à apt-get -f
mais soyez prudent: si vous résolvez des dépendances après une installation, vous risquez de vous retrouver avec un système en panne.
gdebi (interface graphique) était capable de le faire, mais a été remplacé par USC.
Comment avez-vous téléchargé le .deb. Certaines des nouvelles fonctionnalités de la version 11.04 concernent le traitement du fichier .deb téléchargé depuis un site Web: il est ouvert dans USC et les dépendances seront résolues par le programme d’installation.
EDIT basé sur le commentaire de andrew: Sudo gdebi foo-1.2.3.deb
ferait l'affaire!
Vous pouvez créer un fichier dpkg-dep-inst
avec le contenu suivant.
#!/bin/bash
DEBIAN_FILE1=$1
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 automatiquement le paquet debian avec ses dépendances avec:
Sudo dpkg-dep-inst foo-1.2.3.deb
Au lieu de gdebi-gtk
, vous pouvez utiliser Ubuntu Software Center.
Double-cliquez sur le paquet et un bouton d'installation devrait être disponible.
Je viens de rencontrer ce problème. L'appel de apt-get install -f
aura pas installer des dépendances recommandées , cependant! La seule solution possible serait 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
En réalité, la réponse est que le gestionnaire de paquets dpkg
ne peut pas installer les dépendances prêtes à l'emploi. Vous avez cam man dpkg
et découvert cela. Vous devez donc utiliser des outils tels que apt
, apt-get
, aptitude
, ..., basé sur dpkg
.
Je dirais que le même cas s’applique au gestionnaire de paquets rpm
de l’autre hémisphère Linux. rmp
n'est pas destiné à effectuer des installations basées sur la dépendance. Il peut installer des packages individuels et pour installer les dépendances, utilisez yum
, urpmi
, up2date
, toutes basées sur RPM.
Comme indiqué précédemment, l'installation de packages avec dpkg
présente un léger danger, car la résolution ultérieure de la dépendance peut aboutir à un système défectueux, comme indiqué par @Rinzwind.