Comment installer des paquets .deb locaux avec apt-get


144

Existe-t-il un moyen d'installer apt-get sur votre disque dur, par exemple apt-get install ./package.deb?

Sinon, comment gérer les dépendances de manière très simple?


Cela fonctionne maintenant. Si vous utilisez toujours SuperUser, pouvez-vous mettre à jour la réponse acceptée? Voir ci-dessous.
Mikemaccana le

Réponses:


121

d'habitude je le fais dpkg -i <deb file>, ça échouera en disant qu'il a besoin de dépendances. Après cela, quand vous le ferez, apt-get updateil dira à la fin quelque chose comme "les dépendances sont prêtes à être installées". Je pense que cela conseille alors de les utiliser apt-get install -f.

Une fois que c'est fait, je l'utilise dpkg -iencore.

A bien fonctionné pour moi ces dernières années.

edit: regarder un peu plus loin, apparemment un outil appelé gdebipeut le faire en tant que gdebi [deb file].


1
Merci j'ai fait la même chose par "erreur" dpkg puis apt-get install -f et cela a fonctionné.
Louis

2
gdebiest travaillé pour moi, et le plus simple que j'ai vu jusqu'à présent.
ctrl-alt-delor

55

Sirex a plus ou moins raison, mais sa réponse n'est pas claire. Je viens de résoudre ce problème, alors voici ce que j'ai fait:

sudo dpkg -i /path/to/filename.deb

Si cela échoue avec un message sur le paquet en fonction de quelque chose qui n'est pas installé, vous pouvez probablement le réparer si vous exécutez

sudo apt-get -f install

Cela installera les dépendances (en supposant qu'elles soient disponibles dans les dépôts que votre système connaît) ET le paquet que vous demandiez à l'origine d'installer ("f" est l'option "correctif" et "y" est le "supposer que oui aux invites" ou "ne me demandez pas si c'est ok, installez-le déjà" - très utile pour les installations silencieuses par script). Sur le système sur lequel je me trouvais, il n’était pas nécessaire de relancer dpkg (Ubuntu lucid 10.04).

J'ai trouvé intéressant que si vous laissez le fichier -f lors de votre exécution sudo apt-get install, il indiquera que votre paquet n'est pas configuré en raison d'une dépendance non résolue et suggère utilement:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Modifier:

Si vous voulez installer sans avoir à répondre « y » à toutes les questions, vous pouvez ajouter le ymodificateur comme je l' origine inclus: sudo apt-get -fy install. Cependant, un commentateur a souligné qu'apt proposait parfois de désinstaller tout votre environnement de bureau. Je faisais ce travail dans une machine virtuelle et je n'avais pas cette préoccupation, mais cet article a été mis à jour pour refléter le fait d'être un peu plus prudent.


Si tous les fichiers de paquet sont déjà dans un répertoire, y a-t-il un moyen de dire à apt qu'il s'agit d'un nouveau dépôt, de sorte que je n'aurai pas à le forcer à installer quoi que ce soit sans dépendances?
Berry Tsakala

2
Je suis désolé, mais je ne sais pas. Je suggérerais de poser cela comme une autre question de haut niveau.
Akrikos

Fou étrange que cela est nécessaire. Sur raspian, cela nécessitera sudo (pour dpkg et apt-get):, sudo dpkg -i mypackages.debetc.
Brent Faust

L'accès root @Rubistro est requis sur tous les systèmes. J'imagine que les réponses supposaient que les commandes étaient exécutées par root (par exemple à partir d'un shell root interactif ou d'un script exécuté en tant que root).
Amos Shapira

2
Pour votre bien, n’ajoutez pas l’ -yoption. Il est assez courant de pouvoir suggérer, par exemple, de désinstaller tout votre environnement de bureau si vous essayez avec le mauvais paquet au mauvais moment (du moins sous Debian).
oseiskar

45

Vous pouvez également installer le fichier .deb en utilisant gdebi.Exécutez les commandes ci-dessous pour installer gdebi,

sudo apt-get install gdebi-core

Installez les paquets .deb avec gdebi,

sudo gdebi /path/to/filename.deb

Cela corrige également les dépendances.


4
Notez que gdebi ne prend qu'un seul argument et en silence laisse tomber le reste sur le sol. Cela signifie que si vous installez plusieurs deb en même temps (peut-être parce qu'elles dépendent les unes des autres), vous devrez créer avec soin les gdebicommandes qui leur permettent de s'installer. imo cette moitié défait le but de gdebi, mais vous pouvez toujours le trouver utile pour un seul fichier
Anthony Sottile

@Anthony thenfind -name *.deb -exec gdebi {} \;
jjmontes

3
@jjmontes ça ne marchera que si les interdépendances sont dans l'ordre alphabétique, ce qui, je parie, est plutôt rare
Anthony Sottile

J'ai suivi ce site freesoftwaremagazine.com/articles/ (le bogue du dépôt local devait se trouver sur / var / www / html / debs) et Synaptic essayait toujours de télécharger à distance, même sans Internet, gdebi fonctionnait donc très bien avec le dépôt local. ! aussi, les fichiers .deb devaient êtrechmod +r *.deb
Aquarius Power

34

Oui, la commande que vous avez proposée est correcte.

sudo apt-get install ./package.deb

ou

sudo apt install ./package.deb

installera le paquet que vous avez reçu d’une autre source que APT et utilisera en même temps les capacités de APT pour résoudre automatiquement ses dépendances. Malheureusement, cette apt-getfonctionnalité n’est pas documentée dans la page de manuel .

Voir https://askubuntu.com/a/769542/250300 et https://askubuntu.com/a/795048/250300 pour plus de détails.


8
Cela aurait dû être la réponse acceptée.
Peter

Quelle version d'apt-get a ajouté cette fonctionnalité?
Kurt Fitzner

@KurtFitzner Il a été ajouté à APT 1.1 par annonce de version (trouvé via askubuntu.com/a/795048/250300 ).
Melebius le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.