491 votes

Comment laisser `dpkg -i` installer les dépendances pour moi ?

Dites, j'ai foo-1.2.3.deb qui dépend de perl y python Cependant, la commande en cours d'exécution :

dpkg -i ./foo-1.2.3.deb

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

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

9 votes

@pd12 : Hourra pour les références circulaires ! :-D

0 votes

Heh, j'ai décidé de lier les deux et de voir lequel les mods allaient choisir.

624voto

Razvi Points 171

Après avoir utilisé dpkg l'exécution de la commande suivante m'a permis d'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...

Avis la ligne sur Setting up package_with_unsatisfied_dependencies . Ce site fixe (et achève) l'installation de package_with_unsatisfied_dependencies.deb .

16 votes

Devrais-je courir sudo dpkg -i mypackage.deb encore ?

40 votes

Après avoir exécuté sudo apt-get -f install mon paquet et ses dépendances étaient tous installés. Exécution de sudo dpkg -i my_package.deb est inutile et ne fera qu'installer à nouveau le paquet.

7 votes

Ce qui suit fonctionne sur Ubuntu 14.04 : sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb . Le premier dpkg -i exécute les dépendances des marques, apt-get -f install installe les dépendances requises et la seconde dpkg -i installe avec succès le paquet. Notez que apt-get install -f est une commande totalement différente.

197voto

textshell Points 2061

À partir de apt 1.1 (disponible dans Xenial (16.04), stretch) apt install permet également les fichiers locaux :

sudo apt install ./foo-1.2.3.deb

C'est tellement plus simple et plus propre.

Voir le annonce de la libération

10 votes

Il est grand temps que cela soit disponible

1 votes

Cette solution n'a pas fonctionné. Tout ce qui s'est passé, c'est une liste d'erreurs.

0 votes

@BillyS désolé d'entendre que cela n'a pas fonctionné pour vous, mais sans la version de la distro que vous utilisez et les erreurs que vous avez obtenues, ce n'est pas du tout actionnable.

118voto

Marc Hughes Points 3794

Vous pouvez installer gdebi-core qui est la version en ligne de commande de l'installateur de paquets GDebi à partir de la version 10.04. Dans les versions plus récentes d'Ubuntu, le Software Center est utilisé pour installer les paquets debs, qui n'ont pas d'équivalent en ligne de commande.

Pour installer un paquet deb en utilisant gdebi, il suffit d'exécuter :

sudo gdebi my_package_1.0.deb

0 votes

Probablement l'une des meilleures réponses ici.

42voto

Evan Points 1318

Gdebi

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

sudo gdebi package.deb

Dans les versions plus récentes d'Ubuntu, il n'est pas installé par défaut, vous devrez donc l'installer depuis les dépôts.

Ver man gdebi pour une liste complète d'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 de l'outil graphique est gdebi-gtk et a une fonctionnalité similaire :

gdebi-gtk

0 votes

Gdebi-gtk ne montre pas les deps requis (la version que j'ai ici du moins, et cela ressemble à un bug), mais la ligne de commande le fera ! Si nous avons une autre machine avec les paquets, nous pouvons utiliser dpkg-repack sur elle en se basant sur cette liste de deps :)

21voto

Denwerko Points 1208

En cours d'exécution

sudo apt-get install -f

après avoir installé le paquet avec dpkg peut résoudre les dépendances cassées (au moins l'homme apt-get le dit...). Je mettrai à jour quand je l'aurai vérifié.

1 votes

Devrais-je courir sudo dpkg -i mypackage.deb encore ?

3 votes

apt-get -f install fonctionne, mais apt-get install -f n'est pas le même.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X