102 votes

Est-il possible d'installer un fichier .deb à partir d'une URL?

Y a-t-il un moyen d'installer un paquet deb directement à partir d'une URL, en utilisant un shell ? Quelque chose comme

dpkg -i http://domain.com/path/to/package.deb

(Je sais que je pourrais utiliser wget puis dpkg, je me demande juste s'il y a quelque chose qui le fait déjà)

68voto

Mufaka Points 54

Éditer: Je n'avais pas vu votre déclaration précédente sur le fait que vous saviez que vous pouviez wget donc c'est un peu gênant... Je laisse cela ici pour toute personne qui veut savoir comment faire. De plus, la version précédente de ma réponse n'a pas fonctionné mais cette version (au détriment d'être un peu plus longue) fonctionne:

TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'http://chemin.vers/mon.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"

Il vous suffit de modifier l'URL au début. Cela pourrait être aliasé ou écrit comme une fonction bash.

Je suis conscient des problèmes techniques et de sécurité entourant cela (vous ne recevez pas de mises à jour automatiques, pouvez-vous faire confiance à la source, etc.), mais sur la base pure du "puis-je le faire", cela pourrait fonctionner.

32voto

Tgr Points 548

Il n'est pas possible sans créer un fichier temporaire. Normalement, vous le feriez comme

### Ne fonctionne pas
wget --quiet --output-document=- http://example.com/path/to/package.deb | dpkg --install -

ou peut-être

### Ne fonctionne pas
dpkg --install <(wget --quiet --output-document=- http://example.com/path/to/package.deb)

mais dpkg utilise mmap pour accéder au fichier alors rien ne fonctionne. Il y a un rapport de bug à ce sujet : #367297

10voto

Rinzwind Points 270388

La méthode la plus rapide est la suivante. Cliquez pour commencer l'installation de shutter .

URLs utilisées pour cliquer sur le nom :

http://packages.ubuntu.com/shutter

... et pour cliquer sur l'icône :

http://apt.ubuntu.com/p/shutter

Et oui, vous avez besoin du Logiciel Ubuntu Centre pour terminer l'installation d'un fichier .DEB. Sinon, vous devrez exécuter l'installation à partir de Nautilus ou de la ligne de commande.

Le texte complet utilisé ici est uniquement pour Ask Ubuntu donc vous devez le reformater en une ancre :

[shutter](http://packages.ubuntu.com/shutter) [![Installer shutter](https://i.stack.imgur.com/HjNGK.png)](http://apt.ubuntu.com/p/shutter)

Vous pouvez trouver plus d'informations sur la page wiki apturl :

  1. 1 Package:

  2. Regroupement de plusieurs packages :

  3. Activation de dépôts :

    apturl apt:freevial?section=universe

Donc si le logiciel n'est pas dans un dépôt activé par défaut, vous devriez lui ajouter une 'section='. Sinon, vous ne pourrez pas utiliser cette méthode et vous devrez demander à l'utilisateur de le télécharger et de l'installer lui-même.

9voto

kenorb Points 8840

Vous pouvez essayer avec curl.

Pour télécharger le fichier dans le dossier actuel et l'installer à partir du fichier local:

curl -sLO https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i puppetlabs-release-precise.deb

ou télécharger dans /var/cache/apt/archives/ et installer à partir de là:

curl -sL -o/var/cache/apt/archives/puppetlabs-release-precise.deb https://apt.puppetlabs.com/puppetlabs-release-precise.deb && sudo dpkg -i /var/cache/apt/archives/puppetlabs-release-precise.deb

5voto

Diablotin Points 51

Si vous avez (ou installez) Ansible:

ansible -m apt -a deb=http://domain.com/path/to/package.deb localhost

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