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?

Louis
la source
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].

Sirex
la source
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.

Akrikos
la source
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.

Avinash Raj
la source
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.

Melebius
la source
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