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 wanted to try out a few Linux applications, so just installed Ubuntu as a VMware virtual machine within Windows.

VMware prompted me to install the VMware tools, and put a virtual CD-rom on the Ubuntu desktop, containing both an rpm and a tar.gz archive. Couldn't work out how to do anything with the rpm file, so I managed to extract the tar.gz archive into a folder on the desktop, and with the help of Google, worked out that I needed to open a Terminal window, cd into the appropriate directory, and use sudo to execute a Perl install script. And it worked fine.

I'm aware that it's possible to easily install a vast variety of applications via Applications > Add/Remove or other flavours of package manager. And that it's not possible for every app can be found here.

I used the command prompt quite a bit back in the DOS days, which is how I guessed the cd command. I also understand that such an operation needs elevated privileges, thus the sudo command.

My question is why the operation needs the use of a command prompt at all - why can I not double click on an install script file, and then be prompted to supply extra credentials if required? Or right-click and 'Run as root', or some other operation within the GUI?

Please don't take this as a "Why isn't Linux more like Windows" rant - I'm genuinely interested in any answers.

share|improve this question
Not an answer, but be aware that the linux command line is far more powerful than the DOS one. It's not easy to learn, but once you get used to it, it's very productive for certain types of things. – Peltier Sep 18 '09 at 18:47
up vote 6 down vote accepted

Simple answer

Because whoever wrote the package you downloaded didn't make such a convenient install script file in the first place.

More complicated answer

Ubuntu is designed around Debian-style (.deb) packages. Finding a convenient point-and-click package installer under Ubuntu for such packages is simple. Your issue is that you're trying to install a package that is not part of the built-in package manager.

The command line is probably the lowest common denominator for linux users. When writing a package, throwing in the extra scripting to ensure that it installs 'properly' on all linux distributions is non-trivial, especially with new forks and distros being developed regularly. A script that runs flawlessly on Ubuntu, for example, would probably crash and burn on Fedora or Slackware. Thus, distro-specific installers are usually left to the distro managers themselves, or volunteers willing to do the grunt work.

.tar.gz package scripts usually do little more than compile the package for you and throw it in an appropriate /bin directory (or wherever). Many can be installed using the common "./configure && make && make install" procedure, but not all of them. This would require reading the installation instructions for each package to ensure a proper install. Such human intervention makes automating the process difficult if not impossible.

Note that this installation procedure may or may not do anything else useful for you. You will very possibly end up with no uninstaller, nothing showing up as 'installed' in your package manager of choice, and not even have the appropriate desktop icons/application entries/file associations in your window manager of choice. It all depends on the package itself. Distro-specific packages usually try to account for these omissions.

Until such time as all open source developers can agree on a standard installation process for all software, this is probably the best you're gonna get. Either stick with distro-supported packages, or deal with a command line.

share|improve this answer
(+1) A most excellent explanation! – nagul Sep 18 '09 at 19:20

Because there are simply too many flavors of Linux. A command line flow is bringing it down to the barest basics where there is the least chances of a screw-up.

share|improve this answer

This isn't necessarily a problem with Ubuntu so much as it is a problem with VMWare choosing not to package its VMWare tools as a Debian/Ubuntu package. RPM is the Redhat/Fedora/CentOS/Mandriva format.

You can install Alien on Ubuntu to install RPM packages, but it's still going to involve the command line.

share|improve this answer

It is simply that a Linux distribution is composed of literally thousands of small components, each of which can be configured in hundreds of ways. Most of these components typically have alternatives that come with their own set of options. This explosion in the options available isn't easily handled in a GUI. This is one reason why you have to drop to the command-line every so often on a Linux system.

Realize that there are many flavours of linux, with very different package management systems. Ubuntu uses dpkg, and provides a GUI to manage packages created for this package management system.

It is difficult, if not impossible, to safely and intelligently handle all the variations that may be present in a .tar.gz file that contains installation directions. This is probably the reason there's no GUI for it - because it's hard to do this right.

share|improve this answer

I think the best use of the command line is the actual setup and maintaining of a *nix install itself. There is no GUI way to fix a bad display issue. But I can edit my display setup files via CLI in an instant.

Plus, there is no more surreal moment than the first time you have to use 'whoami' to figure out who you are actually logged in as and where.

share|improve this answer

You must log in to answer this question.

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