How to add applications and GUI to the minimal Ubuntu?

I would like to build a custom Ubuntu from the minimal Ubuntu version. I plan to use the 11.10 version.

My question is, how to I add the basic necessary packages like networking, desktop, apt-get, and all the basic stuff?

I wish to add only the free applications.

Also, please specify how to connect to Internet using the command prompt and a GRPS mobile phone?


A minimal installation is (or starts out as) a command-line only system, but it does include networking and apt-get. You can use apt-get to install whatever else you need (or if you prefer aptitude, use apt-get to install aptitude and then use aptitude to install whatever else you want).

Since a minimal Ubuntu installation is command-line only, you cannot use the graphical help viewer from the console to get help. But you can access manual pages with the man command. To get help on the man command, run man man. (Scroll per line with Up and Down, or per page with the PgUp and PgDn or b and Spacebar keys; search by pressing / and quit by pressing q.)

A minimal Ubuntu system will automatically access the Internet if you plug it into a wired Ethernet network providing an Internet connection. If you use wireless, you'll probably have to configure that manually. (If you're able to use a wired connection until you have your GUI installed, that might save you some hassle.) This question might help with that. Or if you're using Ubuntu 11.04, you can easily install and use cnetworkmanager (a command-line frontend for configuring Network Manager). If you need to install a package to get networking working, you can manually retrieve the .deb file from the CD or from https://launchpad.net/ubuntu, then install it with sudo dpkg -i ... (replacing ... with the name of the .deb file you want to install).

With networking working (which might be the case out of the box), you should first update all the packages on your command-line system:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Then you can install a GUI. If you want a fully-featured GUI as though you'd installed regular Ubuntu, Xubuntu, Kubuntu, or Lubuntu, but without the applications that come with them, then you can install one of these packages with the --no-install-recommends flag:

sudo apt-get --no-install-recommends install ubuntu-desktop
sudo apt-get --no-install-recommends install xubuntu-desktop
sudo apt-get --no-install-recommends install kubuntu-desktop
sudo apt-get --no-install-recommends install lubuntu-desktop

If you want something more minimal, you can install the X server xorg (which must be present for any GUI on Ubuntu):

sudo apt-get install xorg

Then install a window manager That must be present for any GUI on Ubuntu to be useful, since otherwise application windows pop up and cannot be moved, hidden, reshown, switched between, resized, and so forth. An exception are "kiosk" systems running only one application fullscreen all the time. Lightweight options for a window manager include twm, fluxbox, and openbox, which you'd install with (one of) these commands:

sudo apt-get install twm
sudo apt-get install fluxbox
sudo apt-get install openbox

To start your GUI, run startx. Note that it may require substantial manual configuration, for it to be to your liking, depending on your needs.

If you want something more sophisticated than X11 and a simple window manager, but less sophisticated than the whole interface provided by a -desktop package, then you can try installing desktop environment packages themselves (like xfce4 for Xfce, the GUI provided in Xubuntu)...but your mileage may vary, as these packages do not always include all the necessary components to make your interface reasonably powerful and useful in Ubuntu.

Since Ubuntu Server systems, like minimal installations of Ubuntu, are GUIless, the information on the ServerGUI documentation page is partially relevant (though not completely--for example, the arguments against having a GUI probably do not apply to your situation).

By the way, links to manual pages in this answer are to the 12.04 LTS version, for maximal usefulness to others...but you can click the 11.10 link at the top of the page to bring up to 11.10 version.