Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm new to Ubuntu and have been away from Linux for a while. I'm used to Windows and find this tedious on Linux but I want to give it a shot.

My tendency is to prefer GUI tools over command-line, and Ubuntu is a distro that seems to cater to usability. I note it is based somewhat on apt-get which I've heard good things about.

What's the best practise for installing apps on Ubuntu? Should I prefer to try my options in this order?

  1. Synaptic Package Manger
  2. apt-get on the command line
  3. .tar.gz files (old school)
share|improve this question

migrated from Oct 7 '09 at 16:25

This question came from our site for professional and enthusiast programmers.

Synaptic will cover 95% of things most average everyday users will need to install.

Using apt-get from the shell will cover you if you need to install a whole bunch of packages easily and quickly, but synaptic and apt cover the same repositories, so it's the same stuff to install just harder to find.

Doing it "old school" is usually only required for smaller apps and things you need to compile yourself from source. This is the other 5%.

share|improve this answer
I think that 5% number is actually pretty high. I used to install lots of things the "old school" way, but I hven't really had to do that in the last 5 years or so. The Ubuntu apt repositories (after including universe and multiverse) have pretty much everything I've wanted to install. – Laurence Gonsalves Oct 7 '09 at 5:40
Maybe you're right, I guess I tend to use a lot of obscure software :) – snicker Oct 7 '09 at 5:53
Alot of obscure software, or alot of up-to-date software. Either would be a reason to not use apt – Matthew Scharley Oct 7 '09 at 6:19

In addition to

1) Synaptic Package Manger 2) apt-get on the command line 3) tar.gz files (old school)

there is 4) Applications - Add/Remove Programs option

which should be the first in your list, in my opinion :-)

share|improve this answer

use aptitude search to search the software you want to install

use apt-get to install the software you founded in previous step

share|improve this answer
This method works well... for beginners: sudo apt-get install <what you want to install> – nicorellius Apr 10 '10 at 22:51
Why if you use aptitude you should install via apt-get? – dag729 Jul 22 '10 at 15:35

To add my own two cents, I would look for .deb packages before tarballs as they are supported in Ubuntu the same way .msi installer files are supported in Windows. The main difference between the .deb in Ubuntu and .msi is that .msi has to contain all the dependent packages, or they have to already be installed, while Ubuntu will download (through Synaptic) needed dependencies and install them for you (with a prompt of course).

share|improve this answer

When Ubuntu 9.10 is out at the end of the month, this should become a lot more intuitive.

It's going to roll all of the GUI software installation features into a single interface, called the 'app store'.

share|improve this answer
Recently renamed to Software Store (probably renamed again since I heard that) – DilbertDave Oct 7 '09 at 11:57
That will be very welcome. The problem with synaptic is that it is a giant "vat" of things that one can install. There is no way to tell if an item in synaptic is a complete application or just a dependency. An app store, hopefully, will display complete applications and provide pointers to documentation for getting started. – Angelo Oct 7 '09 at 17:16

Note that if you want more current versions than are available in your distribution, you can uncomment the "backports" lines in your /etc/apt/sources.list. Penalty: somewhat less stability and security, since your specific combination of packages may not have been tested together.

share|improve this answer

You need a different last-ditch, just-before-old-school thing to try. Synaptec, aptitude and apt-get are all great tools but they use the same installation process: search (generally) remote repositories, check dependencies, download files, and install the package(s). The package manager they're all built upon is dpkg.

Sometimes you need to shoehorn a package in manually, in which case you'll download a .deb file and run this:

dpkg -i mypackage.deb

So that's your option 3. Naturally there are lots of options to help force a package to be installed despite missing dependencies, but they can be a pain.

Option 4 remains the old-school approach, with the caveat that they should always be installed under /usr/local, under /opt, or in a home directory -- since they aren't part of the package system, a later package install could overwrite them, so keep them out of the typical system directories if possible.

share|improve this answer

Installing through the repositories via Synaptic, aptitude and apt-get is recommended because if any packages in the repos get updated, then those updates will push through to your system.

Applications under constant development however will only have the latest stable build in the repos, and if you like more up-to-date versions (that include serious bug-fixes for example), the application website usually offers a downloadable .deb setup package.

Some applications only offer source code tar.gz downloads, but usually include instructions for compiling the source. As snicker said this is only for about 5% of them.

If you are looking for games specifically, has an installable package (.deb) that integrates your web browser into their site, allowing easy one-click installation off a game page. This is still in beta, and although advertised for Jaunty and up, it installed fine on my Intrepid system too.

share|improve this answer

Avoid the tar.gz method, but whenever you need it, make sure you don't overwrite any files written by apt-get (or synaptic). By default ./configure will cause make install to install files under /usr/local; you can be extra sure by creating a user 'local', running

chown -R local /usr/local

and using

sudo -u local make install

instead of running it as root.

I also install each package in its own directory, then symlink them into one place with something like stow, so I can keep them separate and have multiple versions installed.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .