Is it possible to install a .deb from a URL?

Edit: I didn't see your previous statement about knowing you could wget so this is a bit awkward... I'll leave this here for anybody who wants to know how to do this. Additionally the previous version of my answer didn't work but this version (at the expense of being somewhat longer) does:

TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'http://path.to/my.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"

You just need to alter the URL at the beginning. This could be aliased or written as a bash function.

I realise there are technical and security issues surrounding this (you don't get automatic updates, can the source be trusted, etc), but on a purely can-I-do-it basis, this might work.


It is not possible without creating a temporary file. Normally you would do this like

### Does not work
wget --quiet --output-document=- http://example.com/path/to/package.deb | dpkg --install -

or maybe

### Does not work
dpkg --install <(wget --quiet --output-document=- http://example.com/path/to/package.deb)

but dpkg uses mmap to access the file so neither works. There is a bug report about this: #367297


The quickest method is like this. Click to start installing shutter .

URLs used for clicking on the name:

http://packages.ubuntu.com/shutter

... and for the click on the icon:

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

And yes you need Ubuntu Software Center to finish the installation of a .DEB. Otherwise you will have to execute the installation from Nautilus or command line.

Complete text used for this is for Ask Ubuntu only so you need to reformat this into an anchor:

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

More info can be found on the apturl wiki page:

  1. 1 Package:

    a href="apt:package"
    
  2. Bundling several packages:

    a href="apt:package1,package2,package3"
    
  3. Enabling repositories:

    apturl apt:freevial?section=universe
    

So if the software is not in a default enabled repository you should add a 'section=' to it. Otherwise you can not use this method and need the user to download it and install themselves.