ubuntu package installation


Ubuntu is an ancient African word meaning 'humanity to others'. It also means 'I am what I am because of who we all are'. The Ubuntu operating system brings the spirit of Ubuntu to the world of computers.


Package Installation and Updates
Apt and Package Basics

Most new users will use the Synaptic Package Manager to install packages. These instructions are for installing packages from the command-line Terminal. Terminal can be started:

Menu -> Applications -> Accessories -> Terminal
  • Install packages:
sudo apt-get install packagename
  • Example:
sudo apt-get install mpd sbackup
  • Remove packages:
sudo apt-get remove packagename

  • To remove all dependencies:
sudo apt-get autoremove
  • Example:
sudo apt-get remove mpd sbackup
  • Search for packages:
apt-cache search <keywords>

  • Examples:
apt-cache search Music MP3
apt-cache search "Text Editor"
  • Update the apt package database after adding/removing repositories:
sudo apt-get update
  • Upgrade packages:
sudo apt-get upgrade

  • Upgrade the entire distribution (e.g. from Lucid to Maverick):
sudo apt-get dist-upgrade

Installing .deb packages

Debian (.deb) packages are the packages that are used in Ubuntu. You can install any .deb package in your system. .deb files can generally be installed from your file manager (Nautilus) merely by clicking on them, since file associations with the default installer is already set in Ubuntu. These instructions are for those who wish to install packages from the command-line terminal (Terminal).

  • Install a downloaded Debian (Ubuntu) package (.deb):
sudo dpkg -i packagename.deb

  • Remove a Debian (Ubuntu) package (.deb):
sudo dpkg -r packagename
  • Reconfigure/Repair an installed Debian (Ubuntu) package (.deb):
sudo dpkg-reconfigure packagename
*Example:
sudo dpkg-reconfigure mpd


Handling (Tar/GZip) and (Tar/Bzip2) archives

(Tar/GZip) archives end in ".tar.gz" and (Tar/Bzip2) archives end in ".tar.bz2". Bzip2 is the newer, more efficient compression method. These files can generally be automatically extracted by merely clicking on them from your file manager (Nautilus), since file associations with the appropriate archival utilities are set by default in Ubuntu. These instructions are for those who wish to use the command line Terminal.

  • To extract:
tar xvf packagename.tar.gz
Note: tar is an application which can extract files from an archive, decompressing if necessary.

-x means extract.
-v means verbose (list what it is extracting).
-f specifies the file to use.
  • Decompressing ".gz" files
gunzip file.gz
  • Decompressing ".bz2" files
bunzip2 file.bz2
Note: You can also decompress a package first by using the command gunzip (for .gz) or bunzip2 (for .bz2), leaving the .tar file. You would then use tar to extract it.
  • To create a .gz archive:
tar cvfz packagename.tar.gz folder
  • To create a .bz2 archive:
tar cvfj packagename.tar.bz2 folder

Installing a package from source


  • Make sure you have all the necessary development tools (i.e. libraries, compilers, headers):
sudo apt-get install build-essential linux-headers-$(uname -r)
Note: "uname -r" lists the current kernel you are using
  • Extract the archive that contains the source files:
tar xvf sourcefilesarchive.tar.gz
  • Build the package using the package's script (in this case the configure script), compile the package (make), and install the compiled package into your system (make install):
cd /path/to/extracted/sourcefiles

./configure
sudo make
sudo make install
Note: typing ./ before a filename in the current folder allows the Linux shell to try and execute the file as an application even if it is not in the path (the set of folders which it searches when you type a command name). If you get a "permission denied" error, the file is not marked as being executable. To fix this:
sudo chmod +x filename
Example: In the above instructions, configure is the shell script to build the package from source. To be sure the configure script is executable:
sudo chmod +x configure
Create a .deb package from source files

If your build from source is successful, you can make a Debian (Ubuntu) package (.deb) for future use:

  • Install package tools:
sudo apt-get install checkinstall
  • Rebuild package using "checkinstall":
cd /path/to/extracted/package
./configure
sudo make
sudo checkinstall
  • Keep the resulting ".deb" file for future use. It can later be installed using:
sudo dpkg -i packagename.deb



Aptitude

Aptitude is a terminal-based package manager that can be used instead of apt-get. Aptitude marks packages that are automatically installed and removes them when no packages depend on them. This makes it easy to remove applications completely.
To use Aptitude, replace apt-get with aptitude in the command line. Example:

sudo aptitude install packagename
sudo aptitude remove packagename

sudo aptitude update
sudo aptitude upgrade
For an ncurses-based graphical user interface, type

sudo aptitude


Synaptic Package Manager

While "apt-get" and "aptitude" are fast ways of installing programs/packages, you can also use the Synaptic Package Manager (Menu -> System -> Administration -> Synaptic Manager), a GUI method for installing programs/packages. Most (but not all) programs/packages available with apt-get install will also be available from the Synaptic Package Manager. This is the preferred method for most desktop users. In this guide, when you see


sudo apt-get install package
you can simply search for package in Synaptic and install it that way.

Menu -> System -> Administration -> Synaptic Package Manager
  • Search for the name of the program/package. You can also search for a word in its description.
-> Mark for Installation -> Apply

  • The selected program(s) will be automatically installed, along with its dependencies.
Ubuntu Software Center (Add/Remove Programs)

Not all packages available from apt-get, aptitude, and Synaptic Package Manager are available in the Ubuntu Software Center. However, it is the easiest interface for new users of Ubuntu and directs them to preferred packages.

Menu -> Applications -> Ubuntu Software Center
  • Search for the sort of program you want to add. Example: type MP3 to see a list of mp3 software.
-> Mark for Installation -> Apply


  • The selected program(s) will be automatically installed.
Manual Updates

  • Manually, from Terminal (command line interface):

sudo apt-get update
sudo apt-get upgrade
or
  • Use Synaptic Package Manager:
Menu -> System -> Administration -> Synaptic Package Manager -> "Reload" then "Mark all upgrades"

If there are packages available for updating, you will be prompted whether to install them.

Automated Updates

  • Use Synaptic Package Manager:
Menu -> System -> Administration -> Synaptic Manager -> Settings -> Preferences -> General -> Reloading Outdated Package Information -> Automatic

Desktop Add-ons

There are many add-on icons, themes, wallpapers, 3-D effects, and other customizations available for the GNOME desktop.


Gnome Eye-Candy Resources

  • Gnome Look has wallpapers, splash screens, icons, and themes for windows managers (including Metacity and Compiz) and other applications.


Change Plymouth Splash Screen

This is the initial splash screen you see at bootup. Different Plymouth themes can be found by searching for plymouth-theme in a Package Manager. Install a new one and then:

sudo update-alternatives --config default.plymouth
sudo update-initramfs -u
and manually select the theme you wish to use.
Plymouth does not reliably work with nVidia drivers and during bootup a blank screen may result for several seconds.


Metacity


Metacity is the default desktop compositing manager in Gnome. It is lightweight, streamlined and does not have many configurable options, but has multiple themes available at Gnome Look.


Compiz Fusion

Compiz Fusion is available as a separate Windows Manager, to allow advanced desktop effects such as the rotating cube desktop. Many Ubuntu users choose to run Compiz, which is quite fast in Ubuntu. Install:

sudo apt-get install compiz compizconfig-settings-manager compiz-fusion-plugins-main compiz-fusion-plugins-extra emerald librsvg2-common
To change to Compiz as the Window Manager:

  • Select Compiz Configuration:
Menu -> System -> Preferences -> CompizConfig Settings Manager
Note: You must logout and log back in for the change to take effect.

Fusion Icon

Fusion Icon is a tray icon that allows you to easily switch between window managers, window decorators, and gives you quick access to the Compiz Settings Manager. This allows quick toggling of 3-D desktop effects (that may not be compatible with some applications).

sudo apt-get install fusion-icon
Menu -> Applications -> System Tools -> Compiz Fusion Icon
You can then easily access CompizConfig Settings Manager from the icon.


Rotate the Compiz Cube

Set the CompizConfig Settings Manager to enable the "Desktop Cube" and "Rotate Cube" and "Viewport Switcher" options. Click on the icon for each to customize settings. For example, to change the appearance of the cube, click on the Desktop Cube icon to access its settings. You can set the hotkey buttons for rotating the cube in the "Viewport Switcher" settings. Otherwise, hold down the Ctrl+Alt+Left mouse button and drag the mouse (or touchpad) the direction you want to rotate the cube.

Remember, the cube rotates between desktops. It's not a cube unless you have at least 4 desktops running. You will not get a cube if you are only using 2 desktops (you will get a "plate"). You can still rotate the sides of the plate, of course, but it will not be a cube. (Recent users from the Windows OS may have no experience with the concept of simultaneous desktops, but they are nice once you learn how to use them).

When running Compiz fusion as the Windows Manager, you must change the default number of desktops from within CompizConfig Settings Manger. To enable 4 desktops:

CompizConfig Settings Manager -> General -> General Options -> Desktop Size -> Horizontal Virtual Size -> 4
When you start an application, you can assign it to any one of the 4 desktops by right-clicking the upper left corner of the application window and choosing the "To Desktop..." option. Rotating the cube shows the different desktops. You can also go to a desktop using the taskbar icon which shows the 4 desktops.


Emerald

Emerald is the theme engine for Compiz Fusion. Multiple themes are available. (These themes originated from the Beryl project before it merged with Compiz to form Compiz Fusion.)
The Emerald Theme Manager for Compiz Fusion can be installed:

sudo apt-get install emerald

Google Desktop

Google Desktop for Linux is a proprietary suite of widgets and applications to give Google control over your computer and thereby allow you to use Google services. A .deb package can be downloaded and installed from Google Linux Downloads. For installation instructions, see Google Desktop for Linux Instructions.



gDesklets

gDesklets are similar to Windows widgets and Google gadgets and provide information such as weather, system resources, and news. For more information refer to this gdesklet installation tutorial. Install:

sudo apt-get install gdesklets

Dock applications


Avant Window Manager, Cairo Dock, gnome-do and Wbar are dock-like applications for Ubuntu Linux. A dock represents running programs as icons at the bottom of the screen (as is done on the Mac OS X desktop), instead of by toolbar panel segments (as is done in Windows and other Linux window managers). See this brief comparison of dock applications.


Avant Window Navigator

  • Avant Window Navigator requires that a desktop composition manager (such as Metacity, Compiz, Xcompmgr, KDE4 (Kubuntu), or xfwm4 (Xubuntu)) be installed and running.
  • Install and upgrade proprietary nVidia or ATI graphics drivers so that the compositing manager functions properly.
  • Install AWN:
sudo apt-get install avant-window-navigator awn-manager
(Note: If you are using Gnome (Ubuntu) and do not already have a compositing manager installed (such as Compiz), Metacity will be installed as part of the installation.)
  • Enable automatic startup of AWN at bootup:
  • Menu -> System -> Preferences -> Startup Applications -> Add...
avant-window-navigator
  • Select which applets should run from the dock menu by default:

  • Menu -> Applications -> Accessories -> Avant Window Navigator Manager
You can drag application icons onto the list, then activate or deactivate the applets from the list.

Cairo Dock

Cairo Dock can be used either with a desktop compositing manager (such as Metacity for Gnome, Compiz, or the KDE4 Window Manager) or without one. See the Ubuntu installation instructions for details. It is available from the repositories:


sudo apt-get install cairo-dock cairo-dock-plug-ins

Gnome Do

Gnome Do is a docking utility for Gnome. Install:

sudo apt-get install gnome-do
  • From the preferences pane of gnome-do select the Docky look and feel to get the dock (rather than the default Quicksilver-like) look and feel.

wbar


wbar is a quick-launch bar (not a dock) that has an appearance similar to Avant Window Manager and Cairo Dock. It is GTK (Gnome) based but can work in all desktop environments. It does not require a compositing manager to be installed and is therefore quicker and more suitable for low-end hardware systems. It is the default in the Google gOS desktop and is available as a .deb package from Google. Download and install (from the command-line Terminal):

wget http://wbar.googlecode.com/files/wbar_1.3.3_i386.deb
sudo dpkg -i wbar_1.3.3_i386.deb
  • Start wbar with custom start options (e.g. by pressing alt+F2). Here is an example:
wbar -isize 48 -j 1 -p bottom -balfa 40 -bpress -nanim 3 -z 2.5 -above-desk
Here is another example:
wbar -above-desk -pos bottom -isize 60 -nanim 1 -bpress -jumpf 0.0 -zoomf 1.5
For a full list of command-line startup options, see:

wbar --help

Tip: If you want the "wave" effect just increase the -nanim value. I like the icons to just pop up so I don't use it, but with 9 icons 5 there is a nice "wave" effect.

Obviously, you could create a menu item with the command line options (similar to the examples above), or a batch file that can be automatically started at system startup (as a cron event or startup session).

You can also change wbar startup options by editing the configuration file:

sudo gedit /usr/share/wbar/dot.wbar
See this example configuration file. However, not all options are able to be set from the configuration file and must be run from the command line. For more info see this wbar guide.


wbarconf


A simple wbar configuration utility can be downloaded as a .deb package and installed:

wget http://koti.kapsi.fi/~ighea/wbarconf/wbarconf_0.7.2-1_i386.deb
sudo dpkg -i wbarconf_0.7.2-1_i386.deb

Virtualization

Virtualization allows a second operating system (OS), such as Windows or OS X, to be run from within (K)Ubuntu. This requires extra RAM (because both (K)Ubuntu and the virtualized second OS require separate amounts of RAM) and a license for the second OS. If you wish to run a virtualized instance of Windows XP, for instance, you must have a license for Windows XP.


VirtualBox


VirtualBox is a fast and complete virtualization solution owned and maintained by Sun Microsystems. There is a free and fully open-source edition available under the GNU GPL license.

  • Install the open-source edition:
sudo apt-get install virtualbox-ose virtualbox-ose-source virtualbox-guest-additions
  • You can also add the QT-version (if using KDE/Kubuntu, for example):
sudo apt-get install virtualbox-ose-qt
  • Start VirtualBox:
Menu -> VirtualBox OSE PC virtualization solution
For usage instructions, see the End-user documentation. For information on installing Virtualbox in Windows so that Ubuntu can then be installed within in a virtual machine running in Windowswalk.


Proprietary versions of VirtualBox

A few additional features that are not yet in the OSE version, such as a USB device interface, are available in the proprietary version of VirtualBox. To install a proprietary edition of VirtualBox:


  • Add the security key:
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
echo "deb http://download.virtualbox.org/virtualbox/debian maverick non-free" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt-get update
  • Install:
sudo apt-get install virtualbox

VMWare


VMWare is a commercial virtualization platform that currently offers two free products: VMWare Player and VMWare Server (the latter with a free renewable yearly license). VMWare Player can play virtual appliances that have already been created, whereas VMWare Server (which has a broader range of features) allows the creation of virtual machines. In general, VMWare Server is recommended unless you only need to play an appliance. (Appliances will also run in VMWare Server). Users that wish to run servers (or processes) that need to be available to a network from within the virtual machine should use VMServer. If you wish to install a new OS within a virtual machine (other than in an appliance), you will need VMWare Server.


VMWare Player

Installation instructions are on the website, or at the Ubuntu community wiki. In brief, to install the free VMWare Player:

  • Install pre-requisites:

sudo apt-get install build-essential linux-headers-$(uname -r)
  • Get the binary package/installation script, give it executable privileges, then run the installation script:
wget http://download3.vmware.com/software/vmplayer/VMware-Player-2.5.3-185404.i386.bundle
chmod +x VMware-Player-2.5.3-185404.i386.bundle
sudo ./VMware-Player-2.5.3-185404.i386.bundle
  • Run:
Menu -> Applications -> System Tools -> VMWare Player

Create an Ubuntu Appliance


While any edition of Ubuntu can be installed in a virtual machine, the minimal installation option (F4) of the Ubuntu Server creates a highly-efficient edition (previously known as JeOS) optimised for use within a virtual appliance (which can then be played using VMWare Player or other virtual machine client).

A virtual appliance for VMWare Player (using this JeOS minimal server) can also be built using vmbuilder.


VMWare Server

  • Install pre-requisites:
sudo apt-get install build-essential linux-headers-$(uname -r)
  • Download the server source files for your architecture (32-bit or 64-bit) from the VMWare Server website and retrieve your license key by email.

  • Extract the files, give execution privileges to the install script, and run the install script:
tar xvf VMware-server-2.0.1-156745.i386.tar.gz
cd vmware-server-distrib
chmod +x vmware-install.pl
sudo ./vmware-install.pl

VMWare Package
VMWare Appliances (that include an Ubuntu/Debian OS) can be created using VMWare Server and the VMWare Package utility. These appliances can then be deployed to users who can play them using VMWare Player. Install:

sudo apt-get install vmware-package

Keyboard errors in VMware guest

After installing VMWare 6.5, and installing a guest OS, the Function, arrow and Del/End/etc keys do not function. This is a bug with VMWare´s code.
Add this line to ~/.vmware/config (create file if necessary) to fix this issue:


xkeymap.nokeycodeMap = true

KVM

KVM is the free open source virtualization solution implemented as a Linux kernel module (in the recent kernels) for computers whose processors contain virtualization extensions (Intel VT or AMD-V). See the Ubuntu installation instructions. Install:

sudo apt-get install kvm

Qemu (without KVM)


If your computer does not have the virtualization extensions, you can still run the QEMU virtualization platform. See this Ubuntu community documentation. It can be installed from source code.


Xen

Xen is an efficient open-source virtualization ("hypervisor") platform (which includes a merge with QEMU). It is the basis for the Amazon EC2 Cloud and is generally intended for use on a server (or on "baremetal" systems, i.e. no OS yet installed). It is free open source under a GPL license. The latest desktop (and installation instructions) is available from the website. (A commercial version is also offered by Citrix.) Implementation in Ubuntu requires some modification, currently. For more info, see the Ubuntu community documentation. Install:

sudo apt-get install xen-hypervisor xen-docs convirt

A Xen virtual machine host can also be installed automatically with certain 64-bit CPUs, using the 64-bit Ubuntu Server LiveCD. (A (K)Ubuntu desktop can then later be added -- see Ubuntu server).


Virtual Machine Manager


Virtual Machine Manager is an application to allow viewing of all instances of virtual machines on your system. It includes a secure implementation of VNC. This and other virtual management tools are available as an integrated package in (K)Ubuntu. Install:

sudo apt-get install ubuntu-virt-mgmt

Crossover for Linux

Codeweavers' Crossover Office for Linux is a subscription-based commercial package that allows many Windows programs to be run on Ubuntu without the need for a Microsoft OS license or a complete virtualization system. See the website for more info. Codeweavers releases older versions of this product into the free package Wine.


Wine


Wine is a free open-source package that is similar to (and implements many elements of) CrossOver for Linux. Like CrossOver for Linux, no Microsoft license or virtualization platform is required to run Windows programs. See these instructions for installing the latest version of Wine.

sudo apt-get install wine
Also consider installing Microsoft's TrueType fonts:

sudo apt-get install msttcorefonts

PlayOnLinux


PlayOnLinux is a Wine frontend which simplifies the installation and launch of many Windows programs, particularly games. Install:

sudo apt-get install playonlinux

Internet Explorer 7
Internet Explorer 7 can be installed with PlayOnLinux. Select "Internet Explorer 7" from the "Internet" section of PlayonLinux.


Internet Explorer 6 & 7


Internet Explorer 6 & 7 can function under Wine, albeit imperfectly. For most purposes, Firefox can be used (with the User Agent Switcher plugin) to mimic Internet Explorer.

  • Make sure you have Wine and cabextract packages:
sudo apt-get install wine cabextract
wget http://winezeug.googlecode.com/svn/trunk/winetricks

  • Install with winetricks:
sudo ./winetricks ie6
sudo ./winetricks ie7
Note: Winetricks is automatically installed with the current version of Wine.


Transgaming Cedega

Cedega is a commercial application (similar to CrossOver Office and Wine), for installing and running some Windows applications, specifically games, without the need for virtualization or a Microsoft license. It provides 3D support, software acceleration support, and a high level of DirectX support. Installation instructions are found on the website.



Mono

Mono is a free open source project sponsored by Novell to allow .NET programs to function in Linux ((K)Ubuntu) and Mac OS X. . Several GNOME applications (like Tomboy, F-Spot, and Banshee) require mono to be installed, so mono may already be installed by default on your system. The most recent version is available here.

sudo apt-get install mono-2.0-devel

Moonlight


DosBox

DOSBox is a DOS-emulator that emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, and a SoundBlaster/Gravis Ultra Sound card (for sound compatibility with older games). You can "re-live" classic games that otherwise won't run on newer computers.

sudo apt-get install dosbox

ScummVM

ScummVM allows certain classic graphical point-and-click adventure games to run (provided you already have their data files). ScummVM replaces the executables shipped with the games, allowing play on Linux operating systems (for which they were not originally designed).


sudo apt-get install scummvm

Edutainment Applications

There are many superb applications that can be installed with a single click.

Menu -> Applications -> Ubuntu Software Center-> Education

Below are a few examples that can be installed from this menu:

  • Celestia -- a free planetarium and space simulator for the desktop
  • Stellarium -- an astounding planetarium for the desktop
  • K3DSurf -- a program for modeling 3,4,5, and 6 dimensional models.
  • Bibletime-- a Bible study tool using the QT platform
  • Zekr -- an Islamic Quran study tool (available in Utilities)
  • Oregano -- a program for electrical engineering schematics

  • RlPlot -- a high quality graph generator
  • Mnemosyne -- a flash-card tool
  • Gramps -- map your family-tree and co-operate with genealogy projects

Google Earth

Google Earth gives you an annotated eagle's eye view of our planet. This is a free proprietary package (you must accept the license to use this package).


sudo apt-get install googleearth-package
make-googleearth-package --force
Doubleclick on the resulting .deb file.
-- or --
To install the latest Linux binary, download and save the GoogleEarthLinux.bin package from Google Earth downloads.
Then install:

chmod +x GoogleEarthLinux.bin
./GoogleEarthLinux.bin
Run:


Menu -> Applications -> Internet -> Google Earth 3D planet viewer
You should turn off the Google Earth -> View -> Atmosphere setting, or you might see clouds everywhere and the ground won't show up.


Troubleshooting


If Google Earth opens, shows the splash screen, and then crashes, you’re probably experiencing a common issue. Running ~/google-earth/googleearth in a terminal will show this error:
./googleearth-bin: relocation error: /usr/lib/i686/cmov/libssl.so.0.9.8: symbol BIO_test_flags, version OPENSSL_0.9.8 not defined in file libcrypto.so.0.9.8 with link time reference

To fix this, browse to the folder you installed Google Earth into. By default this will be google-earth in your home folder. Find the file libcrypto.so.0.9.8 and rename it to something else, like libcrypto.so.0.9.8.bak. Google Earth should now start correctly.

cd ~/google-earth
sudo mv libcrypto.so.0.9.8 libcrypto.so.0.9.8.bak
sudo ln -s /usr/lib/libcrypto.so.0.9.8 ~/google-earth/libcrypto.so.0.9.8
(Note: You can also specify /home/user/google-earth instead of ~/google-earth ).
For other issues, see the Ubuntu help pages on Google Earth.


Uninstall Google Earth


To uninstall run the uninstall shell script located in the /home/user/google-earth folder (or whichever folder you installed google-earth into).


FBReader (e-book reader)

FBReader is a free cross-platform e-book reader, based on the GTK platform. Install:

sudo apt-get install fbreader


Calibre (e-book reader)

Calibre is an e-book reader and library manager. See these installation instructions.


Games

There are some phenomenal games for (K)Ubuntu Linux.

There are hundreds of free, open-source games available in (K)Ubuntu. Most (including the KDE Games collection and the Gnome Games collection) can be accessed through the Games section of your Package Manager.

Examples are:


Wing Commander Privateer

The Linux version of this free version of Wing Commander can be downloaded as a binary here.



Vdrift

Vdrift is a free open source 3-D racing game, similar to Need for Speed, with realistic physics, multiple drift tracks, and multiplayer games. Support for joysticks, mice and keyboard is included. A binary package for Linux is available from the website.


Action

Incredible action games (including those from the Top 25) are available in Ubuntu. Many can be installed using:

Menu -> Applications -> Ubuntu Software Center -> Games
Examples are:

  • Alien Arena -- a multi-player first person shooter action game with free servers. (Package: alien-arena) (Server: alien-arena-server)
  • OpenArena -- an open-source multi-player first person shooter action game, with free servers. (Package: openarena) (Server: openarena-server)
  • Tremulous -- a Halo-like multiplayer first person shooter action game. The repositories have the current version. (Package: tremulous) (Server: tremulous-server)
  • Sauerbraten - a multiplayer graphics-rich first person shooter game evolved from Cube. (Package: sauerbraten) (Server: sauerbraten-server)
  • Nexuiz -- an open-source multi-player first person shooter game with free servers and tournaments. (Package: nexuiz) (Server: nexuiz-server) A 35 map add-on community pack is also available here. To install it, extract the map pack to /home/username/.nexuiz/data (or ~/.nexuiz/data ).

Note: Many of these games require advanced graphics. Make sure you have the necessary hardware drivers activated.


UrbanTerror

UrbanTerror is a multiplayer first person shooter action game (with an integrated server). It uses the open-source quake 3 engine and features many real weapons and free-to-use servers for multi-player functionality. "Not recommended for adolescents in Germany." Download and install the binary using these instructions.


Doom


Skulltag, ZDoom, and PrBoom (Freedoom) are versions of Doom2. For Doom3, see Doom3 on Ubuntu.


Skulltag

Skulltag is an updated version of ZDoom that includes network play. See the website for simple (K)Ubuntu installation instructions. (You can use the Freedoom Iwad (see below) if you don't have an original Doom2.wad.) Note: Most of the modules require dependencies from the Universe repositories. Make sure you have the Universe repositories enabled (Synaptic Package Manager -> Settings -> Repositories -> Edit Software Sources -> Community-maintained Open Source software (universe) -> (ticked)).


  • Install prerequisites:
sudo apt-get install timidity timidity-interfaces-extra
  • Then add the skulltag repositories, update, and install Skulltag and DoomSeeker (the Skulltag online server utility):
echo "deb http://skulltag.net/download/files/release/deb/ jaunty multiverse" | sudo tee /etc/apt/sources.list.d/skulltag.list
sudo apt-get update
sudo apt-get install skulltag doomseeker-skulltag
  • If you don't have a doom2.wad, tnt.wad, or plutonia.wad already, you can copy the freedoom.wad to your ~/.skulltag folder:
cd ~/.skulltag
wget http://mirror.cinquix.com/pub/savannah/freedoom/freedoom-iwad/freedoom-iwad-0.6.4.zip
unzip freedoom-iwad-0.6.4.zip
cp freedoom*/doom2.wad .
rm freedoom-iwad-0.6.4.zip
  • If you need more help (regarding the Skulltag-server, firewalls, and port forwarding with Skulltag, for example).

  • Skulltag runs on any platform, with any graphics, and on almost any computer. There are thousands of add-ons, maps, and gameplay modes, giving a nearly endless variety of gameplay. The interface makes obtaining and playing the modifications very easy. This is my favorite game of all time (and I have been playing it for years).

PrBoom

PrBoom is a free open source port of the original first person shooter action game, Doom2. It does not have the advanced options of ZDoom. Freedoom is a free Iwad (set of maps) to replace the original Doom2.wad.

sudo apt-get install prboom freedoom timidity timidity-interfaces-extra
There are thousands of extra maps (Wads) available for this game. It is easiest to keep a directory for your wads in your home directory:


mkdir /home/user/wads
or alternatively, use the /usr/share/games/doom folder, giving universal privileges to the folder:
chmod -R 777 /usr/share/games/doom
Place your doom2.wad, tnt.wad, or plutonia.wad (from your original game) into this folder. If you don't have one, you can copy the Freedom version of doom2.wad from /usr/share/games/freedoom into this folder. Place any new .wad's you have downloaded from the Internet into this folder as well. Then run the game using both the original iwad map as well as your new .wad map (you will only see the new map).

prboom -iwad /home/user/wads/doom2.wad -file /home/user/wads/new_wad.wad

Note: Only doom2.wad, tnt.wad, or plutonia.wad can be used as an iwad. You must have one of these in addition to any new wad you wish to use. When in doubt, use doom2.wad.

Note: this game can also be installed using Menu -> Applications -> Ubuntu Software Center -> Games as Freedoom, but you must also install timidity and timidity-interfaces-extra.

MMORPG


Spring


The Spring Project is a scripting engine platform to develop and play free multiplayer games such as Star Wars Imperial Winter and Complete Annihilation. Install:

sudo apt-get install spring

Regnum Online

Regnum Online MMPORG -- see basic installation instructions and the help forum as needed.



PlaneShift

PlaneShift is a free full-immersion online fantasy game (MMPORG). Client downloads and patches are available here.

  • Make the downloaded binary installation file executable:
cd /directory_where_downloaded
chmod +x PlaneShift-v0.5.4-x64.bin

  • Run the executable binary as root (this must be done from the command line Terminal):
sudo ./PlaneShift-v0.5.4-x64.bin
  • Follow the instructions for installation. When prompted whether to manually set permissions, answer "no."
  • During installation, most users have recommended installing this game to your /home directory as a single user installation, instead of to /opt for all users. This avoids permissions problems. I was able to install to /opt, but it takes some effort.
  • Make sure your user belongs to the games group:
Menu -> System -> Administration -> Users and Groups -> user -> Manage Groups -> games -> Properties -> Group Members -> user (ticked) -> OK
Menu -> Applications -> Lost & Found -> Client and Setup
To run it from the menu, I had to edit the menu entries by checking the box: "Run in terminal."
Alternatively, run it from the command-line Terminal:


sudo /opt/PlaneShift/pssetup
sudo /opt/PlaneShift/psclient
Notes: This game ran very slowly for me on a 32-bit installation with a DSL connection and I gave up. The 64-bit installation worked better.


Dolphin (Wii emulator)

The Dolphin emulator is an open-source cross-platform Wii emulator that allows many Wii game disks to be run on many operating systems. (Whether the Wii Netflix disk will run under the Dolphin emulator has not yet been established.) (The Dolphin-emulator has no relationship to the KDE Dolphin file manager). Installation instructions are here.


Internet Applications


Internet applications enable you to make full use of your Internet connection. Web browsers, Email clients, Instant Messengers, and more are included in this category.


Web Browsers


Mozilla Firefox

Mozilla Firefox is the ubiquitous web browser. Based on open source components, it is trademarked and cannot be altered or re-distributed with any change that involves the name or trademarks.
Install the current version:

sudo apt-get install firefox

Firefox Plug-ins



Adblock Plus plug-in (block ads in a web page)
Adblock Plus blocks ads that appear in web pages. You can subscribe to a free filter service, and can add ads to block with a single click.

sudo apt-get install xul-ext-adblock-plus
  • You can also add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> AdBlock Plus. (This method will also ensure that automatic updates are installed by Firefox.)


Noscript plug-in (controls scripts)
The Noscript plugin is considered one of the most important security measures for browsing the Internet. Most viruses and trojans gain access to computers from the Internet through scripts. This plugin allows you to choose which scripts to allow and blocks the rest.

  • Add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Noscript. (This method will also ensure that automatic updates are installed by Firefox.)


User Agent Switcher plug-in for Firefox
The User Agent Switcher plugin allows a browser to masquerade as another browser, allowing (most of the time) browser-specific content to be displayed.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> User Agent Switcher. (This method will also ensure that automatic updates are installed by Firefox.)


Video DownloadHelper plug-in for Firefox
The Video DownloadHelper plugin allows the download of videos (including Flash videos) from sites like YouTube.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Video DownloadHelper. (This method will also ensure that automatic updates are installed by Firefox.)


Unplug Download Management
The UnPlug add-on lets you save video and audio which is embedded on a webpage.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Browse All Add-ons. (This method will also ensure that automatic updates are installed by Firefox.)


Java Runtime Environment (JRE) for Firefox plug-in
This package also installs the Java Runtime Environment. (JRE is also installed when OpenOffice or ubuntu-restricted-extras is installed.)

sudo apt-get install sun-java6-jre sun-java6-plugin
Note: You must accept the license to use this product.


Adobe Acrobat Reader for Firefox Plug-in

This plugin is available from the Medibuntu repository. It allows you to view Adobe Acrobat files within the Firefox browser.

deb http://packages.medibuntu.org/ maverick free non-free
  • Install:
sudo apt-get install acroread mozilla-acroread acroread-plugins acroread-fonts

Adobe Flash Player for Firefox Plug-in
To install the official Adobe Flash plugin (Flash 10) for Firefox:


sudo apt-get install adobe-flashplugin

Gnash Plug-in (Open source Flash Player replacement)
Gnash is available in a 64-bit version as well as a 32-bit version. It is the open source replacement for Adobe Flashplayer.

sudo apt-get install gnash
After installing, change your web browser's Preferences -> Applications so that SWF and SPL files use Gnash.



VLC plug-in for Firefox
This package allows the popular VLC player to play media within the Firefox browser.

sudo apt-get install mozilla-plugin-vlc

Gecko MediaPlayer Plug-in for Firefox
Gecko MediaPlayer is a browser plugin for all Gecko-based browsers (Firefox, SeaMonkey, IceApe, Opera) that allows Mplayer to play multimedia within the browser. Install:

sudo apt-get install gecko-mediaplayer

An alternative is to use the mplayer plugin for Firefox. Install:

sudo apt-get install mozilla-mplayer

Kaffeine Plug-in for Firefox
This package allows the Kaffeine media player (often used in KDE-based desktops) to play multimedia within the Firefox browser.

sudo apt-get install kaffeine-mozilla

Helix player plug-in for Firefox

This package installs the Helix player (the open source player that plays Real Player content in Linux) as well as the plugin that plays RealMedia within the Firefox browser.

sudo apt-get install mozilla-helix-player

Moonlight plugin for Firefox
Moonlight is part of the Novell Mono project that is an open source implementation of Silverlight (the Microsoft multimedia presentation platform). It is based on FFMpeg. It is made to work best with the Firefox 3 web browser, as a plugin (but also works with other mozilla browsers). Version 1 is available as a plugin for mozilla-based browsers:

sudo apt-get install moonlight-plugin-mozilla

Version 2 is available here. The Moonlight 2.99 plugin (compatible with most Silverlight 3/4 content) is here.
  • Netflix under Moonlight
Netflix streaming requires both the capabilities of Silverlight 2.0 and Digital Rights Management modules. Although the current version of Moonlight 2.0 will run most Silverlight content (including Netflix content), Netflix has not yet released Digital Rights Management modules for Linux. Please contact Netflix directly for further information or sign a petition.

FireFTP for Firefox

FireFTP is a Firefox extension for FTP transfers.


Firefox Widgets

Turn off browser bar drop-down list in Firefox

This is the most frequently asked problem regarding Firefox. To turn off the location browser bar drop-down list (and therefore not show your browsing history):


Firefox -> about:config (in the location browser bar) -> browser.urlbar.maxRichResults -> right-click -> Modify -> set value to 0

IceCat


IceCat is Firefox distributed without the Mozilla trademark restrictions. It is endorsed by the Debian project (on which Ubuntu is based). It is formerly known as IceWeasel and is also known as IceApe Browser.
Install the current version:

sudo apt-get install iceape-browser

SeaMonkey

SeaMonkey is an open-source integrated internet application suite (including web browser, IM (IRC) client, Email client, RSS/News reader, and web development tools). It is based on the same components as the Mozilla products and shares the trademark and branding restrictions. There are many plugins, similar to those for Thunderbird and Firefox. Install:

sudo apt-get install seamonkey


IceApe

IceApe is an open-source integrated internet application suite (including web browser, IM (IRC) client, Email client, RSS/News reader, and web development tools). It is based on the same components as the Mozilla product SeaMonkey, but has no restrictive trademark licensing, and is endorsed by the Debian project (on which Ubuntu is based).
Install the current version:

sudo apt-get install iceape

Opera

Opera is a proprietary browser and internet suite (currently free on PCs) also used in some mobile devices and gaming consoles. It includes email, an address book, IRC chat, integrated BitTorrent, and webfeeds. A limited number of plugins are also available.


sudo apt-get install opera

Chromium

Chromium is the open-source browser on which the Google Chrome browser is based. Install:

sudo apt-get install chromium-browser
  • Start Chromium:
Menu -> Applications -> Internet -> Chromium Web Browser

Google Chrome

Google Chrome is Google's web browser. Based on the Chromium browser, Google adds the Google name and logo, an auto-updater system called GoogleUpdate, RLZ, and other Google add-ons. Download and install it here.


Download Managers



Downloader for X

Downloader for X is a GTK-based free-standing download manager utility. Still included in current repositories, the project appears dead. It is open-source, but does not have a GPL license.

sudo apt-get install d4x

Email Clients


Evolution


Evolution is the default Gnome-based email client in Ubuntu. If not installed:

sudo apt-get install evolution

Evolution and PGP

Email messages can be encrypted in PGP and sent by email using Evolution. See this tutorial for an example how to configure it.



Thunderbird

Mozilla Thunderbird is a licensed and trademarked free open-source email client that is compatible with Firefox. Install:

sudo apt-get install thunderbird

Lightning calendar extension

Lightning is the calendar extension for Thunderbird (with functionality similar to the stand-alone application Sunbird). It is currently available in a 32-bit version only. (If using a 64-bit OS, install the Sunbird calendar client instead.) Install by clicking on the Linux download at the website.



Enigmail

Enigmail is an add-on to Thunderbird that allows you to easily encrypt your email using OpenPGP, which is included in the kernel by default. It also allows you to create and manage the encryption keys. Install:

sudo apt-get install enigmail

New Mail Icon for Thunderbird


"New Mail Icon" is an experimental tray add-on which notifes you of new mail. Download from the website. Install:

Thunderbird -> Tools -> Add-ons -> Install -> select downloaded file

KMail


KMail (Kontact Mail) is the default email client included with Kontact in KDE (Kubuntu). Kontact includes email, an address book, a calendar, reminders, pop-up notes, a link to the Akregator News/RSS reader, time-tracking, and more. Install:

sudo apt-get install kontact

Newsreaders


Akregator


Akregator is the default news/RSS reader included with Kubuntu (KDE). Usage instructions are found in the Handbook. Install:

sudo apt-get install akregator

RSSOwl

RSSOwl is a Java-based RSS | RDF | Atom Newsfeed Reader.


Install java and in order to use the internal browser, install the packages xulrunner and firefox:

sudo apt-get install sun-java6-jre firefox xulrunner
Change to your "opt" directory:

cd /opt
Download the zip-archive into your opt directory:

sudo wget http://downloads.sourceforge.net/rssowl/rssowl-2.0.6.linux.zip
Extract the archive and remove the extracted file:

sudo unzip ./rssowl-2.0.6.linux.zip && sudo rm ./rssowl-2.0.6.linux.zip

Make a startscript:

sudo gedit /usr/bin/runRSSOwl.sh
add the following lines to your startscript file /usr/bin/runRSSOwl.sh and save it afterwards.

#!/bin/bash
    cd /opt/rssowl
    ./RSSOwl
Make the startscript executable:

sudo chmod u+x /usr/bin/runRSSOwl.sh
To start RSSOwl:

runRSSOwl.sh


Instant Messengers


Empathy

Empathy is an open source IM application. It is the default in the Ubuntu (Gnome) desktop. You can access multiple services with it. If not already installed, you can install it:

sudo apt-get install empathy

Pidgin


Pidgin is an open source IM application. It is the previous default in the Ubuntu (Gnome) desktop. You can access multiple services with it.

sudo apt-get install pidgin

Kopete

Kopete is the default Instant Messenger application for Kubuntu. You can access multiple services with it. Install:

sudo apt-get install kopete

Kopete Styles


Additional styles for Kopete are available from KDE-look. Install from:

Kopete -> Settings -> Configure -> Chat Window -> Style -> Get New...


GoogleTalk on Kopete

Kopete can be configured to work with GoogleTalk Instant Messaging (but not VOIP) using the Jabber protocol.
See these GoogleTalk instructions.


Konversation (IRC client)


Konversation is the default Kubuntu Internet Relay Chat (IRC) client. It functions similar to the venerable mIRC. "A little less action and a little more Konversation." -- Elves Install:

sudo apt-get install konversation

aMSN

aMSN is an MSN Messenger utility that functions like the original client. It is alternative to Pidgin for MSN users. Install it:

sudo apt-get install amsn

To enable Drag-and-Drop capabilities to aMSN for easy file transfer see Ubuntu Geek.


Emesene

Emesene is an MSN messenger client that uses a simplified interface similar to the original client. It is alternative to Pidgin for MSN users. Install it:

sudo apt-get install emesene


FTP Clients

You might wish to use a dedicated FTP client instead of the one in your browser.


Filezilla

Filezilla is the ubiquitous free open-source FTP client and server for all platforms.


sudo apt-get install filezilla

Filesharing / P2P

Do not share copyrighted material or content that is otherwise illegal to share.


Transmission (BitTorrent Client)

Transmission is the GTK-based default BitTorrent client in Ubuntu (Gnome).


sudo apt-get install transmission

KTorrent

KTorrent is the default BitTorrent client in Kubuntu. Install:

sudo apt-get install ktorrent
Be sure to have your firewall ports open (by default 6881 and 4444).


Azureus


Azureus is a Java-based BitTorrent client.

sudo apt-get install azureus

QTorrent

QTorrent is a PyQT-based BitTorrent Client that is supposed to be very fast.

QTorrent


Apollon (P2P Filesharing)


Apollon is an older BitTorrent client oriented towards KDE. It uses plugins for compatibility with multiple networks.

sudo apt-get install apollon gift

MLDonkey (P2P eMule/eDonkey2000)

MLDonkey is a P2P file sharing program (and network) that is able to use different network protocols. To install the MLDonkey core server, follow these instructions.


MLDonkey GUI frontends


  • Install the Gnome GUI frontend for MLDonkey:
sudo apt-get install mldonkey-gui
sudo apt-get install kmldonkey

Videoconferencing and VOIP


Videoconferencing and voice over Internet (VOIP) applications are merging into integrated applications. Most of these applications now allow placing calls to non-Internet based telephones for a small fee.


Ekiga

Formerly known as Gnomemeeting, Ekiga is a SIP compliant fully functional open source integrated VOIP and videoconferencing program.

sudo apt-get install ekiga

Skype


Skype is a proprietary integrated VOIP and video conferencing program similar to Ekiga.

  • Install pre-requisites:
sudo apt-get install libqt4-dbus libqt4-network libqt4-xml
  • To get the most recent version, download and install the 32-bit version:
wget -O skype-ubuntu-current_i386.deb http://www.skype.com/go/getskype-linux-beta-ubuntu-32
sudo dpkg -i skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb

How to install Skype on a 64-bit system
The current version of Skype for 64-bit systems is a masqueraded 32-bit module. To use on a 64-bit system you might still need to install the needed packages:


sudo apt-get install ia32-libs lib32asound2 libqt4-core libqt4-gui
  • Then download and install the current Skype .deb package from the Skype website:
wget -O skype_ubuntu-current_amd64.deb http://www.skype.com/go/getskype-linux-beta-ubuntu-64
sudo dpkg -i skype-ubuntu-current_amd64.deb
sudo rm skype-ubuntu-current_amd64.deb
  • If the 64-bit version doesn't work for you, use the 32-bit version:
wget -O skype-ubuntu-current_i386.deb http://www.skype.com/go/getskype-linux-beta-ubuntu-32
sudo dpkg -i --force-architecture skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb

Installing Skype repository

It is possible to install Skype by adding the repository and installing from there. This has an advantage of maintaining updates automatically.


  • Install the respository security key. (This requires an open port 11371 in your firewall for the keyserver.)
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 0xd66b746e
  • Add the Skype repository, update, and install Skype:
echo "deb http://download.skype.com/linux/repos/debian/ stable non-free" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt-get update
sudo apt-get install skype

Wengophone

Wengophone is an integrated VOIP and videoconferencing client available on many platforms. Wengophone was initially an open-source GPL-licensed package ('Wengophone Classic'). Both the Classic version (available as a .deb file) and the current proprietary binary version are available from the website. Wengophone Classic has now been rebranded as QuteCom, however. To install the current version as an Ubuntu/Kubuntu package, see these instructions.


  • Download and install the older Wengophone Classic version (.deb package):
wget http://download.wengo.com/wengophone/rc/wengophone-0.958m-1.i386.deb
dpkg -i --force-architecture wengophone-0.958m-1.i386.deb

Gizmo5

Gizmo5 is an Internet soft-phone application, similar to Skype, that uses the SIP protocol. Install (.deb package):

wget http://download.gizmo5.com/GizmoDownload/gizmo-project_3.1.0.79_libstdc++6_i386.deb
dpkg -i --force-architecture gizmo-project_3.1.0.79_libstdc++6_i386.deb

Asterisk VOIP PBX system


Asterisk is an enterprise-grade, free open source PBX and telephony system for VOIP.

sudo apt-get install asterisk

Kiax

Kiax is an LGPL-licensed open source IAX (Inter-Asterisk eXchange) application. It is used for making VoIP calls from an Asterisk PBX. The current version must be installed from source files. See the website for download and installation instructions, or see this Ubuntu Launchpad site.



OpenSIPS / OpenSER (SIP server)

OpenSIPS is an open-source SIP server that allows connections to be made through the Internet for VoIP, IM, and other communications protocols. While there are many public SIP servers, these are subject to spoofing and other "impersonation" problems. A company may wish to host its own SIP server to avoid the problems inherent in public services whose trustworthiness can not be determined. OpenSIPS is the successor to OpenSER (which is the version in the repositories). Install OpenSER 1.3.2 from the repositories:


sudo apt-get install openser
Alternately, the newest version of OpenSIPS can be downloaded as a .deb package from the website and installed. Installation and usage instructions are on the website.


Web meetings

Web meeting software allows video conferencing among many clients, with one server as host.


BigBlueButton

BigBlueButton is a free open source chat/video/audio and desktop sharing platform similar to GoToMeeting, WebEx, DimDim and similar products. Developed by GoogleCode, it utilises all open-source modules. A Moodle plugin is also available. See these installation instructions

WebHuddle

WebHuddle is a free, open source Java-based browser client (and server) for web meetings. To install the server, first install pre-requisites, including Java, JBOSS Application Server, and xvfb.

sudo apt-get sun-java6-jre jbossas4 xvfb

Privacy



PGP (Message Encryption)

PGP (OpenPGP and GnuPGP) is a tool to encrypt your messages (such as email) to be unlocked only by someone who has a key to unlock it.


Seahorse

Seahorse is the GUI for Gnome to manage the key pairs and other options of GnuPGP. It can also manage your SSH keys. For more info see this tutorial. Run:


Menu -> Applications -> Accessories --> Passwords and Encryption Keys

Tor (Network Privacy)

Tor is a project to allow privacy while using the Internet and limit usage tracking (by masking your IP address).


  • You will also need to install privoxy:
sudo apt-get install privoxy
  • Install Tor by following the instructions here. Note that the instructions require port 11371 on your firewall to be open to use the gpg keyserver (and download the key for the debian package). Then see the Tor installation guide for further details.
  • Edit configuration files.
Edit the privoxy configuration file:

sudo nano /etc/privoxy/config
Add the line
forward-socks4a / localhost:9050 .
restart Privoxy:
sudo /etc/init.d/privoxy restart
Edit the Tor configuration file:
sudo nano /etc/tor/torrc

Add the line
ControlPort 9051
Comment out the line by adding a # at the beginning, so it looks like:
#RunAsDaemon 1
RunAsDaemon 0
(This prevents the Tor daemon from automatically starting at bootup.)
restart Tor

sudo /etc/init.d/tor restart

Tor GUIs

There are two main GUIs for Tor.

  • Vidalia is a cross-platform Qt-based GUI for Tor. See these instructions to install it.
  • TorK is the KDE interface, used in Kubuntu, but which can run in Ubuntu (Gnome) as well.

sudo apt-get install tork
In addition, a Torbutton is available for Firefox, which toggles Tor usage. Install as a Firefox add-on or:

sudo apt-get install torbutton-extension

Proprietary Extras

Proprietary software helps you maximize your Internet experience, but is not open source. The software available includes Multimedia Codecs, Java Runtime Environment, and plug-ins for Firefox.


Restricted Extras


The Ubuntu Restricted Extras will install Adobe Flash Player, Java Runtime Environment (JRE) (sun-java-jre) with Firefox plug-ins (icedtea), a set of Microsoft Fonts (msttcorefonts), multimedia codecs (w32codecs or w64codecs), mp3-compatible encoding (lame), FFMpeg, extra Gstreamer codecs, the package for DVD decoding (libdvdread4, but see below for info on libdvdcss2), the unrar archiver, odbc, and cabextract. It also installs multiple "stripped" codecs and avutils (libavcodec-unstripped-52 and libavutil-unstripped-49). This is a single command approach.

sudo apt-get install ubuntu-restricted-extras
Note: Installation only works completely and properly when done from the command-line Terminal. The entire package will not usually install completely from within a Package Manager.


Photos and Graphics

Manage and edit your photos, create stunning 3D drawings and graphics, or convert between formats.


GIMP (Image Manipulator)


Gimp is a powerful, full-featured, free open-source graphics and image editor, similar to Adobe Photoshop.

sudo apt-get install gimp
There is an extra set of brushes, palettes, and gradients for The GIMP.

sudo apt-get install gimp-data-extras

Dia (Diagram editor)

Dia is a free open source GTK-based diagram creation program for Gnome. It is similar to Visio.


sudo apt-get install dia

Kivio (Diagram editor)

Kivio is an open source flow-chart and diagram creation program that is part of the KOffice Suite for KDE. It supports Dia stencils.

sudo apt-get install kivio

Inkscape Vector Illustrator


Inkscape Vector Illustrator is an open source drawing program similar to Illustrator and CorelDraw.

sudo apt-get install inkscape

Digikam (Photo Organiser)

Digikam is a comprehensive open source digital photo organiser and editor. Install it:

sudo apt-get install digikam kipi-plugins digikam-doc

F-spot (Photo Organiser)


F-spot is a comprehensive open source digital photo organiser and editor for the Gnome desktop. Install it:

sudo apt-get install f-spot

Google Picasa (Photo Organiser)

Google Picasa is a photo editor and organiser similar to Digikam. It allows uploads to a Google web server for online exchange.
For more info, see the Picasa for Linux FAQ. A self-installing .deb file is available at Picasa 2.7 downloads.



Shotwell (Photo Organiser)

Shotwell is a new photo organiser for the Gnome desktop. See these installation instructions.


Tesseract (Optical Character Reader)

Tesseract is a command-line optical character reader. Install:


sudo apt-get install tesseract-ocr
Ocropus is a document-analysis engine that uses Tesseract. Install:

sudo apt-get install ocropus

Cuneiform (Optical Character Reader)

Cuneiform is an optical character reader. Install (multiverse repositories must be enabled):


sudo apt-get install cuneiform
  • Pdfocr is a tool to use Cuneiform for OCR and then to add the resulting text file layer back to the PDF file to make it searchable.

Xsane (Scanning utility)

Xsane is a full-featured scanning utility. Install:

sudo apt-get install xsane


Gnome-Scan (Scanning Utility)

Gnome-Scan is a simple utility for scanning (still in alpha stage). Install:

sudo apt-get install gnomescan

Gwenview (Image Manipulator)

Gwenview is the quick image manipulator installed by default in Kubuntu (K menu -> Graphics -> Gwenview Image Viewer). Simple cut-and-paste, resizing, and format conversion are some of the graphics files manipulations that can be accomplished. Install:


sudo apt-get install gwenview

OpenClipart (ClipArt Library)

OpenClipart is a utility to provide access to a large library of free clipart. It includes a utility for OpenOffice Gallery. Install:

sudo apt-get install openclipart

Screencasts and Desktop Recording


Several utilities allow you to capture your desktop (and then create a screencastfrom it).


recordMyDesktop (Desktop Session Recording)

recordMyDesktop is a desktop recording utility, which has both pyGTK and a pyQT4 GUI frontends available. Recordings are saved in Theora video/Vorbis audio files. Only the Gtk version is available from the repositories (but it works well with KDE/Kubuntu nevertheless).
To install with the gtk GUI:

sudo apt-get install gtk-recordmydesktop

Using recordMyDesktop with PulseAudio


  • If you have not installed Pulse Audio Controls and Volume utility, they are useful for monitoring your pulse audio devices:
sudo apt-get install pavucontrol paprefs padevchooser
  • Change the recordMyDesktop settings so that the capture device is the one you select through pulse audio:
gtk-recordMyDesktop -> Sound Quality (ticked) -> Advanced -> Sound -> Device: pulse
This sets recordMyDesktop to use whichever input device(s) are selected through pulse audio. If you have several input devices, all of them will be recorded. This is an easy way to mix inputs.



Istanbul (Desktop Session Recording)

Istanbul is a desktop recorder for the Gnome desktop. It records your session into an OGG Theora video file.

sudo apt-get install istanbul

xvidcap (Desktop Session Recording)

xvidcap is a utility to capture your desktop as a video. Install:


sudo apt-get install xvidcap

WebCamStudio

WebCamStudio creates a virtual webcam that can mix several video sources together and can be used for live broadcasting. See the website for installation instructions.


Wink (Presentation Editor)

Wink is a open source tutorial and presentation editor. It allows you to capture screenshots and use them for presentations.


sudo apt-get install wink

Camorama (Web Cam)

Camorama is a simple GTK-based (i.e. Gnome-based) interface for webcams using the v4l (video for linux) drivers.

sudo apt-get install camorama

Freeseer (Presentation capture)


Freeseer is a utility to capture output from a projector or other display device (including another computer). See these installation instructions.


Screencast Demos

  • See this Screencast section.

Video Applications


Capture, record, edit, and convert video using these applications. Also see this list of open source video applications. Trivia: The movie Avatar was created at Weta Digital on a super-computer comprised of 4,000 servers running Kubuntu Linux, co-ordinated by the open-source Sun Grid Engine.


OpenShot

OpenShot is a GTK-based non-linear video editing suite for Linux. Install:


sudo apt-get install openshot

PiTiVi (Non-linear Video Editing Suite)

PiTiVi is a simple, limited-capability open source video editor that will be the default in newer versions of Ubuntu. It uses the GStreamer/Fluendo framework. Install:

sudo apt-get install pitivi

Avidemux (Video editor/processor)


Avidemux is a free, GPL-licensed open source cross-platform video editor and processor. Using mencoder as a backend, it allows cropping, trimming, special effects, and conversions between many filetypes (MPG/DVD, AVI, MP4, ASF). Install the GTK-based version:

sudo apt-get install avidemux

Kino (Non-linear Video Editing Suite)

Kino is a widely used GUI-based non-linear video editing suite for Linux. It imports video files into (and then uses) the DV (Digital Video) format for editing.


sudo apt-get install kino mjpegtools

KdenLive (Non-linear Video Editing Suite for KDE)

Kdenlive is a GUI-based non-linear video editing suite for KDE based on FFmpeg and the MLT video framework. It has tools for DV, video4linux, and screen capture. Install:

sudo apt-get install kdenlive mjpegtools

Cinelerra (Non-linear Video Editing Suite)

Cinelerra Community Version is a complete high-end open source video editing suite that is a derivative of a similar commercial system. Follow the installation instructions for Ubuntu.



LiVES (Video editor/processor)

LiVES is a free, GPL-license open source video editor and processor that is promoted as being useful for VJ editors. Install:

sudo apt-get install lives

OpenMovieEditor

OpenMovieEditor is a free, open source movie editing program for basic movie making. Install:


sudo apt-get install openmovieeditor

Blender

Blender is a free GPL-licensed 3D graphics and modeling tool that has been used in several animation projects. Install:

sudo apt-get install blender

Stopmotion (Animation)


Stopmotion is an open-source program for creating stopmotion animation. Install:

sudo apt-get install stopmotion

Audio / Video conversion

Here is a nice review of some of the applications that enables conversion and handling of these types of files.


FFMPEG video / audio conversion


FFMPEG is the swiss-army knife of video and audio format conversion. It succeeds when no other program can. It is free and open source. If it not yet installed on your system as part of another package (it is used by many video/audio editors), then install it:

sudo apt-get install ffmpeg
Example: To convert a saved Flash video (.flv) to an MPEG-2 format playable on a DVD, convert:

ffmpeg -i samplevideo.flv -target ntsc-dvd samplevideo.mpg

Then use K3b (or Gnomebaker) to write the mpg file to a New DVD Data Project.

  • For PAL use -target pal-dvd. For widescreen, use -target film-dvd. For other conversion tips, see this forum. (Note: Most Flash video has very low resolution, with a screen size of 360x270, for example. You may see a slight diminishment in resolution if you wish to convert it to 720x480 (which is the NTSC standard size) or other screen size. You can keep the original screen size and resolution by omitting the -target parameter.) If your original file is 16:9 widescreen and you desire a 4:3 letterbox output for playing on an overscanned TV, you may need to pad the file so that the widescreen is not compressed (see this forum):
ffmpeg -i samplevideo.flv -target ntsc-dvd -s 648x364 -padleft 36 -padright 36 -padtop 58 -padbottom 58 samplevideo.mpg

  • You can also use the WinFF GUI and add the command (as above) as a "Preset," for subsequent use. For example:
Video converter (WinFF) -> Edit -> Presets ->
Preset Name: Letterbox -> Preset Label: 16:9 Widescreen to 4:3 Letterbox
Preset command: -target ntsc-dvd -s 648x364 -padleft 36 -padright 36 -padtop 58 -padbottom 58
Ouput file extension: mpg -> Category: DVD
-> Add/Update -> Save
  • To convert to MPEG-4 (mp4) files, use
ffmpeg -i samplevideo.flv outputvideo.mp4
  • FFMpeg requires that multiple restricted extra codecs be installed. This can be done in a single easy step from the command-line Terminal:

sudo apt-get install ubuntu-restricted-extras

FFMPEG GUI
WinFF is a free, GPL-licensed open source GUI frontend for FFMPEG. Install:

sudo apt-get install winff xterm
Run:

Menu -> Applications -> Sound & Video -> WinFF

Join video segments
Individual video segments (MPEG-2, for example) can easily be joined:

cat samplevideo1.mpg samplevideo2.mpg samplevideo3.mpg > samplevideo123.mpg

You can then write the resulting MPEG-2 file to a DVD and play it in most DVD players.

Split a file into segments
Any file can be split into segments using the Linux command:

split -b 1440k my_big_file
which will split my_big_file into equal segments of size 1440 kb.



Save any streaming Flash video

An easy way is to install the Video Download Helper plug-in for Firefox.

Otherwise, most Flash videos download to the /tmp directory while you watch the video, creating a randomly-named video file there (such as Flashuh4G6s). When you close the webpage, this file in the /tmp directory will be erased. After the entire video has downloaded, but before you close the webpage, copy that file (such as Flashuh4G6s) to your home directory (where it will not be erased). Of course, for this to work, you must change your Flash (or Gnash) settings to allow an unlimited buffer. While watching your Flash video, right click to bring up the Flash -> Settings window. Set the Buffer to "Unlimited."

Once you have copied the file, rename it appropriately with the .flv added to the filename. You can then watch it using VLC or Mplayer.

Here is another method that involves making a symbolic link.



Save rtmp / flv streams
flvstreamer is a command-line application to dump rtmp streams. Install:

sudo apt-get install flvstreamer
Example of usage:

flvstreamer -r "rtmp://host/dir/file.flv" -o filename.flv

If you see the following the "WARNING: Download may be incomplete, try --resume!" message, try to use the --resume option:

flvstreamer -r "rtmp://host/dir/file.flv" -o filename.flv --resume

Convert Flash video audio to mp3

Once you have downloaded flash video content (.flv) from the Internet (using the Video Download Helper plug-in for Firefox, for example), the audio component can be converted to an mp3 using this command (from the command line Terminal). (This will work for any type of video file, not just Flash.)

ffmpeg -i nameofvideoclip.flv -ab 160k -ac 2 -ar 44100 -vn nameoffile.mp3

where -i indicates the input, -ab indicates the bit rate (in this example 160kb/sec), -vn means no video ouput, -ac 2 means 2 channels, -ar 44100 indicates the sampling frequency. See FFMPEG docs for more info.


2ManDVD

2ManDVD is a GUI utility for creating DVD videos. It is the successor of ManDVD. Choose the version for your architecture and install it from the 2ManDVD website. Click on the download link and select to open it with the GDebi Package Installer (default). (If you have previously installed ManDVD you must uninstall it first.) For a usage tutorial, read this 2ManDVD guide.


Run:

Menu -> Applications -> Sound & Video -> 2ManDVD

DeVeDe

DeVeDe is a program to create video DVDs and CDs suitable for home players (i.e. VCD, sVCD or CVD) from any source video file that is supported by MPlayer. Choose the version for your architecture and install it from the DeVeDe website. Click on the download link and select to open it with the GDebi Package Installer (default). For a usage tutorial, read this DeVeDe guide.


Run:

Menu -> Applications -> Sound & Video -> DeVeDe

ManDVD

ManDVD is a QT-based DVD authoring tool which accepts several different file types as input. Install:


sudo apt-get install mandvd xine-ui

DVD Author

DVD author allows you to create menus and format your MPEG-2 videos onto a DVD disc so that you can play it in a commercial DVD player. DVD Author is a command line tool, but several GUI's exist. Install:

sudo apt-get install dvdauthor

QDVDAuthor

QDVDAuthor is a Qt-based GUI for DVD Author. Install:

sudo apt-get install qdvdauthor
Run:

Menu -> Applications -> Sound & Video -> QDVDAuthor
Follow instructions in the Quick-Start Guide:

QDVDAuthor -> Help -> Quick-Start Guide
For a tutorial on authoring DVDs, see this guide.


Ripper X CD Ripper/Encoder


Ripper X is a GTK-based (i.e. Gnome) open source utility to rip CD audio tracks to OGG, MP3, or FLAC formats. It supports CDDB lookups.

sudo apt-get install ripperx

Asunder CD Ripper/Encoder

Asunder is a GTK-based open source CD ripper/encoder which saves to Wav, MP3, OGG, FLAC, or WavPack. Self-installing .deb packages are available here.


Audex CD Ripper/Encoder


Audex is a port to KDE4 of the KAudioCreator package used in KDE 3. It can create output for LAME (MP3-compliant), OGG Vorbis (oggenc), FLAC and RIFF WAVE. It must be installed from source, currently (see the website).


Gnac (GNome Audio Converter)

Gnac (GNome Audio Converter) converts between all GStreamer supported audio formats. It is not yet part of the standard repositories. See these installation instructions.


SOX (encodes/decodes audio)


SoX is a somewhat confusing command-line utility to convert audio formats. See this usage guide. Install:

sudo apt-get install sox
Run:

sox

CDs and DVDs


Brasero (CD/DVD burner)


Brasero is a CD/DVD burning application that is now part of the Gnome desktop (but can be used with any Ubuntu derivative). If not already installed:

sudo apt-get install brasero

Gnomebaker (CD/DVD burner)

Gnomebaker has been the default CD/DVD burning application for the Gnome desktop. If not installed:

sudo apt-get install gnomebaker

K3b (CD/DVD burner)


k3b (KDE Burn Baby Burn) is the default KDE CD and DVD burning utility included in Kubuntu, but can run well in Gnome. (Due to licensing requirements, mp3 capabilities must be installed separately as the libk3b6-extracodecs package). Install:

sudo apt-get install k3b libk3b6-extracodecs

DVD Playback Capability

To play encrypted DVDs, the libdvdcss2 package is essential. libdvdcss2 is a simple library designed for accessing DVDs like a block device without having to bother about the decryption. More information about this package can be found at VideoLAN.

  • You can install libdvdcss2 as a 64-bit .deb package without installing the Medibuntu repositories:
wget -c http://packages.medibuntu.org/pool/free/libd/libdvdcss/libdvdcss2_1.2.10-0.3medibuntu1_amd64.deb
sudo dpkg -i libdvdcss2_1.2.10-0.3medibuntu1_amd64.deb

or a 32-bit .deb package:
wget -c http://packages.medibuntu.org/pool/free/libd/libdvdcss/libdvdcss2_1.2.10-0.3medibuntu1_i386.deb
sudo dpkg -i libdvdcss2_1.2.10-0.3medibuntu1_i386.deb
  • You can also use guidelines provided at Medibuntu. This will install the Medibuntu repositories on your system and then install the libdvdcss2 package:
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list
sudo apt-get update
sudo apt-get --yes --allow-unauthenticated install medibuntu-keyring
sudo apt-get update
sudo apt-get install libdvdcss2
  • You can also install 32 bit or 64 bit Windows multimedia codecs (if you haven't already done so using ubuntu-restricted-extras):
sudo apt-get install w32codecs

or
sudo apt-get install w64codecs
  • Instead of downloading directly from Medibuntu, you could also use the script included with the libdvdread4 package to download and install libdvdcss2:
sudo apt-get install libdvdread4
sudo /usr/share/doc/libdvdread4/install-css.sh

K9copy (DVD Ripper)

K9copy is the free open source DVD backup, copying, compression, and authoring utility that requires libdvdcss. For other info, see this or this guide. You can easily create MPEG-2. MPEG-4, or DVD videos with this utility.


sudo apt-get install k9copy
  • Tips: At times you may not be able to copy your DVD directly from DVD to DVD. This may because you have a small imperfection in the DVD, or because the DVD was initially created with a non-standard burning method. There are two methods that can help solve this problem:
  • Copy the VIDEO_TS and AUDIO_TS folders from your original DVD directly to your hard drive. Then use k9copy to burn a DVD directly from these hard drive folders.
  • Use k3b (or Gnomebaker) to copy an .iso image from the original DVD to your hard drive. Then use k9copy to extract from the hard drive .iso image and then burn a DVD directly from it.

dvd::rip

dvd::rip is a DVD backup/copy program, written in GTK-based perl, that uses the transcode and ffmpeg video/audio processing and conversion tools. See the website for installation and official documentation. For other info, see this dvd::rip tutorial. Install:


sudo apt-get install dvdrip rar

Acidrip

Acidrip is a DVD backup/copy program, written in GTK-based perl, that uses the Mplayer and Mencoder video/audio processing and conversion tools. See the website for installation and official documentation. Install:


sudo apt-get install acidrip

DVD Fab (DVD Ripper)

DVD Fab is the favoured DVD backup tool for today's DVD encryption methods. It must be run in Wine (since it is a Windows application). It comes as a fully featured 30-day trial, but see these instructions for fine-tuning the trial period.


Handbrake


Handbrake is a GPL-licensed open source tool for converting DVD to MPEG-4 (iPod format) that is an alternative to k9copy. Installation is from the developmental PPA archive.


Music Players


Rhythmbox

Rhythmbox is the default music player in Ubuntu (Gnome), relying on the Gstreamer framework.



Amarok

Amarok is the default music player in Kubuntu. Install:

sudo apt-get install amarok

Amarok themes

Amarok themes can be downloaded from KDE Look and installed.


  • Download the theme (ending in .tar.bz2) to your home directory (or chosen directory).
  • Amarok -> Settings -> Appearance -> Install New Style
  • Select the downloaded file.

Audacious

Audacious is a compact, fast music player that is a fork of XMMS. It resembles WinAmp and can use WinAmp and XMMS skins. It supports many plugins and is ideal for streaming content. Install:


sudo apt-get install audacious
You can switch switch between the "PulseAudio Output Plugin" and the "ALSA Output Plugin" under

Audacious -> Preferences -> Audio -> Current output plugin.

Banshee Music Player


Banshee is a Gstreamer, Mono and Gtk-based music player for Linux and Mac OS X. It supports multiple mp3 players (including the iPod).There are plugins for podcasts, internet radio, and more.

sudo apt-get install banshee

Exaile Music Manager and Player

Exaile is a GTK-based music player that supports many formats, incorporates a Shoutcast directory, a plugin for iPod, Last.FM support, tabbed playlists, and other features.
Install:


sudo apt-get install exaile

Songbird Music Player

Songbird is an open source music player from Mozilla with an appearance meant to resemble iTunes. It is in current development and does not yet have full support for mp3 players (such as the iPod). It incorporates a Shoutcast internet radio interface. The current beta version can be downloaded from the website.


Multimedia Players

Most current video multimedia players play many video formats, including the Flash video .flv format.


MPlayer Multimedia Player


Mplayer is a video player with a wide range of formats supported (including RealMedia and Windows-codecs) and a wide variety of outputs.

sudo apt-get install mplayer

SMPlayer

SMPlayer is an enhanced frontend for MPlayer.

sudo apt-get install smplayer

Dump a video stream to disc


You can dump a video stream to disc using Mplayer:

mplayer -dumpstream streamurl
If you don't know the exact URL of the stream you wish to save, you can discover it from the webpage it is embedded in by using the Firefox add-on UnPlug. Do not save streams that are illegal to download.


VLC Multimedia Player

VLC is a cross-platform multimedia player that supports many formats without need for additional codecs. It can not only receive video streams (also see here to convert it to mp4), but can act as a server for video streams, as well. It is one of the only players that can view and backup almost any DVD format, no matter which copy protection is used. See these tips for using VLC to backup/rip encrypted DVDs.


sudo apt-get install vlc vlc-plugin-pulse

VLC plugins

There are many VLC plugins. You will likely only need to install a few of them, however, depending on your hardware and input/output configuration:

sudo apt-get install vlc-plugin-ggi vlc-plugin-jack vlc-plugin-pulse vlc-plugin-sdl vlc-plugin-svgalib mozilla-plugin-vlc vlc-plugin-esd




Xine-UI Multimedia Player


Xine UI is a multimedia player based, of course, on the xine platform. It can also play streamed video from the Internet and supports most formats, including some uncommon ones.

sudo apt-get install xine-ui

Kaffeine Video Player

Kaffeine is the default video player in Kubuntu. Install:

sudo apt-get install kaffeine


RealPlayer 11 Multimedia Player

The Linux Realplayer is actually based on the open-source Helix player. Helix itself can be installed as a package easily (read Helix plug-in) and used instead of Realplayer. These instructions are to install the proprietary version of RealPlayer only.

Download Real Player official linux player

Open a terminal and cd to the directory you have downloaded realplayer's .bin file. Then issue the following commands

chmod +x RealPlayer11GOLD.bin
sudo ./RealPlayer11GOLD.bin
When it asks for installation path enter /usr/local/RealPlayer


For all other questions just choose default by pressing enter.

If you have installed mozilla-mplayer package you will need to delete the mplayer firefox plugin for real player videos. Other wise all real player files will open with mplayer. For that please do this

cd /usr/lib/firefox/plugins
sudo rm mplayerplug-in-rm.*
Please remember to restart firefox and when ever you click on a real player video choose the option open with and use /usr/bin/realplay


Internet TV


BBC iPlayer

BBC iPlayer provides replays and downloads of BBC programs to UK residents. The BBC, however, has crippled its streams to prevent downloading and legal actions against iPlayer appear to be in progress. (RTMPDump methods may be required for stream recording). To install a Flash 64-bit edition of iPlayer:


sudo aptitude remove flashplugin-installer
sudo add-apt-repository ppa:sevenmachines/flash
sudo aptitude update
sudo aptitude install flashplugin64-installer

Miro Player

Miro Player (formerly Democracy TV Player) is an open-source Internet TV and video player that allows you to watch Internet TV and videos. Unlike other video players, it contains a structured guide that includes more than 2500 channels, has built-in BitTorrent, and has features that can automatically save videos, such as from YouTube.

sudo apt-get install miro

Myth TV


See MythTV


Sopcast Internet TV

Sopcast is an interface to play live P2P video streams through the VLC media player. Install VLC first. This is a Chinese program and most content is hosted in China and may not be legal in your area. Please consult local regulations.

You can install the SopCast Player PPA using the following commands:

echo "deb http://ppa.launchpad.net/jason-scheunemann/ppa/ubuntu `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CD30EE56

If you are using Karmic or later:

sudo add-apt-repository ppa:jason-scheunemann/ppa
sudo apt-get update
sudo apt-get install sopcast-player
Run:

Applications->Sound & Video->SopCast Player

Zattoo


Zattoo is a free Internet TV player that allows you to watch terrestrial television from various countries in Europe. See the Zattoo Download page for further instructions on installation. For screenshots and an alternate installation guide, see this UbuntuGeek guide.

  • Install dependencies first:
sudo apt-get install libgtkglext1 adobe-flashplugin
wget http://zattoo.com/release/download.php
  • Install the downloaded .deb package:
sudo dpkg -i *.deb
  • Run Zattoo:
K -> Application -> Multimedia -> Zattoo Player
Note: you have to register for a free account when the player starts.

Internet Radio

Internet radio streams through different ports, so check your firewall if you are not able to play the streams.


Last FM

LastFM is a service for sharing music recommendations and individual radio streams. It is included as an option in Amarok, or can be installed separately:


sudo apt-get install lastfm

Shoutcast Internet Radio

Shoutcast is the first and last free mp3 streaming service. Hundreds of radio streams can be played through Amarok, Audacious, or other multimedia player. Simply associate the .pls streams with your favourite player (Audacious or XMMS2 recommended).



StreamTuner Stream Directory Browser

StreamTuner lists streams available on the Internet through a GTK-based interface. It lists Shoutcast and Live365 streams, among others. Install:

sudo apt-get install streamtuner

BBC program recording

  • get_iplayer allows BBC streams (through their iplayer service) for UK users, as well as Hulu streams for US users, to be recorded to mp4, wav and mp3 files (depending on content). See the website for usage.

  • iPlayer can be run in Wine using these instructions.

Media Centers and PVR (Personal Video Recorder)

There are a number of open-source Media Centers for Linux, some of which include personal video recorder functions. For a full list of open-source media centers, see this guide.


MythTV

MythTV is a media center with PVR (personal video recorder) for retrieving, recording, and playing broadcast and Internet TV and other multimedia content. It has many options and plugins for expansion. To be useful, you will need a compatible TV tuner card. For setup tips, see this guide. Install:


sudo apt-get install mythtv

Mythbuntu

Mythbuntu is an integrated Ubuntu (Xubuntu) desktop optimised for MythTV usage. In can be used instead of adding MythTV to a Ubuntu desktop.


XBMC

XBMC is a free, mature, open-source cross-platform media center. It does not have a PVR capability nor as many functions as MythTV, but has a very nice interface.


deb http://ppa.launchpad.net/team-xbmc-intrepid/ubuntu intrepid main
deb-src http://ppa.launchpad.net/team-xbmc-intrepid/ubuntu intrepid main
  • Install:
sudo apt-get update
sudo apt-get install xbmc

Boxee

Boxee is an XBMC-like open source package to allow streaming video over the Internet, including from YouTube and other sites. It is a fork of XBMC, and is still in alpha development and testing stage. It is currently available for 32-bit systems only, and recommended for Hardy. A current version is anticipated soon. (Note: Boxee does not run Netflix on Linux, despite their ads). See these download instructions.



Elisa

Elisa is a cross-platform media center that uses the Gstreamer multimedia framework. Commercial plugins are available from Fluendo. It supports PVR and Music Jukebox . Install:

sudo apt-get install elisa

LinuxMCE

See LinuxMCE.



Multimedia Servers


MPD Multimedia Playing Server

MPD is a music server meant for LAN usage. It can be controlled from remote clients. It can also stream internet streams.


TiMidity++ MIDI Sound Server


TiMidity is a MIDI software synthesizer required by several games and other MIDI-dependent applications.

sudo apt-get install timidity

uShare UPnP A/V Media Server

uShare is a UPnP media server compatible with the Xbox360 and PS3.

sudo apt-get install ushare
Also see: How-to: Run uShare at Startup.



Home Automation / Home Theater / Home Security


Complete Systems


Linux MCE (Media Center Edition)

LinuxMCE is an integrated home theater/home security/home automation/telephone PBX/intercom system for your home. It incorporates MythTV, Pluto home automation, Motion security surveillance, Asterisk PBX, VDR video disk recorder, and other home automation/security/theater packages in an integrated platform. It is available in 32 and 64 bit versions. LinuxMCE can run either as a standalone Home Theater PC or can co-ordinate a fully networked home, using the networking capabilities that are intrinsically part of the Kubuntu Linux OS. For more info see the LinuxMCE website or wiki.


The most recent stable version runs on Kubuntu 7.10 (Gutsy). A beta version for Kubuntu 8.10 (Intrepid) has been released, and the full version is anticipated soon. LinuxMCE can be installed at the same time as the Kubuntu OS (on a new PC with an nVidia graphics card), with a single DVD installation. Alternatively, Kubuntu can be installed first and LinuxMCE then installed from a 2 CD installation.


Other systems in development

  • Minerva -- home automation and multimedia control with a GUI interface. It can even hook into Google Calendar.
  • DomotiGa -- home automation software from the Netherlands, using a MySQL database.
  • NetHomeServer is a Java-based cross-platform automation system authored by a single coder. It is in alpha development but can be downloaded from the website and evaluated.
  • The Wosh framework is message-based middleware to effect home automation processes. the project is in early development.

  • Linux Home Automation contains information regarding many nascent home automation projects.

Home Security


Zoneminder surveillance system

Zoneminder manages surveillance cameras and stores images on the hard disk. Images can be viewed using a (LAMP) server remotely. X10 devices can be triggered using built-in perl scripts. Install:


sudo apt-get install zoneminder ffmpeg

Myth Zoneminder
MythZoneminder allows you to view your security cameras through Myth TV, essentially. It is a plugin that interfaces the two packages Zoneminder (which must be working on your system) and Myth TV (which must also be working.) See the installation instructions. Install:

sudo apt-get install mythzoneminder

Office Suites



Open Office

Open Office is installed by default in Ubuntu, with Writer (Word equivalent), Presentation (PowerPoint equivalent), Calc spreadsheet (Excel equivalent), and Base relational database (Access equivalent).


Open Word 2007 Documents in Open Office

The latest edition of OpenOffice opens .docx (i.e. Word 2007) documents by default.


KOffice


The KOffice suite is part of the KDE project and is meant to provide the capabilities of the OpenOffice suite without the licensing restrictions of OpenOffice. It can be used in any version of Ubuntu. Install:

sudo apt-get install koffice

AbiWord

AbiWord is a fast, collaboration-enabled word processor. For the most current version see the AbiWord web site. To install from the repositories:


sudo apt-get install abiword

PDF Files

PDF is the file format used by Adobe Acrobat (which can be read by many e-book readers as well). There are many PDF-oriented utilities available in Ubuntu. In the Synaptic Package Manager, search for "pdf".


Print to a PDF file

(K)Ubuntu allows printing of any document to the PDF format by default. From any application:

File -> Print -> Print to File -> Output: PDF

View a PDF document

Evince is the default PDF document viewer in Ubuntu. PDF files are associated by default with Evince, so clicking on a PDF file (from a file manager such as Nautilus) will open it with Evince. Evince can also be started:

Menu -> Office -> Evince

Scan to a PDF file


Gscan2pdf is a utility to do exactly that: scan to a PDF file. Multiple options for scanning can be set. Install:

sudo apt-get install gscan2pdf

PDF-Shuffler (PDF file management)

PDF-Shuffler is a free GTK-based utility to manipulate multiple PDF files, allowing individual pages or entire PDF documents to be re-arranged, rotated, merged, or deleted. This is an essential tool for working with PDF files. Install:

sudo apt-get install pdf-shuffler
Run:
Menu -> Office -> PDF-Shuffler

MaxView (PDF file management)

MaxView is a utility to capture, manipulate and rearrange, and print .pdf and .max files. Written in Qt, it is similar in some respects to Paperport.

  • Download and install the .deb package (use i386 instead of amd64 if using a 32-bit OS):

wget -O maxview_current.deb http://sourceforge.net/projects/maxview/files/maxview0.7-2/maxview_0.7-2_amd64_maverick.deb/download
sudo dpkg -i maxview_current.deb
  • Start MaxView in a GUI by creating a menu item with the Command: maxview /home/user, where /home/user is the directory in which you wish MaxView to start.

Import PDF files into a word processor


Import PDF files into OpenOffice Writer

PDF files can be imported into the OpenOffice Writer word processor by installing:

sudo apt-get install openoffice.org-pdfimport

Import PDF files into KWord
Kword is the Word Processor package in KOffice. It allows the importing of PDF files by default.


Personal Information Managers


Kontact Personal Information Manager


Kontact is the default PIM included with Kubuntu. Kontact includes email, an address book, a calendar, reminders, pop-up notes, a link to the Akregator News/RSS reader, time-tracking, and more. Its many functions resemble MS-Outlook. Through connectors it interfaces with many groupware servers (such as Kolab and eGroupware). Install:

sudo apt-get install kontact

Mozilla Sunbird (Calendar)

Sunbird is a standalone group calendar client that in the future will be replaced by the Lightning extension for Thunderbird and Firefox. (It is available in a 64-bit and 32-bit version, whereas the Lightning extension is currently only available in a 32-bit version.) Download from the website and install by clicking on the downloaded file to extract, or:


sudo mkdir /etc/sunbird
cd /etc/sunbird
sudo wget -O sunbird-current.tar.bz2 http://download.mozilla.org/?product=sunbird-1.0b1&os=linux64&lang=en-US
tar -xvjf sunbird-current.tar.bz2
Replace os=linux64 with os=linux if using a 32-bit OS.
  • Then create a menu item named Sunbird to point to the Command: /etc/sunbird/sunbird


BasKet Note Pads

BasKet Note Pads is a personal note-taking application that resides on your computer and can be used for creating "to-do" lists. It is great for centralising your thoughts in one place. Install it:

sudo apt-get install basket

Planner (Project planning & management)


Planner is an MS-Project-like planning and management tool.

sudo apt-get install planner

Time Tracker

You can keep track how long you use an application with TimeTracker. Keep records for billing or simply limit your Internet usage.


Groupware


Groupware solutions include shared calendars, group email servers, groups address lists, group projects, and internal messaging. They require (one or more) servers with LAMP or similar server stacks.


Groupware Servers

Groupware servers are meant to operate on a server platform. You must install the server version of Ubuntu/Ubuntu first. Read Servers.


Kolab


Kolab is the most comprehensive open-source groupware solution available and is distributed as a multi-platform solution. (It integrates easily with both Ubuntu (including Evolution) and KDE/Kubuntu (including Kontact).) It is free and open source with a GPL license (unlike other groupware solutions), yet enterprise support is also available. It is scalable to large organizations and is Outlook (MS-Exchange) and Mozilla compatible. This is a German package, however, and documentation in English can occasionally be limited. The Kolab website provides its own instructions for installation from source (currently v. 2.2). Version 2.2 includes the Horde web interface. The current beta Debian package instructions are here or the OpenPkg installation instructions are here.

  • Note: Kolab uses its own server components, and it is best to run Kolab on a dedicated server. However, it is possible to run other servers on the same machine, as long as you choose alternate ports if the server modules conflict.

  • Install the compiler and other necessary stuff:
sudo apt-get install build-essential

Kolab Ubuntu package

  • There is an Ubuntu/Kubuntu package for the new version of Kolab (v. 2.2), but no documentation support for it yet exists. Install:
sudo apt-get install kolabd

Manual Kolab installation

  • Make a directory for the Kolab installation and make it universally accessible:

sudo cd /
sudo mkdir /kolab
sudo chmod 777 /kolab
  • Optional: If you wish to mount kolab in its own partition, then create a new partition (using Gparted, for example). Figure out the device name of your extra partition:
sudo fdisk -l
It should be something like /dev/sda3.
Mount /dev/sda3 (or whatever your partition is) as /kolab by editing /etc/fstab:
sudo nano /etc/fstab
and adding the line:
/dev/sda3  /kolab  ext3  defaults,rw 0 0

then reboot and make sure there are no errors.
  • Make a directory into which to download kolab:
cd /tmp
mkdir /kolabtmp
  • Download all the current Kolab files:
cd /tmp/kolabtmp
wget -r -l1 -nd --no-parent http://files.kolab.org/server/release/kolab-server-2.2.2/sources/
  • Install Kolab (as root using sudo -s):
sudo -s
sh install-kolab.sh 2>&1 | tee kolab-install.log
  • Reboot your system.

  • Stop Kolab services and run the configuration utility:
sudo /kolab/bin/openpkg rc all stop
sudo /kolab/sbin/kolab_bootstrap -b
Obviously, you should know all your details, such as your fully qualified host name (which you can determine from hostname -f), domain details, etc., before doing this step. If you are not familiar with OpenLDAPand LDAP basics, you should learn about it, as Kolab uses the slapd OpenLDAP server daemon.
  • Restart all Kolab services:
sudo /kolab/bin/openpkg rc all start
  • Login to the web administrator interface using "manager" and the password you set at bootstrap configuration:

https://yourhost.yourdomain.name/admin

Citadel

Citadel is a turn-key fully open source groupware solution (that is both KDE and Kolab-1 compliant). Based on a bulletin-board framework spanning over 20 years, it is user friendly and interfaces with both KDE and Gnome apps and also has a web-based client. It is also WebDAV compliant and can be used with Thunderbird.

  • Install the Citadel server:
sudo apt-get install citadel-server
  • Install the Citadel client:
sudo apt-get install citadel-client

  • Install both:
sudo apt-get install citadel-suite

eGroupware

eGroupware is a robust and stable free open source groupware solution (with GPL license) based on the LAMP stack (the default server stack included with Ubuntu Server) and the Postfix mail server (both of which should be installed first). There is a new version recently available, with a new corporate sponsor in Germany and a commercial enterprise version. Compatibility with many clients has been improved. Egroupware provides the easiest installation and quickest setup time of all groupware solutions. Much of the documentation for the current version, unfortunately, is not in English.

sudo apt-get install egroupware

Open-Xchange


Open-Xchange is a proprietary groupware solution (meant as an MS-Exchange replacement) that has released a "community edition" based on commercial versions. The latest .deb package is for Hardy Heron 8.04. It is compliant with many different types of clients, including Kontact, Outlook, and Palm PDAs. Installation instructions are at the website and are not trivial.


OpenGroupware

OpenGroupware is a groupware solution based on the postgreSQL database. There is an enterprise version and a limited open source version, and development appears to have been stagnant in 2008. Installation must be from source, as packages are very outdated. See the website for details.


Zarafa

Zarafa is the leading European MS-Exchange replacement/groupware solution. It is proprietary, but a GPL-licensed (except for trademarks) free open-source community edition was released in 2008. Download instructions are available from the website.



Zimbra

Zimbra is a proprietary groupware solution (now owned by VMWare) that offers an open source "community edition". Although currently free, the community edition is limited in features and does not have a GPL license. All submitted modifications and contributions become the property of VMWare. See the Zimbra wiki.

A Beta version for Lucid Lynx 10.04 LTS is available for 64-bit users, or the older Hardy 8.04 version can be used.


SugarCRM Server

SugarCRM is a commercial customer relationship management (CRM) platform and groupware server (sales, marketing, support, project management, calendaring) system with a community edition. It supports MySQL and MS SQL databases. For more info see SugarCRM Server Setup.



SchoolTool

SchoolTool is a free open source groupware solution for use in primary and secondary schools which includes calendaring, gradebooks, attendance records, and student information databases. It was created with the help of the Shuttleworth Foundation (which also sponsors Ubuntu). See these installation instructions.


Groupware Clients

Many groupware solutions have connectors to interface with clients such as Kontact/KMail and Mozilla Thunderbird (or SeaMonkey).



Evolution Exchange

The Evolution Exchange connector adds connectivity (using Outlook Web Access) to the Evolution suite for MS Exchange 2000 and 2003. Install:

sudo apt-get install evolution-exchange

Kontact Personal Information Manager

The Kontact Personal Information Manager, included in Ubuntu by default, interfaces with many groupware servers.



KDE Groupware Wizard

Kubuntu provides a wizard (script) to help clients (such as Kontact/Kmail) connect to a groupware server. Currently supported groupware servers are Kolab, eGroupware, SUSE Linux Openexchange, and Novell Groupwise.


Zimbra Desktop

Zimbra Desktop is a desktop that collaborates with Zimbra servers. See the Zimbra Desktop FAQ. For more info also see Ubuntugeek's Zimbra Desktop Installation Guide for Hardy 8.04.



Oracle Calendar Desktop Client

The Oracle Calendar Desktop Client is proprietary calendaring software for use with Oracle groupware/database systems.

Download Oracle Calendar Desktop Client:

wget http://www.k-state.edu/infotech/calendar/oracle-10-clients/DesktopClients/Linux/cal_linux_1011.tar.gz
Extract:

tar -xvf cal_linux_1011.tar.gz

Change into the extracted files directory:

cd OracleCalendar_inst/
Prepare the files:

mv cal_linux cal_linux.bak; cat cal_linux.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > cal_linux; rm cal_linux.bak
Change permissions:

chmod +x gui_install.sh cal_linux
Start the GUI installer:

sudo sh gui_install.sh


Group Calendars


DAViCal Calendar Server

DAViCal is a CalDAV, postgreSQL, Apache and php-based shared Calendar server that works with Mozilla Thunderbird/Lightning/Sunbird, Evolution, and other calendar clients.
Install:

sudo apt-get install davical

Then see these detailed installation instructions.


Darwin Calendar Server

Darwin Calendar Server is an open-source port of Apple's CalDAV-based calendar server that works with Mozilla Thunderbird/Lightning/Sunbird, Evolution, and other calendar clients. Install version 1.2 from the repositories (then see the website for usage instructions):

sudo apt-get install calendarserver

WebCalendar


WebCalendar is an ICS-based server for group calendars that can use many different databases as the backend, is written in PHP, and is compatible with clients such as Sunbird/Thunderbird (Lightning), Apple iCal, and Evolution. The newest version can also be viewed using RSS clients. See the website and the wiki for installing the newest (1.2) version. Install the older (1.05) version from the repositories:

sudo apt-get install webcalendar

Financial Software


For a brief introduction, see this list of 10 Linux financial tools.


KMyMoney (Personal Finance Management)

KMyMoney is a personal finance manager that uses double entry accounting, the method professional accountants use. It is similar to MS-MyMoney and Intuit Quicken, with automatic setup of categories for businesses. It is designed for the KDE/Kubuntu desktop (but will work in Gnome/Ubuntu). Install:

sudo apt-get install kmymoney2

GnuCash (Personal Finance Management)


GnuCash is a free, open source GPL-licensed personal finance manager that uses double entry accounting like professional accountants. It is GTK-based (Gnome 2). The current version can be installed from source files (see the website for installation instructions), or the package version can be installed:

sudo apt-get install gnucash

Skrooge (Personal Finance Management)

Skrooge is a free, GPL-licensed personal finances manager written for the KDE desktop that is able to import/export data to/from many other finance managers.

sudo apt-get install skrooge

Moneydance (Personal Finance Management)


Moneydance is a commercial cross-platform Java-based personal finance manager similar to KMyMoney that sells for $50 per license.


SQL-Ledger (Enterprise Finance Management)

SQL-Ledger ERP is a free, open-source, platform independent double-accounting-method system and enterprise resource planner (inventory, work and purchase orders, taxes, etc.) that uses the SQL database server (PostgreSQL/Oracle/Mysql databases). It uses a web browser for an interface and be accessed remotely. It is extremely comprehensive and is available in many languages. Install:

sudo apt-get install sql-ledger

WebERP (Enterprise Finance Management)


WebERP is a free, open-source enterprise resource planner and accounting suite similar to SQL-Ledger that uses a web browser as an interface. It runs on the LAMP server. It is somewhat difficult to implement and use, but conforms to strict accounting guidelines. Set up your LAMP server first, then install using the web site instructions.


Phreebooks (Enterprise Finance Management)

Phreebooks is a free open-source enterprise resource planner and accounting suite similar to WebERP. It also runs on a LAMP server. It is in active development in 2008. A demo is available at the website.


Quasar (Enterprise Finance Management)


Quasar is a proprietary Linux-based accounting suite similar to Quickbooks. For a single user without point-of-sale or networking needs, it is free. For other users it costs CA$500 per seat. An installer for KDE-based systems is here.


Wiki software

Wiki software allows an organization to have a manual that can be edited by a number of collaborators. Wikipedia is the best known example.


MediaWiki

MediaWiki is the free, open source server software that Wikipedia uses. It is scalable to very large uses. It runs on the LAMP server stack (which uses the MySQL database and is available as an installation option with the (K)ubuntu server), or it can be used with a postgreSQL database. Installation instructions are here. Install from the repositories:


sudo apt-get install mediawiki
  • Edit the config file so it recognizes MediaWiki:
sudo nano /etc/mediawiki/apache.conf
Uncomment (remove the #) the line:

Alias /mediawiki /var/lib/mediawiki
  • Restart apache2:
sudo /etc/init.d/apache2 restart
  • Run/install MediaWiki by logging into:

http://localhost/mediawiki
You will be prompted for configuration variables to be set. The trickiest is the MySQL user/password. Hopefully you remember your MySQL superuser that you set at the time of LAMP (or MySQL) installation.
  • Copy your local settings configuration file to /etc/mediawiki (and make a backup of the original):
sudo cp /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki
sudo mv /var/lib/mediawiki/config/LocalSettings.php /var/lib/mediawiki/config/LocalSettings_at_install.php
Edit your configuration variables there:

sudo kate /etc/mediawiki/LocalSettings.php
  • If you are using a virtual host server, make a symbolic link (named in this example mywiki) from your /usr/share/mediawiki installation folder to your /var/www folder:
sudo ln -s /usr/share/mediawiki /var/www/mywiki

then make sure you have an apache2 virtual hosts configuration file (in /etc/apache2/sites-available) that points to /var/www/mywiki as the DocumentRoot. Make a symbolic link from your virtual host configuration file in /etc/apache2/sites-available to /etc/apache2/sites-enabled to enable it. Restart apache2 after enabling the sites. (Warning: MediaWiki is not secure at installation and can be easily hacked by new users. Do not publish your wiki to the Internet before reading all the instructions and changing the configuration file (LocalSettings.php) so that it is more secure.)
You would then access the database at:

http://my.virtualwikihost.org
  • How do I import a copy of Ubuntuguide into my own wiki?

ReCaptcha


ReCaptcha is a webservice CAPTCHA module to present a text challenge for user-input that is unreadable by computer bots, lessening the chance of automated input (spam and vandalism). This can be used for wikis and for other uses.

A reCaptcha plugin for MediaWiki is available here (and instructions are repeated below).

  • Download and install:
cd /var/lib/mediawiki/extensions
sudo wget -O currentrecaptcha.zip http://recaptcha.googlecode.com/files/recaptcha-mediawiki-1.7.zip
sudo unzip currentrecaptcha.zip
sudo rm currentrecaptcha.zip
  • Sign up for a private/public key pair from the ReCaptcha website.

  • Edit the Mediawiki LocalSettings.php file (assuming you put it in /etc/mediwiki):
sudo nano /etc/mediawiki/LocalSettings.php
and add the following lines:
#For ReCaptcha
require_once( "$IP/extensions/recaptcha/ReCaptcha.php" );
# Sign up for these at http://recaptcha.net/api/getkey
$recaptcha_public_key = ' xyxyxyxyxyxyxyxyx ';
$recaptcha_private_key = ' ababababababababa ';
where xyxyxyxyxyxyxyxyx is the public key obtained in the previous step and ababababababababa is the private key.
Now ReCaptcha should appear automatically for new user sign-ups, anonymous edits that contain new external links, and brute-force password cracking attempts.


Twiki

Twiki is an open source wiki engine used by many small to medium size companies internally. It has an active development team with multiple plugins. See the website for installation instructions. Install:

sudo apt-get install twiki

Moin Moin


Moin Moin is free, open source (GPL-licensed) wiki software written using Python, with a large community of users, including the Apache, Debian, and Ubuntu wikis. See these Ubuntu installation instructions. Install:

sudo apt-get install python-moinmoin

TiddlyWiki

TiddlyWiki is an open source personal wiki. It is ideal for creating a list of things to do, note taking, or as a collaboration tool for a small team. It is a single HTML file that can reside on your computer or can even be uploaded to a web server and be used as a simple website. It is developed using a Firefox browser as an interface. Installation instructions are on the website.


Web Publishing



Drupal (Web content publishing)

Drupal is the leading open-source website creation and content collaboration tools. A modular approach to website building, from simple out-of-the-box websites to complex sites is possible with a short learning curve. Get more info on how to get started. Drupal requires an installation of a LAMP server stack; if you have not already installed LAMP, it will be installed along with Drupal 6. I have found it easier to use the MySQL database (the "M" in LAMP), but Drupal6 can also integrate with PostgreSQL if you have it installed. Drupal is available as a package, or from the command-line terminal:


sudo apt-get install drupal6
  • After everything is installed (and the problems below sorted out), restart the apache2 server:
sudo /etc/init.d/apache2 restart
  • Finish installation through your browser:
http://localhost/drupal6/install.php

Installation quirks


Exim vs. Postfix
Exim and Postfix are mail handlers. I had installed Postfix at the time I installed my Ubuntu server (but was not using it). But Drupal uses Exim and therefore removes Postfix at installation and installs Exim instead. Therefore, it is better not to use Drupal on a mail server that uses Postfix.


WordPress


WordPress is a popular free open source web content manager that started as a blog tool and now incorporates many publishing elements. For bloggers and small to medium-sized websites, WordPress provides the fastest installation and customization process with many modules. WordPress requires an installation of a LAMP server stack first. Then install:

sudo apt-get install wordpress
  • Make a symbolic link from your Apache2 www folder to your installation folder and install a new MySQL database named localhost to use with WordPress:
sudo ln -s /usr/share/wordpress /var/www/wordpress
sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress localhost

Note: If you already know the name of your (virtual) host URL for WordPress, then use it as the name of your database instead of localhost. For example, my URL is mysite_x.homeserve.org so my command is:

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress mysite_x.homeserve.org
  • If you will access your WordPress server through a virtual host, then create your virtual host configuration file in the /etc/apache2/sites-available folder. Once you have edited the file, make a symbolic link from it to the /etc/apache2/sites-enabled folder. Restart apache2:
sudo /etc/init.d/apache2 restart
  • Install WordPress through a browser:
http://localhost/wordpress
or, if you are using a virtual host:
http:/mysite_x.homeserve.org/wordpress
Note: The Jaunty repositories contain version 2.7.1, which is subject to a security worm. If you install this version, please update immediately to the current version from the Tools -> Upgrade menu. (Alternatively, install the current source version from the website.)

For the automatic updater to work, all the WordPress files, folders, and subfolders must be owned by www-data (which is also the owner of the apache2 process) prior to updating.

sudo chown -R www-data /usr/share/wordpress


Joomla (Web content publishing)

Joomla is a powerful open source website creation and content management tool that allows website creation for use in every arena from the simple to complex corporate environments. Info for beginners is a good place to start.


Scribus (Desktop publishing)

Scribus is an open-source package that provides professional-appearing desktop publishing.


sudo apt-get install scribus

Plone (Content Management System)

Plone is a free, open source (GPL-licensed) multi-platform content management system used by many large organizations around the world. It is available with an integrated installer here. Some users have had some difficulties in Jaunty, due to changes in Python.


Gallery (Photo album website)


Gallery is a PHP-based method of presenting a photo album on a website. A [http://drupal.org/project/gallery Drupal interface is also available for Gallery2. Install:

sudo apt-get install gallery2

Distance teaching


Moodle


Moodle is a free open source platform for hosting online learning courses. It can be integrated with webinar software. A LAMP server installation is required (sudo tasksel install lamp-server). Also find free Moodle themes here. Install:

sudo apt-get moodle
  • Database server software for Moodle: mysql-server -> follow remainder of instructions. Assuming the database is hosted on the same computer as the one Moodle is being installed upon, accept localhost for the options when prompted.

  • Edit Moodle configuration options (if needed):
sudo gedit /etc/moodle/config.php
  • Edit Moodle apache2 configuration file (if needed):
sudo gedit /etc/moodle/apache.conf
  • Finish installation through the browser. (I recommend the "unattended" installation.)
http://localhost/moodle/admin

Claroline

Claroline is a free open source platform for hosting e-learning courses and online student collaboration. A LAMP server installation is required. Installation is from source files available at the website, with instructions found here.


Dokeos


Dokeos has a free learning platform, but also a medically-oriented proprietary platform that includes modules for case presentations and imaging. It is widely used in Europe.


Software Development


Kompozer Web Development Editor

Kompozer is a Gecko-based web authoring system that combines web page editing with web file management in a WYSIWYG manner. It supports XML, CSS, and JavaScript in an XUL architecture.


sudo apt-get install kompozer

Quanta Plus (Web IDE)

Quanta Plus is an integrated development environment integrated with the KDE desktop. It allows webpage development, database design, and XML design and scripting, for example, using multiple development tools. The latest stable version is 3.5, however, and integrates with the KDE 3.5 environment (Ubuntu Hardy Heron). You should therefore use Ubuntu Hardy Heron with this product. (There is also a commercial version (Quanta Gold), also oriented towards KDE 3).

sudo apt-get install quanta kompare kxsldbg cervisia

Netbeans IDE


Netbeans is a free open-source integrated development environment used to create applications using Ajax, Ruby, pHp, Groovy, Java, Javascript, C++, and other scripting tools.

sudo apt-get install netbeans

BlueFish Web Development Editor

BlueFish is a GTK-based (Gnome-oriented) editor to write websites, scripts and programming code. It supports perl, Python, pHp, CSS, XML, Java, Javascript, C, SQL, and other formats.

sudo apt-get install bluefish

Gobby (Multi-user development)


Gobby is a free, multi-platform open source collaborative editor supporting multiple documents in one session and a multi-user chat. Install:

sudo apt-get install gobby

Eclipse IDE

Eclipse is a free open-source cross-platform integrated development environment with plugin support for a large set of programming languages, e.g. Java, C/C++, Python, PHP.

sudo apt-get install eclipse

Version control software


Copies of software being developed at many different locations require a method to ensure that the multiple distributed copies remain synchronized. This can be done using a central repository or using a distributed synchronization technique. For further information, see the official Ubuntu documentation. Several version control platforms exist:


Personal repositories

(K)Ubuntu uses Debian (.deb) packages. Individuals or organizations can create repositories for personal or specialized use. See the Debian wiki introduction. Also see this Ubuntu community advice and this.


mini-dinstall


Using mini-dinstall with dput, a simple repository can be created. This can then be copied to an online server for public or private access. See this tutorial and this.


Debarchiver

DebArchiver is a command-line utility that allows the creation of a folder-based repository. Instructions are from man debarchiver. Install:

sudo apt-get install debarchiver


Science, Technology, and Engineering Applications

What .. you thought Ubuntu was just for play? Also see Ubuntu Science.


Health applications


VistA (Enterprise Electronic Health Record)

OpenVistA and WorldVistA are two varieties of the largest and most robust CCHIT-approved electronic health record platform in the public domain. They are GPL licensed, are based on the US Veterans Administration health record system, and can be installed as an integrated database, server, and client system.

CAD

  • QCAD is a commercial CAD alternative to AutoCAD with a community open source edition. Install:
sudo apt-get install qcad
  • VariCAD is a commercial 3D CAD package for multiple platforms (including Linux). There is no open source or community version.

Mathematical solutions


Scilab, Octave, and Freemat are three open source solutions for solving complex numerical mathematical problems. Symbolic mathematical problems can be solved with Maxima and Mathomatic. All of these programs are included in the Ubuntu Universe repositories.


Octave

Gnu Octave is a free, open source (GPL licensed) platform for solving linear and non-linear equations, similar to (and mostly compatible with) Matlab. It interfaces well with Gnuplot. For troubleshooting tips, see this thread. Install:

sudo apt-get install octave3.0

Also recommended:

sudo apt-get install libatlas3gf-base gnuplot qtoctave
Note: QTOctave is a GUI for Gnuplot or Easyplot 1.1, and and the ATLAS library is an algebra-software-optimization set of utilities.

EasyPlot 1.1 is an alternative to GnuPlot, with a version that can be used with QTOctave. It must be installed from source.

An older GUI for Octave/Gnuplot is qgfe (available as the package qgfe).



Freemat

Freemat is a free, open source (GPL licensed) platform for solving linear and non-linear equations, similar to (and mostly compatible with) Matlab. Install from Add/Remove Programs (Edutainment) or

sudo apt-get install freemat

Maxima

Maxima is a free, open source (GPL licensed) computer algebra system (CAS) for doing symbolic mathematics. It can solve equations with many variables, simplify expressions, do calculus, and many other advanced operations. To install:


sudo apt-get install wxmaxima
To run, enter:

maxima
or select wxMaxima from the Applications/Science menu. wxMaxima is the standard Maxima GUI.


Mathomatic

Mathomatic is a free, open source (LGPL licensed) command-line computer algebra system for doing calculations and symbolic mathematics. It can automatically solve and simplify algebraic equations, do some calculus, and other simple but useful operations. To install:

sudo apt-get install mathomatic mathomatic-primes

To run, enter:

mathomatic
or select it from the Applications/Science menu.


Amateur Radio applications

Fldigi is a free, open-source (GPL) application for digital-mode amateur radio communications using a sound card. Enable "Community Maintained Software (universe)" in Software Sources; then install either from Add/Remove Programs under (Amateur Radio) or by typing

sudo apt-get install fldigi


Amateur Electronics


Arduino

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, and hobbyists interested in creating interactive objects or environments. See this tutorial.


LaTeX


LaTeX is a LaTeX is a free high-quality typesetting system for the production of technical and scientific documentation.


LyX

LyX is a WYSIWYG frontend and GUI interface useful in creating documents formatted for LaTeX. Install:

sudo apt-get install lyx

LaTeX Reference Managers


  • The standard LaTeX bibliography (BibTeX) tool can be manipulated with one of several tools:
  • nbibtex. Install:
sudo apt-get install nbibtex
  • jabref. Install:
sudo apt-get install jabref
  • biblatex. Install:
sudo apt-get install biblatex

  • kbibtex (for KDE). Install:
sudo apt-get install kbibtex
  • Zotero is a Firefox plugin that allows culling references (and reference content) from online references.

Miscellaneous software (not endorsed by this guide)


JBidwatcher


JBidwatcher is a Java-based application allowing you to monitor auctions, submit bids, snipe (bid at the last moment), and otherwise track your auction-site experience. See the website for more details.


Utilities

Utilities facilitate everyday tasks, such as keeping the clock up to date, archiving utilities, and more.


Archiving Utilities


ZIP


The command-line terminal utility ZIP creates files that are compatible with the time-honored PKZIP and WinZip. It is included in (K)Ubuntu by default. Extracting zip files can be done with the unzip utility. using the -P option allows using a password for the files:

zip -r -P mypassword desination.zip *
Note: The -r option indicates to include all subdirectories recursively.


FileRoller (Archiving GUI)

FileRoller is a GUI for many types of archival utilities.


X-archiver (Archiving GUI)
Xarchiver is a GTK-based GUI front-end for many archiving utilities. Install:

sudo apt-get install xarchiver

BChunk


BChunk is a command-line utility that allows you to convert .cue and .bin files into an .iso file (so that they can be opened and manipulated in Ubuntu).
Warning: If the bin/cue image has audio tracks, they will be lost.

Get BChunk

sudo apt-get install bchunk
To convert .cue and .bin files, navigate to the folder and run this command (replacing filenames with your own):

bchunk inputfilename.bin inputfilename.cue outputfilename.iso
After the file is converted into ISO you can mount it using:

sudo mount -o loop outputfilename.iso /media/output
Navigate to /media/output and you should see all the content there. You can then copy it anywhere.

To unmount:


sudo umount /media/output

HJSplit Files Joiner/Splitter

HJSplit for Linux (Java version).

  • Make sure you have Java Runtime Environment installed:
sudo apt-get install sun-java6-jre
  • Download the HJSplit JAR file:
wget http://www.freebyte.com/download/hjsplit/hjsplit_g.jar

  • Create the directory for HJSplit:
sudo mkdir /opt/hjsplit
  • Move the file to an appropriate directory:
sudo mv hjsplit_g.jar /opt/hjsplit/
  • Run:
cd /opt/hjsplit/ && java -jar hjsplit_g.jar
Note: You could also make a terminal shortcut (menu item) in K Menu Editor.

Rar


Rar archives files into the proprietary .rar format.

sudo apt-get install rar
This application is a 40-day trial.


Unrar

Unrar extracts files archived with the proprietary .rar format. A free version can be installed:

sudo apt-get install unrar-free
or the proprietary version (also free for noncommercial use) can be installed with the ubuntu-restricted-extras package or with:


sudo apt-get install unrar

7-Zip

The open-source 7-Zip archive format was originally designed for Windows (and DOS) but is also available for Ubuntu. The GNU/Linux version of 7-Zip does not come with a GUI, but Ark can hook into 7-Zip to handle 7z archives. Install:

sudo apt-get install p7zip-full
To allow the 7-Zip extension for Ark to extract .rar files, also install:

sudo apt-get install p7zip-rar

Hard Drive Utilities



KDiskFree (Hard drive properties monitor)

KDiskFree is a KDE utility for monitoring free disk space, etc.

sudo apt-get install kdf

Clock Utilties


Screensavers


A screensaver is useful as a security precaution as well as a power and screen element saver. Using even a simple "Blank Screen" screensaver with a password can slow a potentially malicious passerby from gaining access to your keyboard and computer while you are away from your desk.

Menu -> System -> Preferences -> Screen Saver
  • Set a security password:
Screen Saver -> Lock screen when screensaver is active (ticked)

Partition Managers

GParted Partition Manager

Gparted is a GTK (Gnome)-based partition manager that can also be used with KDE.


  • This utility works best when run from a LiveCD. Recent versions of the Ubuntu LiveCD have a copy of GParted on them. Start the Ubuntu LiveCD in demo mode (not in install mode) and then start GParted:
Menu -> System -> Administration -> GParted
  • An alternative is to download the Gparted .iso image here. Follow these instructions to burn this .iso image to CD. Use this GParted LiveCD as your partition manager.

  • You can also install the package into your OS (once it is installed on your hard drive):
sudo apt-get install gparted

System Backup and Recovery


Rsync

Rsync is the directory backup and transfer tool for Linux. It is installed by default in Ubuntu. It can provide any type of backup, and options are extensive. Several GUI frontends for Rsync are listed here.



GRsync

GRsync is a GTK-based GUI front-end for Rsync. Install:

sudo apt-get install grsync

Bacula

Bacula is the most widely-used GTK-based open source (GPL-licensed) network backup utility that is used in both server and desktop installations. A catalogue of backups can be maintained using MySQL, PostgreSQL, or SQLite. For more info see the Ubuntu documentation. Both text-based and GUI frontends are available. Install the MySQL version:


sudo apt-get install bacula

SBackup

SBackup is a simple backup and restore utility for the GTK-desktop. Install:

sudo apt-get install sbackup

Keep (Backup and Recovery)


Keep is a QT/KDE based backup utility used in previous versions of Ubuntu. It is no longer maintained and is not included in Ubuntu by default. Install:

sudo apt-get install keep
Run:

  • Menu -> Applications -> System Tools -> Keep (Backup System)
  • Backup:

Click "Add a Directory to Backup"
Select directories you wish to backup
Select a location to place the backup
Set how often you wish the backups to take place, and how long to keep them
Click "Backup Now"
Select the directory groups you wish to backup.
  • Recover:
Click "Restore a Backup"
Select the directory groups you wish to restore.


Partimage (Partition backup)

Partimage is a free open-source utility to back up an entire partition into an .iso image. It can be used across a network, as well. Install and run:

sudo apt-get install partimage
sudo partimage
Partimage cannot be used from within the partition you wish to backup. You will either have to run it from a different partition or from a LiveCD that contains it. (A serious limitation of Partimage is its inability to backup/restore split image files to/from multiple media (e.g. spanned DVDs/CDs), limiting its usefulness as an inexpensive cloning and distribution solution. Partition image backup/restoration must be to/from a single hard drive, large capacity USB stick, or networked storage space.)


cp


An entire partition's filesystem can easily be copied to another partition using the cp -a command. (However, this cannot be done for the partition of a filesystem that is running. Use the (K)Ubuntu LiveCD to copy partitions when necessary.) Obviously the destination partition should be as large or larger than the source partition, and while not necessary, probably is best if both partitions are of the same filesystem type (e.g. ext4). Use GParted to create or manipulate the destination partition, if necessary. To copy the entire filesystem, for example, from the ext4 partition /dev/sda6 into the ext4 partition at /dev/sda7, mount both partitions:

sudo mkdir /media/partsda6
sudo mkdir /media/partsda7

sudo mount /dev/sda6 -t ext4 /media/partsda6
sudo mount /dev/sda7 -t ext4 /media/partsda7
Then merely copy the contents from one partition to the other:

sudo cp -a /media/partsda6/* /media/partsda7

Of course, once the partition's filesystem is copied, a bootmanager (Grub2 or Grub Legacy) will have to be updated/reconfigured to recognize the new partition's OS in order to enable it to boot. Also, the /etc/fstab file of the new partition's filesystem may need to be edited (in regards to the UUIDs of the various partitions), to prevent conflicts. To determine the UUIDs of all current partitions on a hard drive:

sudo blkid
Edit fstab so that the UUIDs are correctly reflected there.


dd

dd is a *nix command that enables the copying of files or an entire disk using a single command. Parameters must be precisely specified to avoid risk of accidentally erasing data. See these brief instructions or these instructions for detailed options. You cannot copy a hard drive that contains the operating system you are currently running. Instead, boot into a LiveCD and run the dd command that way. An example command to copy Hard drive X to Hard drive Y is:


dd if=/dev/hdx of=/dev/hdy
  • ddrescue is a variation of the dd command that allows working with potentially corrupted datasets, partitions, or hard drives.

FSArchiver (Filesystem Archiver)

FSArchiver is a utility to backup the filesystem by files (instead of by partition blocks). A filesystem backed up in this way can be moved to a different sized partition or another disk filesystem altogether (e.g. from ext3 to ext4). Backups can be split and stored on (and restored from) spanned media (e.g. multiple DVDs/CDs). It is included in the System Rescue CD. Install:


sudo apt-get install fsarchiver

System Rescue and Cloning Utilities


System Rescue CD

SystemRescueCD is a LiveCD that includes important utilities such as GParted, Partimage, ddrescue, Rsync, and FSArchiver. Several of these utilities cannot be used from within a running partition, so using them from a LiveCD is often necessary. Download and burn the LiveCD from the website.



Clonezilla

Clonezilla allows the backup or duplication of a partition for a single machine or for multiple machines over a network. (It is similar to Norton Ghost.) It includes Partimage, partclone, and other utilities. It is available as a LiveCD which can then be burned. (A serious limitation of Clonezilla is its inability to backup/restore split image files to/from multiple media (e.g. spanned DVDs/CDs), limiting its usefulness as an inexpensive cloning and distribution solution. Partition image backup/restoration must be to/from a single hard drive, large capacity USB stick, or networked storage space.)



Disk Imaging software

  • G4U is a utility to image a disk bit by bit.
  • G4L is a utility to image a disk bit by bit. It includes a GUI interface.

Ubuntu Customization Kit

sudo apt-get install uck

Remastering software

Debian and (K)Ubuntu Linux operating systems can be "remastered" and customized (using one of a number of utilities) for re-distribution. (See this Wikipedia list.) This enables an organization to pre-load desired applications and customizations for distribution among its members, while preserving the intrinsic architecture and function of (K)Ubuntu. The customized (K)Ubuntu OS can then be distributed on a CD or on a USB flashdrive. Users are then free to further customize the OS, or even to revert back to the original default (K)Ubuntu settings. Also see the Ubuntu wiki.

  • oem-config-gtk
sudo apt-get install oem-config-gtk


Run Ubuntu LiveCD from a USB pendrive

The Ubuntu LiveCD can be installed on and run from a USB pendrive. Settings can be "persistently" saved (but the LiveCD kernel modules can not be upgraded). Programs can be installed and run, however, and files saved to the USB drive. (The installed programs will remain installed). See these Pendrivelinux instructions. An Ubuntu Live CD is needed to do the install.


The USB "LiveCD" can also be used to install Ubuntu on computers (including netbooks) that do not have CD-ROM/DVD drives.

USB pendrives to be used to run Ubuntu should have a minimum of 2 Gb (preferably 4 Gb). If you wish to install a fast, fully functional Linux system on a pendrive that has less memory than that, use PuppyLinux.


Create a boot CD to allow booting from the USB drive

Many computers do not allow booting from a USB drive (but they do allow booting from the CD-ROM). You can create a CD-ROM using these Pendrivelinux instructions and set your BIOS to boot from this CD-ROM. When you boot from this CD-ROM, it will use the bootup files on the Ubuntu USB drive you previously created (in the step above).


USB Creator


You can make a "LiveCD" on a USB pendrive using USB Creator and either a LiveCD or an .iso version of the LiveCD stored on your hard drive. See these instructions or these PendriveLinux instructions. Install:

sudo apt-get install usb-creator

User Administration


Users and Groups


Menu -> System -> Administration -> Users and Groups
  • Add New Users
Menu -> System -> Administration -> Users and Groups -> Add
  • Remove Users
Menu -> System -> Administration -> Users and Groups -> user -> Delete
  • Modify Users
Menu -> System -> Administration -> Users and Groups -> user -> Advanced Settings
or
Menu -> System -> Administration -> Users and Groups -> user -> Manage Groups
It is quite often necessary to have extra privileges to do certain tasks. These privileges are assigned to your user by belonging to certain groups. The tasks are allowed to be performed by any user belonging to the group associated with that task.


Example: a "sudoer" is a user who can perform certain administrative tasks, such as updating the system. To become a "sudoer" a user must belong to the "sudo" group.
Menu -> System -> Administration -> Users and Groups -> user -> Manage Groups --> sudo -> Properties -> Group Members -> user (ticked)
To become an administrator, you must belong to the adm, admin, and sudo groups.
To be a virtualbox user, you must belong to the virtualbox group. To change printer settings you must belong to lpadmin. To use the cdrom, you must belong to cdrom. To use hot-pluggable devices, you must belong to plugdev. To share Samba folders (on a Windows-based network), you must belong to sambashare. To access NTFS files using the virtual filesystem fuse, you must belong to the fuse group. To use many games, you must belong to the games group. The list is long, and not always obvious.

Unfortunately, while this is the feature that gives Linux such a high-level of security, it can also take diligence to remember to add your user to certain groups. It is not uncommon for programs and functions on your system not to work merely because you don't have privileges to do so because you forgot to add your user to the appropriate group(s).

Of most importance, you must already be an administrator in order to change membership in groups. Therefore, if you create a new user and intend to give that user administrative privileges (by assigning the user to the administrative groups), you must do so from your original administrator account (the one you set up at installation) or from another administrative user account.


Timekpr (Parental controls)

Timekpr is a program to track and control the computer usage of user accounts.

  • If updating, remove any prior versions:
sudo dpkg --purge timekpr

sudo add-apt-repository ppa:nedberg
  • Install:
sudo apt-get install timekpr
When prompted which default display manager to use, select "gdm"
  • Start:
Menu -> System -> Administration -> Timekpr Control Panel

Web content filtering

DansGuardian provides web filtering capability, similar to NetNanny. It is useful for limiting objectionable content in publicly accessible workstations, or for filtering objectionable content for younger users. It integrates with ClamAV, and uses several criteria for filtering websites (which is difficult to modify). It is used with Tinyproxy (best for individual users) or the Squid proxy (best for a network server). Install:

sudo apt-get install dansguardian tinyproxy

or
sudo apt-get install dansguardian squid
See these installation instructions for setup details. In brief,

  • Edit the dansguardian configuration file:
sudo nano /etc/dansguardian/dansguardian.conf
comment out the UNCONFIGURED line:
#UNCONFIGURED

If using tinyproxy instead of Squid, change the proxyport to 8888:
proxyport 8888
  • Reinstall dansguardian:
sudo apt-get install --reinstall dansguardian
  • Set your browser to use the localhost:8080 proxy. For example, in Firefox:
  • Firefox -> Edit -> Preferences -> Advanced -> Network -> Settings

  • Manual proxy configuration -> HTTP proxy: localhost -> Port: 8080

System Administration


Automating Tasks

  • Tasks (cron events) can be automated/scheduled using the GNOME schedule GUI interface.

Menu -> System -> Administration -> Task Scheduler
  • If the GNOME Schedule task scheduler is not installed, install it:
sudo apt-get install gnome-schedule

Boot Menu



Login Menu settings

You can change the Login menu settings from the GUI interface:

Menu -> System -> Administration -> Login Manager
You can choose an integrated theme or select individual components of the login screen/process.


Automating bootup options


StartupManager is a GUI to manage settings for Grub (Grub Legacy), Grub 2, Usplash, and Splashy.


GRUB boot manager settings


Grub2
Maverick comes with Grub2, a difficult boot manager to customize. (Grub2 is also known as grub-pc.) See the evolving instructions at the Ubuntu wiki or Ubuntu forums. In brief, some settings can be edited:


sudo nano /etc/default/grub
sudo grub-mkconfig --output=/boot/grub/grub.cfg
Alternatively, use the command:

sudo update-grub

GRUB Legacy
The older version of GRUB ("Grub Legacy") is available, for use with a boot partition, for example. Install:

sudo apt-get install grub
  • If you have multiple operating systems (OS) on your computer, you may be using the GRUB Legacy boot manager (in a boot partition, for example). You can edit the options for GRUB Legacy in the menu.lst configuration file.

sudo nano /boot/grub/menu.lst
(gedit can also be used instead of nano as the text editor.)

Chainloading Grub2 from Grub Legacy
To chainload Grub2 (installed in this example in the /dev/sda7 partition) from Grub Legacy, use an entry of this format in the Grub Legacy menu.lst configuration file (stored in a boot partition, for example):

title Kubuntu Maverick OS (chainloader)
rootnoverify (hd0,6)

kernel /boot/grub/core.img

Default Applications

In previous version of ubuntu, you could choose which program to use as your default program for a specific task.

Menu -> System -> Administration -> Default Applications
or by right-clicking on any file and choosing the "Open with Other Application..." option.


The Default Applications menu has now been removed from Ubuntu, however. For a GUI that will allow this and multiple similar Ubuntu system tweaks, install Ubuntu Tweak:

wget http://launchpad.net/ubuntu-tweak/0.5.x/0.5.8/+download/ubuntu-tweak_0.5.8-1_all.deb
sudo dpkg -i ubuntu-tweak_0.5.8-1_all.deb

Kill a process

Sometimes a program (or "process") just freezes. To "kill" (or end) the program/process:

Menu -> System -> Administration -> System Monitor -> highlight the errant process -> Kill process
From the command line:

sudo killall process
where process is the name of the frozen program, such as firefox.

Enabling NUM LOCK On Startup


Menu -> System -> Administration -> Keyboard & Mouse -> Keyboard ->"turn on Numlock on Startup"

Working with Menus



Create an encrypted folder

You can create a folder whose contents are encrypted. See these instructions.


Create a symlink from a file to another location

A symbolic link (also known as a symlink) is a method in Linux of referring to a file (or directory) in one location from another location. Usage:


ln -s /path/to/source /path/to/destination
If /path/to/destination requires superuser rights, then use:

sudo ln -s /path/to/source /path/to/destination

This is similar to, but more powerful than, creating Shortcuts, with which former Windows users may be familiar.


Assign a root password

To be able to log in as root directly, you must assign a root password. This can be done with:

sudo passwd root
Afterwards, you can use

su
to get a root prompt. You would then use the root password.


Get a root prompt without using a root password


If you have not set a root password (or don't know it), you can obtain root user privileges anyway. From the command-line Terminal:

sudo -s
or
sudo su
or
sudo bash
You will use your own user password instead of a root password.

You could also get a prompt to become any other user on the computer by typing:


sudo su <username>

Use the File Manager as root

sudo nautilus
or
gksudo nautilus

Manually Mount and Unmount a device


To manually mount a device:

mount /dev/hda
replace /dev/hda with the location of the device.

To manually unmount a device:

umount /dev/hda
replace /dev/hda with the location of the device.


Windows Compatibility


Mounting NTFS Partitions (with read/write privileges)


Find out the name of your ntfs partition:

sudo fdisk -l
Method 1:
In this example, the NTFS drive is listed by fdisk as /dev/sda2, but yours may differ.

Make a mount point for the drive:

sudo mkdir /media/WindowsNTFS
Edit fstab:

sudo nano /etc/fstab
Comment out the automatically added lines by Ubuntu installation:

#/dev/sda2  auto nouser,atime,noauto,rw,nodev,noexec,nosuid 0 0
#/dev/sda2 /mnt auto user,atime,noauto,rw,nodev,noexec,nosuid 0 0

and instead add the line:

/dev/sda2 /media/WindowsNTFS ntfs-3g quiet,defaults,rw 0 0
Note: There are many ways to mount the drive, depending on your needs. The fstab file controls this process. See How to edit and understand fstab and Intro to using fstab.

In this example, I indicated that the file system was an ntfs-3g filesystem, so did not use the auto option (which detects the filesystem automatically). I used rw to specify read/write privileges for all users, but umask=0 and umask=000 are accepted by some kernels.




Method 2:
Edit fstab:

sudo nano /etc/fstab
When Ubuntu installation finishes, it mounts all ntfs partitions automatically with ntfsprogs, adding a line similar to the following to fstab:

UUID=8466268666267956 /media/sda1     ntfs    defaults,gid=46 0       1
Change this line to:

UUID=8466268666267956 /media/sda1     ntfs-3g    defaults,nls=utf8,locale=zh_CN.UTF-8,rw,gid=46 0       1
In this example, I have a Chinese-language Windows installation on my first partition, so I set the locale parameter (locale=zh_CN.UTF-8) so that my Chinese documents can display correctly. Setting rw (same as umask=0 or umask=000) lets me read/write the partition without sudo. gid=46 specifies that the drive will belong to the group of hot-pluggable devices (plugdev) and is not necessary unless your ntfs drive is a hot-pluggable one (such as an external USB drive). nls=utf8 is the default and is optional for most ntfs users, but there are other options for Chinese (and other specialized character-set users).


Mounting FAT32 Partitions


Follow the above instructions, but use vfat instead of ntfs-3g.

In other words, if you have made a mount point directory /mnt/WindowsFAT32 and your FAT32 drive is /dev/sda3, then edit the /etc/fstab file to include the line:

/dev/sda3 /mnt/WindowsFAT32 vfat quiet,defaults,rw 0 0

Synchronize clock to network time server

The Network Time Protocol (NTP) allows time synchronization of your computer to time servers on the Internet.To enable it:

  • Applications menu -> System Settings -> Date & Time

  • Check the "Set date and time automatically" option
  • Choose an ntp time server near you.

Hardware


CPU and motherboard

The Linux kernel in versions of (K)Ubuntu starting with Karmic Koala implemented mandatory CPU temperature and fan speed sensor monitoring (which was optional in previous kernels). The output from the sensors is used to effect CPU scaling (throttling) in the event of "out of range" temperature values. However, not all motherboards/CPUs have sensor drivers available, and due to a bug in the feedback routine, missing sensors drivers incorrectly report as an "out of range" error in the kernel. Originally this threw multiple errors which were logged (using rsyslogd) to both the /var/log/kern.log and the /var/log/syslog files, filling them to multiple Gb size within a few hours. This had the effect of slowing, then freezing, the machine. Currently, the machine will simply not boot.

If your machine is affected by this problem, you may be restricted to versions of (K)Ubuntu that are Jaunty or earlier (or you must undertake extensive workarounds).


Disable CPU Frequency scaling


(Note: These instructions may not work with newer Linux kernels.)
My motherboard does not have drivers for my CPU fan sensor. Therefore, the Linux kernel cannot monitor the temperature and fan speeds properly and throttles the CPU (aka frequency scaling) inappropriately. This has the effect of slowing or freezing my computer. To turn off this behavior, I used the Debian RCConf utility:

sudo apt-get install rcconf
sudo rcconf
and unchecked the ONDEMAND item. (I also unchecked the fan control item). I then rebooted. For more info, see this.


libsensors

libsensors is the module that monitors your motherboard/CPU temp and fan speeds. (It is not used by lm-sensors). You can adjust settings:

sudo gedit /etc/sensors.conf
sensors -s
Some hardware CPU sensors are not recognized by the Linux kernel, causing system slowdown or freezing. Here is some info about hardware/sensors problems.



Sensors-applet (Motherboard monitoring)

Sensors-applet (or xsensors) is the Gnome (Ubuntu) frontend for lm-sensors. These sensors monitor the temperature and fan-speed sensors of your motherboard.

sudo apt-get install sensors-applet lm-sensors
sudo sensors-detect
sensors-applet
  • Make sure your sensors are installed.
sensors
For more info, see this thread.



Graphics Cards


Install Latest Nvidia/ATI drivers

Ubuntu uses a GUI frontend to Jockey for the installation of the proprietary nVidia drivers (and other proprietary drivers).

Menu -> System -> Hardware Drivers
  • Sometimes after a kernel upgrade a proprietary driver may stop working. In such a case, try installing the new linux-headers that match the newly upgraded kernel:
sudo apt-get install linux-headers-$(uname -r)
If dkms and build-essential have never been installed on your system, these can also be worthwhile:
sudo apt-get install dkms build-essential

Intel integrated graphics cards

  • With the default installation of Maverick, my computer with integrated Intel graphics blanked the screen at bootup and then froze. These steps work around this problem.
  • When booting up, choose recovery mode as root (or "root with networking"). This will give the command line (as root user).

  • Edit the Grub2 configuration file:
sudo nano /etc/default/grub
  • Change the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
to
GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.modeset=0"
  • Then regenerate the Grub2 configuration file:

sudo grub-mkconfig --output=/boot/grub/grub.cfg
When I then rebooted, my graphics worked.

Intel graphics resolution problems
  • On a fresh installation of Karmic Koala I had no problems with my onboard Intel graphics card. However, on an update from Jaunty to Karmic, I could not get higher screen resolutions -- the same problem I had in Jaunty. A solution to achieve higher resolutions is to revert to the old Intel drivers (used in Intrepid), as detailed here.

Screen Keeps Flickering

If you have an Intel Corporation Mobile 915GM/GMS/910GML card, your screen may flicker every 5-10 seconds. To prevent this:

  • Menu -> System -> Administration -> Advanced -> Service Manager -> Uncheck "Detect RANDR (monitor) changes"

Reconfigure xserver-xorg


sudo dpkg-reconfigure xserver-xorg

xorg.conf

Before installing any driver for ATI or nvidia, please make backup xorg.conf before following this method.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
If you have edited this file but would like it to be automatically updated again, run the following command:

sudo dpkg-reconfigure -phigh xserver-xorg
If you want to try this xorg.conf after installing the driver, you must back up your xorg.conf as following. And then, edit /etc/X11/xorg.conf in text editor. Add or modify this xorg.conf sample.



xorg.conf for nvidia
Section "Screen"
 Identifier "Default Screen"
 Device "Configured Video Device"
 Monitor "Configured Monitor"
 SubSection "Display"
 Depth 16
 Modes "1280x1024" "1024x768"
 Option "AddARGBGLXVisuals" "True"
 EndSubSection

 Option "AddARGBGLXVisuals" "True"
 Defaultdepth 24
 EndSection
 Section "Module"
 Load "glx"
 Load "GLcore"
 Load "v4l"
 EndSection
 Section "Device"
 Identifier "Configured Video Device"
 Boardname "vesa"
 Busid "PCI:1:0:0"
 Driver "nvidia"
 Screen 0
 EndSection

 Section "Device"
 Identifier "Device0"
 BoardName "Generic Geforce 5500"
 Driver "nvidia"
 Vendorname "NVIDIA Corporation"
 Option "DualHead" "1"
 Option "ShadowFB" "1"
 Option "FPScale" "1"
 Option "TwinView" "True"
 Option "TwinViewOrientation" "RightOf"
 Option "UseEdidFreqs" "True"
 Option "Metamodes" "1024x768,1024x768"
 Option "UseDisplayDevice" "DFP"
 EndSection

 Section "Device"
 Identifier "Videocard0"
 Driver "nv"
 VendorName "NVIDIA Corporation"
 BoardName "GeForce 7600 GT"
 EndSection

 Section "InputDevice"
 Identifier "Generic Keyboard"
 Driver "kbd"
 Option "XkbRules" "xorg"
 Option "XkbModel" "pc105"
 Option "XkbLayout" "us"
 EndSection

 Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 EndSection
 Section "ServerLayout"
 Identifier "Default Layout"
 screen 0 "Default Screen" 0 0
 EndSection

 Section "Extensions"
 Option "Composite" "Enable"
 EndSection

Installation of ATI and nVidia Graphics drivers


nVidia Driver

The current proprietary nVidia drivers are automatically installed using:


Menu -> System -> Administration -> Hardware Drivers
Look for the current drivers to activate there.

  • Here are alternate manual instructions.
  • Please make a backup of xorg.conf before following this method.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  • Install the nvidia-settings package:
sudo apt-get install nvidia-settings
  • Download the nVidia driver:
wget -O NVIDIA-Linux-x86-pkg1.run http://www.nvidia.com/Download/index.aspx?lang=en-us
sudo sh NVIDIA-Linux-x86-pkg1.run
and choose yes to any verbose response. After you install the driver, reboot your computer.


ATI Driver


If you have problems with ATI drivers after upgrading, check this link for solutions to common problems with ATI.


Monitors / Displays


Turn off power saving

Even when on AC power, the power saver feature of Ubuntu sometimes changes the screen brightness to the battery setting on laptops. This was a problem with the ACPI power management module in the past, but should now be fixed. If not, change the settings:

To access the Guidance Power Manager module, click on the power icon on the desktop taskbar.
Change the brightness setting for "Battery powered" to maximum.
You can also turn off power management settings (invoked when the computer is idle):

Menu -> System -> Preferences -> Power Management -> Display -> Put display to sleep when inactive for: Never -> Close

Configure Dual Monitors with nVidia

  • Make sure that the nVidia driver has been installed and is functioning properly on your first screen. Also, make sure both monitors are connected.
  • Menu -> Administration -> NVIDIA X Server Settings
or from the command-line terminal (Terminal or Konsole) type:
sudo nvidia-settings

  • Select "X Server Display Configuration".
  • You should see 3 boxes (2 if your card doesn't have an S-Video out). From here you can configure all of your card's outputs.
  • Check the "(Disabled)" box.
  • Select "Configure...".
  • The most common choice is TwinView. Select it.
  • Setup the desired screen resolutions and positions of your two active displays.
  • The new display will likely have resolution set to "Auto" to match your first. Change this if you wish.
  • Leave the first screen's position as "Absolute" and set your second display's position relative to that.
  • "Clone" means the same output on both.

  • Once you are satisfied with your settings, hit Apply to test them.
  • Note: if your displays are side-by-side, the kicker may extend across both screens as well as any maximized applications. This will be corrected when the X server is restarted.
  • If everything else is ok, hit "Save to X Configuration File". Now hit Ctrl+Alt+Backspace to restart X. You now have 2 screens!
  • Troubleshooting: if the X server fails to reload you can recover your old X configuration. In a terminal:
sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

Hard Drives and USB Storage



Optical Drives


Printers & Scanners

The new CUPS interface recognizes many printers. Specific printers not recognized can often be installed using instructions found at the Linux Foundation OpenPrinting database.


Add a Printer


Menu -> System -> Administration -> Printing -> Server -> New -> Printer
Most of the time, your printer (if connected and turned on) will be detected automatically.

My network printer with its own IP address at 192.168.0.124 was correctly installed at


socket://192.168.0.124:9100.
You can also choose printers on a Windows system via Samba and other types of networked printers, in addition to directly connected printers.


Use CUPS web interface

From any web browser, go to the URL:

http://localhost:631

Brother printers


Most Brother printers are auto-detected or can be installed directly from the CUPS interface. For additional drivers and instructions see the Brother help site. For information on a specific model, see the Linux OpenPrinting site.


HP Printers

For Hewlett Packard printers / scanners, install hplip and hplip-gui.

sudo apt-get install hplip hplip-gui

  • Add the printer:
Menu -> Applications > System Tools > HP Toolbox
This should set up printer / scanners for scanning as well.

  • For scanning, install Xsane:
sudo apt-get install sane xsane
Run:


Menu -> Applications -> Graphics > Xsane image scanning
A full library of Linux drivers for HP printers is here.


Sound


If you get no sound with a fresh install, check that the sound levels are not set to zero. Click on the sound (speaker) icon on the panel, and then mixer. You may need to expand the dialog window to show labels. Ensure levels aren't set to zero, especially PCM.

Sound is routed by Phonon either directly to your sound card or through the PulseAudio sound system. To use PulseAudio, you must install it (see below). Some experimentation with the settings in

Menu -> System -> System Settings -> Multimedia
may be necessary to make sound on your system work properly.

Try setting PulseAudio as the first sound system if you are having troubles getting sound (even if you are using ALSA). If that doesn't work, try making it the last choice.

Some programs require ALSA sound and try to send sound directly through ALSA drivers. Check your program's preferences section to see if ALSA is selected. You may have to switch to PulseAudio (or even OSSound) if you can't get sound.



PulseAudio

Maverick has PulseAudio in the repositories:

sudo apt-get install pulseaudio pavucontrol padevchooser
Add your user to the proper groups:

Menu -> System -> Administration -> Users and Groups -> user -> Manage Groups --> pulse, pulse-access, pulse-rt, audio -> Properties -> Group Members -> user (ticked)
Configure Pulse Audio:

Menu -> System -> Preferences -> PulseAudio Preferences Sound Audio preferences

HDMI with PulseAudio

I could only get my HDMI audio on my computer to work this way, and I can't quite figure out why it works.


  • I checked to make sure my Mobile Intel 4 Series HDMI audio driver was installed (it is part of the most recent kernels):
aplay -l
aplay -L
This told me the HDMI card was recognized and configured properly. The problem was that no matter what I did, I couldn't get the sound piped through the HDMI card using ALSA, Kmix or any other settings (I tried every permutation).

  • I installed Pulse Audio:
sudo apt-get install pulseaudio pavucontrol padevchooser
pavucontrol
padevchooser
  • In PAVUControl I selected the HDMI card as the output device:
Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Digital Stereo (HDMI) Output
Then everything played through the HDMI audio card (through the cable to my HDTV).

This worked whether I had PulseAudio selected as the default audio or not (in System settings -> Multimedia). Don't ask me why.

  • My HDMI port/output is only recognized if the HDMI cable is plugged in at bootup (it does not matter whether the HDTV power is on or not). If I plug in the HDMI cable after bootup, it isn't recognized.
  • After doing this, every program I use works: VLC, Audacious, or whatever. It does not seem to matter whether the application is using Default, ALSA, or PulseAudio for the audio output plugin. None of this makes sense to me, but it works. I'm happy to be able to play HDMI movies (through VLC) to my HDTV.
  • To change sound output back to my computer's internal speakers (ALSA), I returned the output setting:
Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Analog Stereo Output

Airport Express


Airport Express with Pulse Audio

Audio output can be streamed over your local network to an Airport Express. Make sure your firewall is not blocking ports 5353, 5000, and 6000. These capabilities require the pulseaudio-module-raop (for Airport Express) and pulseaudio-module-zeroconf for the Zeroconf/Bonjour networking protocol.

Install Pulse Audio:

sudo apt-get install pulseaudio pavucontrol padevchooser pulseaudio-module-raop pulseaudio-module-zeroconf
pavucontrol
padevchooser

Then configure Pulse Audio:

K Menu -> Settings -> PulseAudio Preferences Sound Audio preferences -> Network Access
and check both:

Make discoverable network sound devices available locally
Make discoverable Apple Airtunes devices available locally
You can switch between devices and control device volume independently using:


K menu -> Multimedia -> PulseAudio Device Chooser
K menu -> Multimedia -> PulseAudio Volume Control
  • Select Pulse Audio as the output device in
K menu -> System -> System Settings -> Multimedia -> Device Preference
Note: Make sure your firewall is not blocking ports 5353, 5000, and 6000.

My AEX is discovered, but I got no sound through it until I selected it as the default sink (output) by one of two methods:

  • From the PulseAudio Volume Control:
K menu -> Multimedia -> PulseAudio Volume Control -> Output Devices
then click the arrow and set the AEX device as default
  • From the PulseAudio Device Chooser:
K menu -> Multimedia -> PulseAudio Device Chooser -> Manager -> Devices -> Sinks
I then noted the name of my Airport Express device to be raop.Base-Station-e60157.local, so I entered that as the sink:
PulseAudio Device Chooser -> Default sink -> Other -> raop.Base-Station-e60157.local

Now, any devices (or multimedia players) setup to play through PulseAudio will play through the stereo attached to the Airport Express.


raop-client (Airport Express streaming)

Another method to stream audio to the Airport Express uses raop-client, a tool written in Ruby. See information here.


GSTransmit (Airport Express streaming)

GSTransmit is a tool to allow GStreamer-based utilities to stream output to an Apple AirTunes Device (such as the Airport Express). It is available as a self-installing .deb file from the website.



Airfoil (Airport Express streaming)

You can stream media from a PC running Windows or Mac OS X connected to an Airport Express network to your Kubuntu Linux desktop, using Airfoil. (Unfortunately you cannot send media output from Kubuntu to the Airport Express network with Airfoil, only receive.) This can be useful in a distributed multimedia system, for example, in which your Kubuntu PC is connected to a media center. You must be running Mono. You can download the .deb package at Rogue Amoeba. Installation instructions are at Rogue Amoeba Linux support.



Mice


Activate side-mouse-buttons in FireFox

Adding two lines to xorg.conf will activate side-mouse-buttons in FireFox.

  • This should work with most brands of the 5-button mouse. Here is a list of mice that worked with this instruction.
Logitech MX310
Logitech MX510
Logitech MX518
Logitech MX700
Logitech MX Revolution
Intellimouse Explorer (first edition)
Razer Copperhead
  • Backup X.org configuration file
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

  • Modify the X.org configuration file
kdesu kate /etc/X11/xorg.conf
  • Find the Input Device section for your mouse and add two lines as shown below.
  • You may also increase the number of buttons if your mouse has more than 7 -- just fix the rest of the section based upon the number of buttons.
Note: "back/forward", "wheel click" & "tilt left/right" all count as buttons
  • Change:

Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Option "CorePointer"
 Option "Device" "/dev/input/mice"
 Option "Protocol" "ExplorerPS/2"
 Option "ZAxisMapping" "4 5"
 Option "Emulate3Buttons"       "true"
EndSection
to:
Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Option "CorePointer"
 Option "Device" "/dev/input/mice"
 Option "Protocol" "ExplorerPS/2"
 Option "ZAxisMapping" "4 5"
 Option "Emulate3Buttons" "true"
 Option "Buttons" "7"
 Option "ButtonMapping" "1 2 3 6 7"
EndSection

Touchpad

For Synaptics Touchpads:

sudo apt-get install gsynaptics
For more info, see the Ubuntu help wiki.



Wacom Pen Tablets

Support for the Wacom pen tablet is integrated into Jaunty by default, including for hotplugging.
For more info, see the Ubuntu documentation.


Remote Controls


LIRC (Infrared Remote Controls)


LIRC (Linux Infrared Control) allows you to use most infra-red remote controls. This can be installed from
Menu -> Applications -> Ubuntu Software Center -> System -> lirc

or
sudo apt-get install lirc


Bluetooth

BlueZ is the package that allows Bluetooth connectivity in Ubuntu Linux. This package is included within the current kernel of Ubuntu. To add utilities to check whether your Bluetooth adapter's firmware is current, install:

sudo apt-get install bluez-utils bluez-firmware
then run

sudo dfutool

WiiMote


The Wiimote (Wii Remote Control) uses both Bluetooth and Infra-red technology. It communicates with Ubuntu Linux using the incorporated BlueZ Bluetooth drivers and/or LIRC drivers. (It can function with Bluetooth alone, however.) You will need a Bluetooth receiver on your PC (such as a Bluetooth USB stick or built-in Bluetooth receiver, for example). (Note: not all Bluetooth receivers will work with the Bluez drivers. Check this list or test yours first.)

  • Install the cwiid Wiimote controller package and the lswm Wiimote discovery package:
sudo apt-get install wminput lswm
  • Install the drivers (or just reboot):
modprobe uinput
Note: You can also add uinput to the modules files so it loads automatically at bootup:
sudo echo "uinput" >>/etc/modules
Run (while pressing button 1/2 on the Wiimote):

sudo wminput
For more info, and to learn how to enable the infra-red functions, see this guide.


USB


Wireless Cards



Atheros Cards

Atheros Wireless cards should work automatically with the new kernel by installing the proprietary driver. At installation, after the first reboot, you will be prompted whether to use the proprietary drivers.

It should no longer be necessary to install the following package:

sudo apt-get install madwifi-tools
These instructions for the Atheros 802.11 b/g integrated card are here for reference only (or if you wish to install them manually instead):

madwifi-hal-0.10.5.6-current.tar.gz

  • Extract the files
  • Make sure your linux headers and build-essential packages are installed:
sudo apt-get install build-essential
sudo apt-get install linux-headers-$(uname -r)
  • Unload any drivers already running.
sudo ifconfig ath0 down
sudo ifconfig wifi0 down
  • Change to the directory where you extracted the driver.
cd <directory_where_driver_unzipped>
  • From that directory, run the installation scripts:

cd scripts
sudo ./madwifi-unload
sudo ./find-madwifi-modules.sh $(uname -r)
cd ..
  • Complete the installation by compiling the source and installing it.
sudo make
sudo make install
  • Add the installed drivers to your system.
sudo modprobe ath_pci
Following this, Network Manager was able to see the wireless card and I was able to configure everything else (WEP / WPA key, etc.) from there.

Complete instructions are available at MadWifi UserDocs.


Atheros AR242x

Alternate instructions for installing the Atheros AR242x card are here.


3G

3G protocols allow wide area cellular communications that include not only cellphone voice transmission but also integrated broadband internet connections. This can be integrated into a single device, or communications can be received through an EVDO adapter. Examples of 3G radio interfaces include Mobile WiMax, CDMA-2000, TD-CDMA, EDGE, and DECT. For info using 3G with the Ubuntu Network Manager, see this page. For additional info on using 3G with Ubuntu, see this guide.


he220r1


he220r1 is a (K)ubuntu driver package for the Huawei e220 USB modem. It has also been found to work with other 3G devices, such as Nokia, Sony Ericsson, and Motorola. See the website for download and installation instructions.


T-Mobile Option 225 (Web'N'Walk) Stick

This website offers a driver optimised for the T-Mobile Web'n'Walk Stick/Option 225.


Virgin Huawei e169

See this Ubuntu forum solution:


sudo gedit /etc/ppp/options
find the line that says:

#-chap
and uncomment it (delete #)

-chap
this (I think) disables CHAP authentication

I also had to change the APN to VirginBroadband instead of VirginInternet which was the default, and now it's happy.

Other settings
Number *99#
Uname <your virgin username>

PW <your virgin password>

EVDO Cards

EVDO cards include USB modems and adapters to receive wide-area cellular broadband Internet connections.


Sprint

Sprint EVDO cards can be used most easily through KPPP. For instructions, read the Sprint Mobile Broadband Setup Guide. Also see the EVDO Forums.



Verizon

See this Crystal Networking guide.


Tethering your PC to your Verizon cell phone
This is a per-minute plan in which you can use Verizon broadband services through your cell phone (such as the Motorola RAZR) connected to your PC via a USB cable.
See this guide.



Digital Cameras


WebCams

See the Ubuntu webcam guide for more info. Many webcams that worked in Hardy Heron may not work in Intrepid Ibex. This may be due to a migration from v4l (video for Linux) to v4l2. See this discussion.


EasyCam


EasyCam2 is a utility for finding and installing drivers for your webcam. See these installation instructions.


iSight

Linux drivers for the digital iSight camera (connected by FireWire), using ALSA for sound, are here. The video component is already supported by current kernels (see here for more information).



Luvcview (USB webcam viewer)

Luvcview can be used to view your USB webcam to test it. Install:

sudo apt-get install luvcview
View your webcam:

luvcview -f yuv

Netbooks

Ubuntu can be installed on netbooks. (See this this page for laptop and netbook compatibility reviews.) At this time the Ubuntu Netbook Remix (or equivalent) is preferred to the standard Gnome-based desktop, especially for new users. Ubuntu Netbook Remix is provided to several individual netbook manufacturers (such as Asus and Acer) to be optimised for that device. (You can contact your specific netbook manufacturer for specific details on this product.) If you already have Ubuntu Netbook Remix (or eeebuntu Netbook Remix) installed, you can choose to add the full Ubuntu (Gnome) desktop, if you wish:


sudo apt-get install ubuntu-desktop
  • Asus eeePC 1000H
  • Reduce font size one or two sizes, and set the screen DPI to 120.
  • eeebuntu Netbook Remix is available for this device.
  • Dell Mini 9
  • Ubuntu Netbook Remix runs on this device well. See this guide.

  • HP Mini 1000 Mi
  • A custom edition of Ubuntu is installed on this version of this device. No additional configuration is necessary.
  • Samsung NC10
  • Some package should be installed for keyboard functions (FN Key+functions). The procedure to install these package is available in this forum.
Another method is to install Ubuntu onto your netbook from scratch using a USB flashdrive LiveCD.


Acer Aspire One

There are several Ubuntu-based and other Linux-based OS's specially customised for the Acer Aspire One. Some of them are:

Also see the Ubuntu website for detailed tweaks and fixes. More useful information can be found in the Ubuntu Linux sub-forum at aspireoneuser.com



Palm


Mobile Devices

Ubuntu Linux offers an operating system for Mobile Devices (such as the Samsung Q1 Ultra or Elektrobit MIMD) with a unique and simplified interface. For more information see the Ubuntu MID Edition site.


GPS


Tux Mobil has a list of Linux applications for use with GPS devices, and compatible hardware. Two GPS packages are available from the Ubuntu/Kubuntu respositories:

  • Viking is a free open source package to view GPS data in maps, and to plot co-ordinates. This has been reviewed as the best Linux GPS mapping program.
sudo apt-get install viking
  • GPS Drive is a free navigation software package that displays your position on a zoomable map using your GPS device. It is GTK-based but can be used in Kubuntu. It uses the gpsd daemon that interfaces with a variety of GPS hardware. A .deb package of the current version is also available from the website. Install:

sudo apt-get install gpsdrive
  • tangoGPS is a beautiful, lightweight GPS mapping program that uses map data from the Openstreetmap project. Is is a GPL-licensed open source project. A .deb package can be found here.

MP3 / Video Players



Sansa Fuze

The Sansa Fuze is a very high quality MP3 audio as well as video player. It is recognized by default as a USB device in Ubuntu/Kubuntu. To convert videos into a format that can be copied to the player, use Video4Fuze.

  • Download and install:
wget http://video4fuze.googlecode.com/files/fuzemux-0.1_amd64.deb
wget http://video4fuze.googlecode.com/files/video4fuze-0.6_all.deb
sudo dpkg -i fuzemux-0.1_amd64.deb
sudo dpkg -i video4fuze-0.6_all.deb
Use fuzemux-0,1_i386 instead of fuzemux-0.1_amd64.deb if using a 32-bit OS.
  • Start video4fuze from the command line:
video4fuze
or create a menu item with the Command: video4fuze.

  • Convert files (mpg or mp4) using Video4Fuze. Do not use the Sansa Fuze player as the output folder, but use an output folder on your computer. Once the files have been converted, then copy them directly to a Video folder on the Sansa Fuze (using Nautilus in Ubuntu or Dolphin in Kubuntu).
  • I like k9copy to extract something (that I have saved) on a DVD to an mp4 (.avi) first. The Sansa Fuze likes video at 224 x 176 and DivX 4/5, so I extract to those specifications:
Menu -> Multimedia -> k9copy -> Input: DVD -> Output: MPEG-4 encoding -> folder icon: /home/user/Videos
k9configure -> MPEG-4 -> Video -> Codec: MPEG-4 (DivX 4/5) -> Width: 224 -> Height: 176
-> Audio: mp3 (lame) -> Bitrate: 128

I then use video4fuze to convert the extracted mp4 (.avi) into the format that the Sansa Fuze likes.

  • Limitations: At this time Flash videos (.flv) cannot be converted directly by Video4Fuze. You must convert flash videos to another format (such as .mpg or mp4/.avi) prior to Video4Fuze conversion, using a converter such as mencoder or ffmpeg (e.g. with WinFF as the GUI).

MachSpeed Trio

The MachSpeed Trio works natively with (K)Ubuntu Linux. Files can be copied directly to the device from a File Manager (Dolphin or Nautilus).

  • Video formats include .mpg, .flv and .avi. However, the screen is 7.5 cm x 4 cm, which is a 1.875 ratio (widescreen). If your video has a 1.33 ratio (fullscreen), you must add left and right padding to make it look normal. If your video is 320 x 240, for example, you must add left and right padding of 64 each (making it 448 x 240, which is approximately a 1.875 ratio).
In addition, I found I had to convert some videos twice (using ffmpeg) to get it into a format the Trio would accept. For example, I have a 160x120 .avi video I recorded on my camera. (This requires 32 padding on each side instead of 64.) There was a 2 step conversion required to get it into a format the Trio liked:
ffmpeg -i cameravideo.avi -target ntsc-dvd -s 160x120 tempvideo.avi
ffmpeg -i tempvideo.avi -padleft 32 -padright 32 triovideo.avi
The first step does whatever it takes to get the video into a NTSC-compatible format. However, it encodes into the ac3 audio codec, which the Trio doesn't like. The second step converts the audio from the ac3 format to the default mp2 audio format (which the Trio likes better) as well as adds the padding (which in reality can be done in either step). I have tried to simplify this into a single command but haven't figured out how to do it yet.
I then copy the converted file directly onto the Trio, where it plays.

Networking

Only one network manager and GUI interface can be enabled. Network-Manager is installed by default, but many users prefer Wicd Network Manager.



Network Manager

Network Manager is network manager installed by default in Ubuntu. It has a tray applet that allows you to switch between Internet connections (such as wireless APs or wired connection).


Wicd Network Manager

Wicd Network Manager is a GTK-dependent networking manager written in Python that can be used in all variants of Ubuntu. Many users (including me) report it to be faster and more stable than Network Manager. To avoid networking conflicts, Wicd requires the removal of Network Manager prior to installation.


sudo apt-get remove network-manager
sudo reboot
sudo apt-get install wicd

Set a static IP address

I have never been able to get Network Manager to accept my static IP address settings. If you only use only a wired interface, you do not need a network manager and it can be removed.

  • Remove Network Manager:
sudo apt-get remove network-manager
sudo reboot
  • Edit the /etc/network/interfaces file:
sudo gedit /etc/network/interfaces
  • and replace the line (ok if line is missing)

iface eth0 inet dhcp
  • with the following lines (using your own LAN settings, of course):
auto eth0
iface eth0 inet static
address 192.168.0.35
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
  • Then restart networking:
sudo /etc/init.d/networking restart
  • Check to see if your settings are now correct:
ifconfig
  • If you need a static IP address and have a wireless connection, Wicd Network Manager works:

  • Uninstall Network Manager and install Wicd instead:
sudo apt-get remove network-manager
sudo reboot
sudo apt-get install wicd

Manual configuration from the command-line

3 steps for WEP:

sudo iwconfig eth[N] essid [SSID]
sudo iwconfig eth[N] key restricted s:[PASSWORD]
sudo dhclient
WPA is more complicated:

su
mkdir /etc/wpa_supplicant
cd /etc/wpa_supplicant
echo network = { > wpa_supplicant.conf
echo ssid="SSID" >> wpa_supplicant.conf
echo key_mgmt=WPA-PSK >> wpa_supplicant.conf
echo psk="PRESHAREDKEY" >> wpa_supplicant.conf
echo } >> wpa_supplicant.conf
cd /etc/network
vim interfaces

Now add after "auto eth[N] ..." & "iface eth[N] .." (press 'i'):

wpa-driver wext # or whatever driver your network card needs
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Save the file ('Esc', ':x', 'Enter') and restart your system.


Internet connection sharing (DHCP server)

In most LANs, an inexpensive router is used to provide DHCP functions (internet connection sharing).


However, DHCP services can also be provided by a single host computer on your LAN if it is directly connected to the Internet. (This is useful, for instance, if you have a 3G or other wireless EVDO connection to your computer which you want to share with the other computers on your LAN). Other client computers on your LAN would then connect to the Internet through your host computer's Internet connection. The host computer now essentially performs the DHCP functions of a router.

All "client" computers on the LAN ought to be connected to a central LAN switch or router. (If using a router, it should have its own DHCP functions disabled -- you shouldn't have 2 DHCP servers on a LAN unless you know how to nest LANs). They should all be set up to obtain DHCP-assigned dynamic IP addresses and use the same LAN subnet settings (which in the example below is LAN IP range 10.0.0.1 - 10.0.0.250 with netmask 255.255.255.0 and gateway 10.0.0.1). The host computer to be used as the gateway/DHCP server is then connected (through its own ethernet port) either to one to the ports of the switch (if used), or to a LAN port of a router (don't use the WAN port). The host computer then connects directly to the Internet (WAN) through a second port (which in the example below will be a wireless (wifi) port (wlan0)).


(Note: This setup is easiest if you connect all computers on the LAN with Ethernet cables to the central switch or router. But also see using a nested wireless LAN router below.)

(Note: If you want your LAN to use the same subnet as your WAN, see network interface bridging.)

  • Install the DHCP server and firewall programs:
sudo apt-get install dhcp3-server firestarter
  • Rename the startup command (through a symbolic link) for the DHCP server. This is required or Firestarter will not know where to find it:
sudo ln -sf /etc/init.d/dhcp3-server /etc/init.d/dhcpd
  • Edit the DHCP server configuration file:

sudo nano -w /etc/default/dhcp3-server
Change the line
INTERFACES=""
to
INTERFACES="eth0"
  • Restart the DHCP server:
sudo dhcpd restart

  • Right click on Network-Manager -> Edit Connections... -> Wired -> Add
-> Connection name: Shared internet connection
-> IPv4 Settings -> Method: Manual -> Add
-> Address: 10.0.0.1 -> Netmask: 255.255.255.0 -> Gateway: 0.0.0.0
-> Available to all users: [x]
  • Attach the ethernet cable to (eth0).
Network-Manager -> Wired Networks -> Shared internet connection
  • Adjust your firewall to allow the internet connection sharing. Start Firestarter:
sudo firestarter
  • Tell the firewall which port is your direct Internet Connection:

Firestarter -> Preferences -> Firewall -> Network Settings ->
Internet connected network device: (wlan0)

-> IP address is assigned by DHCP: [x]
  • Tell the firewall which port is for the LAN, and specify the details for the LAN:

Firestarter -> Preferences -> Firewall -> Network Settings ->
Local network connected device: (eth0)

-> Enable internet connection sharing: [x]
-> Enable DHCP for the local network: [x]
-> DHCP server details -> Create new DHCP configuration -> Lowest IP address to assign: 10.0.0.2
-> Highest IP address to assign: 10.0.0.250 -> Name server: <dynamic>
Note: Use your own desired LAN settings (internal DHCP-assigned dynamic IP address range), of course. In this example I don't use the full IP range 10.0.0.2 - 10.0.0.255 for dynamic IP addresses because I want to reserve some LAN addresses (10.0.0.251 - 10.0.0.255) to be used as static IP addresses).
  • Notes:
  • If you wish to use this setup all the time, make the "Shared internet connection" profile your default connection profile in Network Manager.

Using a nested wireless LAN router

Many users will already have an established LAN that uses an existing wireless router and has client computers that are setup to connect wirelessly to the router. Here's how to maintain this setup and still use the internet connection sharing method of a single host computer as described above. This method is known as nested LANs. The wireless router will serve as a nested LAN for its wireless clients (only), but in turn will appear as a single device to the main LAN. The two LANs must have different IP ranges. For example, the main LAN may have an IP range 10.0.0.1 - 10.0.0.255 (with netmask 255.255.255.0), as in the above example. The router's nested wireless LAN must then use a different IP range (for example 192.168.0.1 - 192.168.0.255 with netmask 255.255.255.0).


  • Do not use your wireless router's WAN (Internet) port.
  • Connect the host computer (to be used as your main LAN gateway/router) to a LAN port (not the WAN/Internet port) of the wireless LAN router.
  • Configure your wireless router's LAN so that it appears to be a single device to the main LAN:
  • Setup your wireless router so that the Internet Connection type is "Static IP" (often in the "Internet Setup" section). Configure the settings so that its "Internet IP address" is within the static IP address range of your main LAN (e.g. 10.0.0.254), and make sure the subnet mask matches the one you chose for your main LAN (e.g. 255.255.255.0). The gateway setting should be set to match the IP address of your host computer of the main LAN (e.g. 10.0.0.1 in the example of the preceding section). Now the wireless router will appear to the host computer as just another device on the main LAN.
  • If your wireless LAN is already functioning, you probably don't have to change any settings, but double-check to make sure the schema are compatible. Configure the wireless router's settings for the nested wireless LAN. This is done by enabling the router's DHCP server functions (in "Network Setup" or some similar configuration section of the router). The router ought to have as its own wireless LAN gateway address a "local IP address" (or "LAN IP address") of 192.168.0.1 (for the IP address range used in this example), and a "starting IP address" (for the DHCP-assigned dynamic IP address range to be used for the wireless clients) to be 192.168.0.2 or greater. (Some routers ask you to specify the entire range (such as 192.168.0.2 - 192.168.0.255.)

  • Make sure all your wireless client computers are set to obtain their DHCP-assigned dynamic IP addresses from the wireless router (gateway IP 192.168.0.1) instead of from the main LAN gateway.
  • Now all communications from the wireless client computers will be routed to the wireless LAN router first, which will then in turn route them to the host computer (which is acting as the main LAN gateway/router), which will then in turn route them to the Internet (WAN).
  • Note: The host computer for the main LAN must have a static IP address (e.g. 10.0.0.1 as in the example of the preceding section) and it must match the gateway IP address configured in the wireless LAN router settings.

Network Interfaces Bridging

  • Install bridge-utils to be able to create network bridges:

sudo apt-get install bridge-utils
  • Edit /etc/network/interfaces:
sudo nano /etc/network/interfaces
The interfaces file should look like this after editing it:

auto eth0
iface eth0 inet manual
#
auto br0
iface br0 inet dhcp
#
bridge_ports eth0 wlan0
#
# The loopback network interface
auto lo
iface lo inet loopback
  • Restart networking with:
sudo /etc/init.d/networking restart

Using Dynamic IP addresses for a webserver


Normally, domain name servers (DNS) that are used publicly on the Internet match a web server's URL name with the IP address of the server's host computer. If your computer has a static IP address, then you can publish your own web server's URL as belonging to the static, unchanging IP address of your computer.

However, if your IP address is dynamic (always changing) because you use an ISP (Internet Service Provider) that constantly changes your IP address (using DHCP), then you will need a DNS service to constantly keep track of your dynamically changing IP address and match it to of your web server's URL. Fortunately, there are a few DNS services that will do this for you, either for a small fee or even for free. For more info, see this Ubuntu help article.

Filesharing


NFS

NFS is the default networking protocol for network file sharing in *nix systems (including Ubuntu Linux).



Samba File Sharing


Samba client

Samba is a networking protocol that allows compatibility with Windows-based networks. The Samba client is installed by default in Ubuntu and should work seamlessly (unless you have have a firewall blocking the ports).


Samba server

The following instructions are to install a Samba server (which is not installed by default). This allows you to share your files over a Samba (Windows) network to other Samba clients.


  • Install Samba:
sudo apt-get install samba samba-tools system-config-samba smbfs
Note: samba-tools, system-config-samba, and smbfs are optional.
  • Modify Samba settings.
  • Method 1:
Menu -> System -> Administration -> Samba
(Note: this is available only if you installed system-config-samba.)
It is recommended that your user be a member of the sambashare group, as well.

  • Method 2:
Enable File Sharing Server With User Login (Very Reliable Method)
Do the following on the machine that has the files to be shared:
  • Add current user to Samba:
sudo smbpasswd -a username

(replacing username with your login username)
  • Open the samba config file:
sudo nano /etc/samba/smb.conf
  • Add the directories to be added (right at the end) in the following format:
[Pictures]
path = /home/username/<folder_to_be_shared>

(Replace username with your username and <folder_to_be_shared> with the folder you want to share)
Press CTRL+X and then Y to save.
  • Restart Samba:
sudo service smbd restart
sudo service nmbd restart
Note: Prior versions used:
sudo /etc/init.d/samba restart
  • On Windows access the folder in the following format in Windows Explorer:
\\192.168.x.x
(replace 192.168.x.x with the actual IP address of your server which is serving the folder)
  • On Linux type the following in Konqueror or Nautilus:
smb://192.168.x.x
(replace 192.168.x.x with the actual IP address of your server serving the folder)
Note: If you use Sharing in KDE's System Settings panel, be aware that there is a small bug, reported here. In brief, you need to comment out/delete any instances of these two lines in /etc/smb.conf :

case sensitive
msdfs proxy

Change your Workgroup

To change your Samba (Windows network) workgroup:

sudo nano /etc/samba/smb.conf

Look for the line:

workgroup = WORKGROUUP
and change the setting to whatever your LAN workgroup is.


Recognizing Win98 machines

Microsoft networking is extremely quirky. To enable recognition of PCs with Windows 98, edit your Samba configuration file:

sudo nano /etc/samba/smb.conf
Then add the following lines to the file:

[global]
# THE LANMAN FIX
client lanman auth = yes
client ntlmv2 auth = no


Integrating into Mac OS X Network

See this guide for information on integrating Ubuntu into an existing Mac OS X Appletalk network.


Local Area Network


Modems / Dial-up


Network Manager does not accept modem connections. See Ubuntu help for information on identifying and connecting with a modem. These instructions require gnome-network-admin (install while connected to a wired ethernet connection):

sudo apt-get install gnome-network-admin

Gnome PPP and wvdial

Gnome PPP is a discontinued GUI frontend for the wvdial PPP modem dialer. It is still available as a package. Install:


sudo apt-get install gnome-ppp wvdial
See this forum thread for tweaks required to make Gnome PPP and wvdial operational in Lucid.


GPPP

GPPP was the default modem dialing application in previous versions of Ubuntu.

Menu -> Applications -> Internet -> GPPP Internet Dial-up

Remote Access

There are several methods of remote access. VNC sharing allows you to view and control a remote computer's desktop. (Windows users use a similar proprietary protocol called remote desktop protocol (RDP)). XDMCP allows a complete remote X-windows based login. Remote connections are hazardous unless proper security precautions are taken to prevent unauthorized logins and to ensure encryption of transmitted data.


SSH

Secure Shell or SSH is a network protocol that allows data to be exchanged over a secure channel (or "tunnel") between two computers. Encryption provides confidentiality and integrity of data. The OpenSSH client is installed by default in Ubuntu so you can connect to another computer that is running an SSH server.


Connect to a remote SSH server



From the command-line terminal

Install the OpenSSH client (if not already installed):

sudo apt-get install openssh-client
From the command-line Terminal type:

ssh -C <username>@<computer name or IP address>

Note: The -C option indicates compression, which speeds up transmission through the tunnel.
For example:

ssh -C joe@remote.computer.xyz
or:
ssh -C mike@192.168.1.1
or
ssh -C 192.168.1.1 -l mike
Note: -l specifies the login id.



If the SSH server is listening on a port other than port 22 (the default), you can specify that in your connection (with the -p option). For example, if the SSH server is listening on port 11022, connect:

ssh -C joe.friday@remote.computer.xyz:11022
or
ssh -C remote.computer.xyz -p 11022 -l joe.friday
If you have made a public/private key using ssh-keygen, the private key must be stored in /home/user/.ssh. The key should be accessible only to user

sudo chmod 600 /home/user/.ssh/identity

or
sudo chmod 600 /home/user/.ssh/id_rsa
To login with the key:

ssh -C remote.computer.xyz -p 11022 -l joe.friday
Note: You can run the command as a menu item, but the command must be "run in terminal."


Port forwarding through SSH

  • In brief, use
ssh -C <remote ip> -p <SSH tunnel port> -L <local port>:<remote computer>:<remote port> -l <user>

This specifies that any communications from your computer (localhost) going out through <local port> will be transmitted securely through the the SSH tunnel port.
To use VNC through the tunnel, you would use an application like Krdc or Vinagre:

krdc vnc://localhost:<local port>
Note: localhost is equivalent to (and interchangeable with) 127.0.0.1. Either can be used.

Note that for VNC, the default <local port> is 5900. In general, a remote VNC server (such as X11VNC) is also listening on the default <remote port> 5900 as well. The default <SSH tunnel port> is 22, as discussed above. All these can be changed, however, if you desire greater security.


For me, I noticed that I had to set <remote computer> to be the internal LAN IP address of the remote computer (such as 192.168.1.155) instead of the remote router's IP address, which is specified in <remote IP>. (If the remote computer has a static IP address (i.e. is directly connected to the Internet without an intervening router), then <remote computer> and <remote ip> would be the same.)


Example:
For extra security, my SSH Server uses <SSH tunnel port>=11022. I want to VNC to a remote computer on a remote LAN with a router whose IP address is <remote ip> = 244.205.123.123. The remote computer to which I want to connect has a static IP address within the remote LAN of <remote computer> = 192.168.1.155. I have set up an X11VNC server on this computer that is listening on <remote port> = 6912 (instead of the default 5900). I setup port forwarding on the router of this remote LAN to forward port 6912 to this server computer. I want to VNC to this remote computer from my laptop, through the Internet. My laptop VNC client (Krdc) will use the default <local port> = 5900. My name is <user> = joe.friday. This is my story.


ssh -C 244.205.123.123 -p 11022 -L 5900:192.168.1.155:6912 -l joe.friday
krdc vnc://localhost:5900
If you have set up a private/ public key pair with a passphrase, or if your SSH server requires a passphrase, of course, you will be prompted for the passphrase after issuing the SSH command.

Note: Port forwarding assumes that the ports are also forwarded through the router(s) and through any firewalls. See the documentation for your router(s) and firewall to learn how to do this. The advantage of SSH tunneling is that only the <SSH tunnel port> needs to be open and forwarded by a router. All encrypted communications will go through your router using this single port. This is what makes the communications secure.


PuTTY

PuTTY is a GTK-based GUI client-interface for SSH connections and eases the setup for port forwarding, SSH public key authentication, and automated login. A user would run Putty to create the SSH tunnel (instead of the ssh command) and then run a program such as Krdc or Vinagre. PuTTY is available for both Linux and Windows (but for routine Linux usage OpenSSH is generally recommended instead).


sudo apt-get install putty putty-tools
  • To create a 2048-bit RSA key pair compatible with OpenSSH, it is possible to use Puttygen (part of Putty-tools). (For me the Linux version of Puttygen is occasionally buggy, however, so I recommend OpenSSH keygen for routine usage instead):
puttygen -t rsa -b 2048 -O private -o putty_rsa.ppk
puttygen putty_rsa.ppk -O public-openssh -o id_rsa.pub
puttygen putty_rsa.ppk -O private-openssh -o id_rsa
  • Move the OpenSSH-compatible keys to the ~/.ssh (i.e. the /home/user/.ssh) folder

mv id_rsa* ~/.ssh
  • Copy the public key ( /home/user/.ssh/id_rsa.pub ) to the server that is hosting the OpenSSH server, into the /home/serveruser/.ssh (for whichever user is the administrative user for the server -- generally the user that installed the server initially). If the SSH tunnel is (still) set at default port 22, you can copy the key using the utility:
ssh-copy-id serveruser@remoteserver.computer.xyz
  • Connect a VNC client (such as Krdc) through SSH using the command-line:

putty -ssh -i ~/.ssh/id_rsa -l serveruser -L 5900:127.0.0.1:5900 remoteserver.computer.xyz -P 22
krdc vnc://127.0.0.1:5900
or as a single command:
putty -ssh -i ~/.ssh/id_rsa -l serveruser -L 5900:127.0.0.1:5900 remoteserver.computer.xyz -P 22 sleep 5; krdc vnc://127.0.0.1::5900

  • Alternatively, the PuTTY SSH Client GUI can be run (from Menu -> Internet -> PuTTY SSH Client) and options configured from there.

Using keys created by Puttygen in OpenSSH

The public security key generated by Puttygen in Windows is generally not compatible with OpenSSH security keys unless it is edited. For example, the default OpenSSH key is 2048-bit RSA (SSH-2). When a 2048-bit RSA (SSH-2) PuTTY public/private key pair is generated (by Puttygen) in Windows (see this tutorial), the public key looks like:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20100302"
AAAAB3NzaC1yc2EAAAABJQAAAQEAjdp567qxsGkhELlMQup2mXHdsveCWq/maU6k
unPpbkwEuhkasuOrhkAWgv5v3d8S857zdHcfnXWi2FkEaJuFxqpJ2IkFuvqRdqYD
ZCcASj2S0LoXdWpC4uon6VH8oBT31r+wkDfmI2a+K74jgXjtm1BWWxwOpKaWQHi9
YItbY/06renRex34n3ejO20JRqD/BxnFU7ND41Szo3ZMKoa0yzhevU2ntt74BCvC
bYFHdSoRbi3AH8qGInzFfhXPdrG8qA382ZKEh5Bmy8Qxb9Uen/+jjP51YxN/ykee
RwSrdSCZekB6jN6uuTLNDEXJSJizqlPU8tROqf3pYv1kxzD9bw==
---- END SSH2 PUBLIC KEY ----

  • To be used by OpenSSH, the saved public key must be edited.
  • Delete the first two lines (with the BEGIN and Comment: in them) and the last line.
  • Join the remaining lines into a single line.
  • Place ssh-rsa at the beginning.
  • It should end up looking like:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjdp567qxsGkhELlMQup2mXHdsveCWq/maU6kunPpbkwEuhkasuOrhkAWgv5v3d8S857zdHcfnXWi2FkEaJuFxqpJ2IkFuvqRdqYDZCcASj2S0LoXdWpC4uon6VH8oBT31r+wkDfmI2a+K74jgXjtm1BWWxwOpKaWQHi9YItbY/06renRex34n3ejO20JRqD/BxnFU7ND41Szo3ZMKoa0yzhevU2ntt74BCvCbYFHdSoRbi3AH8qGInzFfhXPdrG8qA382ZKEh5Bmy8Qxb9Uen/+jjP51YxN/ykeeRwSrdSCZekB6jN6uuTLNDEXJSJizqlPU8tROqf3pYv1kxzD9bw==
  • Once the PuTTY public key is in this format, it can be appended to the ~/.ssh/authorized_keys file on the OpenSSH server. (The private key stays on the client computer, of course). PuTTY can then connect (from Windows or Linux) to an OpenSSH server using the public/private key method.


Connect using SSH Agent

With SSH Agent you can automate the use of public key authentication and open an XDM or VNC session using a script. See this tutorial.

Also see this alternative simple approach: Connect with SSH and start an application with a single command.


Setup an SSH server

Install the OpenSSH server:


sudo apt-get install openssh-server
Note: The OpenSSH server can also be installed when doing a server installation as an option from the LiveCD.

Note: An OpenSSH server can also be set up on a Windows server using Cygwin. See these instructions.


Limit authorized SSH users

  • See Limit the user accounts that can connect through OpenSSH remotely

OpenSSH Public Key Authentication

See this OpenSSH Public Key Authentication Tutorial.

In brief, it is necessary to generate a public / private key pair. On your client machine, generate the pair:

ssh-keygen
A prompt asks for a passphrase. If you wish to use OpenSSH without a password from a secure client (to which no one but you has access), leave the passphrase blank. If you enter a passphrase, you will be asked for this passphrase each time you use the SSH client. By default, a 2048-bit RSA SSH-2 key pair is generated and stored in the /home/user/.ssh folder. The private key is named id_rsa and is meant to stay in that folder. (The public key is id_rsa.pub and is meant to be copied to the OpenSSH server.)

  • The private key must only be accessible (and should be read-only) to user, the owner of the file:

chmod 600 /home/user/.ssh/id_rsa
You could also make the entire .ssh folder accessible only to user:
chmod 700 /home/user/.ssh
  • Copy the public key ( /home/user/.ssh/id_rsa.pub ) to the server that is hosting the OpenSSH server, into the /home/serveruser/.ssh (for whichever user is the administrative user for the server -- generally the user that installed the server initially). If the SSH tunnel is (still) set at default port 22, you can copy the key using the utility:

ssh-copy-id serveruser@remoteserver.computer.xyz
  • The ssh-copy-id utility only works over port 22. An alternative if you have changed your SSH port is to copy the /home/user/.ssh/id_rsa.pub key to the server manually. On the server make sure the directory /home/serveruser/.ssh exists and that there is a file authorized_keys (with write privileges) in that folder. If not, create such a file while logged into the server as serveruser (the touch command creates an empty file):

mkdir ~/.ssh
cd ~/.ssh
touch authorized_keys
Then concatenate the id_rsa.pub key you have copied to the ~/.ssh folder. (Make sure the owner of id_rsa.pub, after copying, is serveruser.):

cd ~/.ssh
chown serveruser id_rsa.pub
cat authorized_keys id_rsa.pub >> authorized_keys
  • Make sure the OpenSSH server knows to look for the key file. On the remote server, edit the OpenSSH configuration file:
sudo nano /etc/ssh/sshd_config

  • Uncomment the line (i.e. remove the # at the beginning of the line):
#AuthorizedKeysFile %h/.ssh/authorized_keys
  • Remove the ability to login to the OpenSSH server using password authentication:
sudo nano /etc/ssh/sshd_config
  • Change the line
#PasswordAuthentication yes
to
PasswordAuthentication no
  • Restart the OpenSSH server:
sudo /etc/init.d/ssh restart
  • Now you can connect securely with an SSH tunnel without requiring a password, logging in as serveruser.
ssh -l serveruser -L 5900:127.0.0.1:5900 remoteserver.computer.xyz -p 22


Connect with SSH and start an application with a single command

  • If you have created an OpenSSH key pair (without a password), you can start both the SSH tunnel and a VNC program (such as Krdc or Vinagre) to run through the SSH tunnel with a single command:
ssh -f -l serveruser -L 5900:127.0.0.1:5900 remoteserver.computer.xyz -p 22 sleep 5; krdc vnc://127.0.0.1::5900

  • Alternatively (and probably preferably) you can create a Menu Item / Shortcut with the above command.
Note: This command is a command-line mini-script. The SSH option -f option tells the SSH client to fork into the background after starting. (This option is not available in the PuTTY client.) This allows the command line to continue to proceed to the next command(s) listed on the command line mini-script. The 5 second wait ("sleep") timeout allows time for the SSH tunnel to be created before proceeding to the next command. (This can be lengthened if necessary.) After the wait period, the program (Krdc VNC in this example) is started.

  • Of course, any program could be started (to be run through the SSH tunnel) in this fashion, not just a VNC program.

Automate SSH connections that require a password

This method is strongly advised against. Transmitting an unencrypted password through the Internet (in order to establish an SSH connection) invites password sniffing. Use the OpenSSH key pair methods described above, instead. This method is listed here for reference.


  • Terminal interactions (such as the SSH password challenge) can be automated using the expect utility. Install:
sudo apt-get install expect
  • If, for example, your SSH client ID is clientuserID, yourpassword is not#1sostrong, and the remote SSH server is remoteserver.computer.xyz (using the default SSH port of 22), then use this command to start the SSH tunnel:

expect -c 'spawn ssh -l clientuserID -L 5900:127.0.0.1:5901 remoteserver.computer.xyz -p 22; expect assword ; send "not#1sostrong\n" ; interact'
There are other parameters in this example. 5900 and 5901 are the ports to be used on either side of the tunnel (port 5900 is used for VNC, for example). See Port forwarding through SSH for more details.


You can use the entire command as a menu item (must be "Run in terminal" in the Advanced menu options).


VNC

Virtual Network Computing (VNC) mirrors the desktop of a remote ("server") computer on your local ("client") computer (it is not a separate remote login, as is XDMCP). A user on the remote desktop must be logged in and running a VNC server (such as X11VNC, Vino, or Krfb). Keyboard and mouse events are transmitted between the two computers. VNC is platform-independent —- a VNC viewer on one operating system can usually connect to a VNC server on any other operating system.


Vino Remote Desktop VNC server

Vino-server (the Gnome VNC server) is included by default in Ubuntu. Start:


Menu -> System -> Preferences -> Remote Desktop
  • You can accept uninvited connections in the Security section. You can require a password for these connections.
  • This implementation of Vino does not allow changing the default listening ports (which start at 5900). If you wish to customize your VNC connection, use X11VNC instead.

How to securely use VNC with SSH tunneling

It is less secure to leave the VNC listening port open to the Internet, even with a password. (This can expose you to password cracking attempts.)

It is more secure to use SSH to tunnel your VNC connection. Under SSH port forwarding, the VNC listening port is the <remote port>. To increase security, this listening port can be changed from the default 5900. Only the VNC server and the SSH client need to specify the <remote port> in a secure connection.


X11VNC Server


While Vino is easy to use, X11VNC allows far more customization and therefore can be used more in situations where greater security is needed.

  • Install an X11VNC server to share your desktop with other computer:
sudo apt-get install x11vnc
  • Run X11VNC without a password:
x11vnc -forever -rfbport 5900
Note: -rfbport 5900 specifies the port to listen on. The port number can be changed. This option is not required if the default port 5900 will be used. Don't forget to open/forward this port in your firewall/router. By default X11VNC server exits after the first client disconnects. To keep it running (and allow future connections), use the -forever option. See here for more command line options.
  • Create a password to use with X11VNC:

mkdir ~/.vnc
x11vnc -storepasswd YOUR_PASSWORD ~/.vnc/x11vnc.pass
  • X11VNC can then be started with a password:
x11vnc -forever -rfbport 5900 -rfbauth ~/.vnc/x11vnc.pass -o ~/.vnc/x11vnc.log -loopbg -display :0
  • You can create a startup script so that X11VNC is automatically loaded at startup (with password settings):
echo "/usr/bin/x11vnc -forever -rfbport 5900 -rfbauth ~/.vnc/x11vnc.pass -o ~/.vnc/x11vnc.log -loopbg -display :0" > ~/.config/autostart/x11vnc.sh
chmod +x ~/.config/autostart/x11vnc.sh
  • You can test the startup script:
~/.config/autostart/x11vnc.sh

Using VNC with SSH

See Port forwarding through SSH for additional information.


Vinagre VNC client

Vinagre is the default Gnome-based VNC client used in Ubuntu.


  • Menu -> Applications -> Internet -> Remote Desktop Viewer

Terminal Server Client

The Terminal Server Client is an Ubuntu/Gnome frontend for rdesktop (for RDP connections to Windows computers) and one of several vncviewer clients (for VNC connections). In can be used instead of Vinagre.


  • Menu -> Applications -> Internet -> Terminal Server Client
  • To use it with VNC, one of the VNC clients must be installed first. For example, install the TightVNC client:
sudo apt-get install xtightvncviewer
  • Note that the TightVNC client can be used from the command line (or as a menu item) directly:

vncviewer 192.168.0.12::5900
where 192.168.0.12 is an example host location that is running a VNC server on port 5900. For more command-line options, use
man vncviewer


Krdc VNC client

Krdc is the default VNC client in Kubuntu/KDE but can be used in GNOME. It can be used for both VNC and RDP connections. Installing it will also install the Qt platform and many KDE utilities (a large download).

sudo apt-get install krdc
  • Run:
Menu -> Applications -> Internet -> Krdc
  • The command-line connection (for use as a menu-item, for example) is:
krdc vnc://<remote IP>
  • If the remote (Krfp) VNC server is using a <remote port> other than the default 5900 port, use
krdc vnc://<remote IP>:<remote port>

  • Krdc can also connect to a Windows server using RDP (Remote Desktop Protocol).
krdc rdp://<remote IP>:<remote port>

Using a VNC client with SSH

See this howto for an automated setup using a script (it did not work for me, but it might for you).


In brief, you would initiate an SSH tunnel with port forwarding using Putty or the command line:

ssh -C <remote ip> -p <SSH tunnel port> -L <local port>:<remote computer>:<remote port> -l <user>

then you would start a VNC client such as Krdc:
krdc vnc://localhost:<local port>
<local port> will usually be the default 5900, in which case you could simply use

krdc vnc://localhost

XVNC4Viewer VNC Client


XVNC4Viewer is an alternative to Vinagre or the Terminal Server Client (vncviewer). Install:

sudo apt-get install xvnc4viewer

FreeNX

FreeNX is a remote desktop display server/client solution that natively incorporates SSH tunneling (unlike VNC). It is therefore more secure than VNC (unless VNC is coupled with SSH tunneling).


FreeNX Server

The Free server .deb package can be downloaded from No Machine free server downloads.


sudo add-apt-repository ppa:freenx-team
  • Install the package:
sudo apt-get update
sudo apt-get install freenx

FreeNX Client

Download the self-installing .deb file from No Machine Client downloads.



XDMCP

XDMCP allows a separate remote login by an authorized user. This login is separate from the local user.

  • XDMCP is not secure over the Internet and should only be used within a LAN. It cannot be tunnelled through SSH. It is turned off by default in Ubuntu. To enable it, edit the configuration file:
gedit /etc/gdm/custom.conf
  • Find and change (or add) the line from false to true so that it reads:
[Xdmcp]
Enable=true


Telnet

SSH is, basically, secure Telnet.


VPN clients

A VPN (Virtual Private Network) allows a secure encrypted connection ("tunnelling") over the Internet between a client (either standalone or on a separate LAN) and a home or corporate LAN server.


VPN through Network Manager


  • The default Network Manager in Ubuntu/Kubuntu has a VPN client available. This includes support for IPSec and Cisco-compliant VPN connections. Install:
sudo apt-get install network-manager-vpnc
  • To connect to a VPN network using OpenVPN (SSL), install the plugin:
sudo apt-get install network-manager-openvpn
  • To connect to a VPN network using PPTP (MS Windows servers), install the plugin:
sudo apt-get install network-manager-pptp
  • Configure:
Network Manager icon (in system tray) -> VPN Connections -> Configure VPN

vpnautoconnect (vpn daemon)

vpnautoconnect is a daemon to allow automatic vpn connections through Network Manager. Download and install the .deb package for your OS version.


Other VPN clients


Standalone VPN clients based on protocol are available (but not necessary if using Network Manager):

  • vpnc, grml-vpn -- for Cisco-compliant (IPSec) VPN networks
  • openswan -- for IPSec (OpenSwan) VPN networks
  • pptp-linux -- for PPTP (MS Windows-compliant) VPN networks
  • openvpn, gadmin-openvpn-client -- for OpenSSL (OpenVPN) VPN networks


VPN servers


OpenVPN

OpenVPN is a free, GPL-licensed open-source cross-platform VPN solution based on OpenSSL (not IPSec). Install the server (then see the website for further installation instructions):

sudo apt-get install openvpn bridge-utils
A GUI configuration utility (GTK-based) is available:

sudo apt-get install gadmin-openvpn-server


Poptop (PPTP Server)

Poptop is a free open-source PPTP-based VPN server compatible with MS-windows PPTP clients. Install:

sudo apt-get install pptpd

OpenSwan


OpenSwan is the open source implementation of IPSec-based VPN connections for Linux (and is a successor to FreeSwan). Install:

sudo apt-get install openswan linux-patch-openswan

WebDAV

WebDAV is a method for allowing remote access to local folders via an HTTP-based web browser. This can be combined with user authentication (using LDAP or other password mechanism).

Security

Ubuntu by default is a fairly safe system. However, if you intend to use Ubuntu as a server, or for critical applications in which loss of data (by accident or by malicious intrusion) would be disastrous, you should learn how to make Ubuntu more secure. A good introduction to Ubuntu Security Best Practices is available. Recommended reading includes the book Cyber War by Richard Clark and this interview with Joe Weiss (IT advisor for the energy-sector smart grid).



Firewall

Network communications go through "channels" called ports. You can restrict which ports are available ("open") for network communications, creating a barricade to unwanted network intrusion. Firewalls do this job for you. But I guarantee that if you install one before you know how to use it that one or more networking programs on your system will stop working. Read every bit of documentation about a firewall before installing it -- you won't regret the time invested. All of these packages modify iptables, which is the set of rules that controls network access in and out of your computer. (You can modify iptables manually from the command line, as well, but if you are that much of an expert, you probably don't need this guide.) Also see the official Ubuntu documentation.


Firestarter

Firestarter is an intuitive firewall manager used to set the iptables values which provide firewall capabilities in Linux (including Ubuntu). It has a very easy-to-use GUI.


sudo apt-get install firestarter

Guarddog

Guarddog is a GUI firewall configuration utility that has been used for KDE. It has a complex array of configuration, and is difficult to use for some beginners.

sudo apt-get install guarddog

Uncomplicated Firewall


Uncomplicated Firewall is installed in Ubuntu by default, but all ports are open initially. It is configurable through the command-line interface. See this forum thread, or this usage tutorial, or Ubuntu community help for tips on how to set up and use it.
If not installed, it can be installed:

apt-get install ufw

Gufw


Gufw is a graphical user interface for Uncomplicated Firewall. Install:

sudo apt-get install gufw

Anti-virus

If you are running a file server, interface frequently with Windows drives, or use virtualization, you will want a virus checker for your Windows files.


ClamAV

ClamAV is the open source virus tool for Linux. To install ClamAV:


sudo apt-get install clamav

AVG

AVG offers a free virus scanner for Linux in a .deb package. Download and install from the website.


Avast

Avast offers a Linux edition (for home users only) in a .deb package. Download and install from the website.



Anti-spam


Spam Assasin

SpamAssasin is written in perl, and is mostly for use with a server (such as a groupware server or Apache). Install:

sudo apt-get spamassassin

Rootkit checkers


Rootkits are malicious trojan-like programs to allow an intruder to become a root user and therefore have complete administrative control over the system. There aren't many rootkits in the wild for Linux. Still, this is a growing security problem (especially in other operating systems) and it is a matter of time before more rootkits appear in Linux. Checking for rootkits isn't always successful from a system that is already infected. Your rootkit checker should therefore be run from another system, or a USB pendrive with an Ubuntu LiveCD installation. See the rootkit checker manuals for instructions how to do this. If you are infected with a rootkit, you must backup all your files and re-install your system. (Thank goodness this is easy with Ubuntu, unlike with other operating systems).


Chkrootkit

Chkrootkit checks locally for signs of a rootkit. See the chkrootkit manual for usage instructions.


Install:
sudo apt-get install chkrootkit
Run:
sudo chkrootkit

Rootkit Hunter

Rootkit Hunter is compatible with (K)Ubuntu systems. See the usage instructions.


Install:
sudo apt-get install rkhunter
Run:
sudo rkhunter

Malicious commands to avoid

There are many malicious commands to be avoided in Linux (as in all operating systems). It is worthwhile to be aware of these dangerous commands so that they are not executed by accident or by malicious advice.

Network Monitors

There are two types of network monitors: those that monitor your own system's network settings and those that monitor network traffic. The latter includes security tools (that can also be used as hackers tools) for exposing security weaknesses in a network. Be aware and be safe! A list of available tools is at Top Ubuntu Security Tools.


Netstat

Netstat is the Linux command-line tool to monitor network status and functions. There are many usage parameters. See the manual for help.


netstat

Etherape (Network monitoring)

EtherApe is a graphical utility that allows you to see (in real-time) where connections are being made on your network, or between your network (or computer) and the Internet. If you are experiencing unexpected network activity on your computer or LAN and wish to see where the activity is occurring, this is an easy tool to use. Both "local" user and "root user" installations are created; in general you must use the root user installation to see all your network traffic.

sudo apt-get install etherape

List open files

Sometimes you will see your network slowing and want to know which files are sending data over ports. Use this command:


lsof -i -n -P

Nmap

Nmap is a free open source utility for network exploration (including showing open ports and running services) and security auditing. Install:

sudo apt-get install nmap
Scan your own PC:

nmap localhost

(Once you have found out which ports are open, use a firewall to close the ones you don't want open.)


Nmap GUI

Install:

sudo apt-get install nmapfe
or you can try Zenmap:
sudo apt-get install zenmap


Nessus

Nessus is a proprietary comprehensive vulnerability scanning suite that is free for personal, non-enterprise usage. See the website for details.


Snort

Snort is the de facto open source standard for intrusion detection. Install:

sudo apt-get install snort

It can be used with an MySQL database (sudo apt-get install snort-mysql) or with a PostgreSQL database (sudo apt-get install snort-pgsql).


AcidBase

AcidBase is an intrusion detection / basic analysis and security engine that uses Snort. Install:

sudo apt-get install acidbase

AppArmor


AppArmor is a set of security enhancements developed by Novell for SUSE Linux. It is installed in (K)ubuntu by default.


Disable AppArmor

AppArmor can prevent some services from running as expected and cannot be used in conjunction with SELinux. To disable it:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

SELinux

SE Linux (Security Enhanced Linux) is an NSA (US National Security Administration) recommended set of tools for enhanced security in Linux systems. It enforces strict access controls (privileges) and is meant for mission-critical installations. It is not suitable for the casual desktop user. It was first available in Hardy Heron and is being updated for Intrepid Ibex. It is not compatible with AppArmor (which must first be removed).


sudo apt-get install selinux

Network Management

Monitor your network or datacenter with a framework of utilities. Comparable to IBM Tivoli (which can cost thousands of dollars), these solutions are generally available as either community or enterprise editions.

  • Hyperic is an open-source network monitoring framework that can be used in either a datacenter or a cloud environment (it is used for Amazon Cloud). Both a free community version and a subscription enterprise version are available.
  • Groundwork OpenSource offers a community edition that integrates other packages such as Nagios, Nmap, and others. There is a subscription enterprise version as well. It has its roots in a university setting.
  • OpenQRM is the GPL-licensed, free open-source community successor to the very popular network monitoring solution Qlusters. It is available as a Debian/Ubuntu package. See the website for details.

  • Canonical offers the Landscape network management service for $150 per node, with a free trial available.
  • Zenoss is a commercial network monitoring subscription package (about $150/node) with a limited free "core" edition also available.

Nagios

Nagios is a free open source network monitoring solution. It is administered from a web interface (http://localhost/nagios) and is expandable using a large number of available plugins. For additional configuration information, see the official Ubuntu documentation. Install:


sudo apt-get install nagios3

Munin

Munin is a free GPL-licensed open source networking monitoring tool based on RRDTool, in which a master network node queries other network resources, cataloging and graphically displaying changes. It has a web interface and multiple plugins. For additional configuration information, see the official Ubuntu documentation. Install:


sudo apt-get install munin

Cacti Monitoring Server

Cacti is a complete, free open source network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. It uses MySQL and PHP (part of the LAMP server stack). All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices. For more info see Cacti Server Setup. Install:


sudo apt-get install cacti

Enterprise Network Firewall


IPCop

IPCop is a free open source (GPL-licensed) firewall solution for use as an independent appliance (on a dedicated PC) in an enterprise network. It allows remote management and can protect multiple servers, including web and email servers. IPSec-based OpenVPN is supported. The CD image .iso and other files can be downloaded here. Installation instructions are on the website.


SmoothWall


SmoothWall Express is an award-winning, free, open source (with a GPL license) firewall solution for use as an independent appliance (on a dedicated PC) in an enterprise network. Download the installation CD .iso image here (server OS included), burn onto a CD, and install on a new, dedicated PC. Many features, however, such as VPN server, database access authentications, and content filtering are only implemented in a commercial version, however, and are not available in the community version.


Endian

Endian is a very robust, free, open source universal threat management appliance similar to IPCop and Smoothwall. It also incorporates OpenVPN. Like Smoothwall, Dansguardian is used for content filtering (and is included in the community edition). Commercial and hardware versions with some additional features, automatic updates, and professional support are available. See the website for details.


LTSP (Thin client support)


LTSP (the Linux Terminal Server Project) adds thin-client support to Linux servers. The package is free, GPL-licensed, and the client can be used to run programs on either Linux or Windows LTSP servers. There is a module for classroom management (ltsp-controlaula) as well. Installation instructions are here. The alternate LiveCD can also be used to install a terminal server, as indicated in these instructions.


LTSP Server

Install:


sudo apt-get install ltsp-server ltsp-manager

LTSP Client

Install:

sudo apt-get ltsp-client

iTALC (Thin client for Education)

iTALC is a free, open source (GPL-licensed) thin client solution that supports both (K)Ubuntu Linux and Windows XP. It has been used widely in educational settings to monitor, share, and control multiple workstations. See the website for download and installation instructions.



Internet Cafe software

Internet Cafe (or CyberCafe) software is specialized LAN-administration software that includes time usage monitoring, billing, and administration. It can also be used in schools, libraries, and organizations with multiple monitored workstations requiring usage limits.


OutKafe

OutKafe is a free, open-source, GPL-licensed cybercafe solution based on a postgreSQL database server stack. It is run on hundreds of sites. It is GTK-based but can be run with Kubuntu (KDE).


OpenKiosk


OpenKiosk is a free open source multi-platform server/client solution for administering and monitoring groups of workstations, such as in libraries, school labs, and internet cafes. Installation is from source files. See the website for details.


CafePilot

CafePilot is a free multi-platform Java-based server/client solution for real-time monitoring and billing of Cybercafe workstations. A complete custom Ubuntu-based LiveCD server/multiple-client solution (including OS and many applications for unlimited workstations) is available for $100 here.


Miscellaneous solutions


This thread discusses several other solutions, including:


Pessulus (Lockdown Editor)

Pessulus is a GTK (Gnome)-based utility that allows an a computer administrator to restrict acccess to several administrative functions, including the command-line Terminal and many other functions. This is useful on public kiosk PCs, for example. Install:


sudo apt-get install pessulus

Cluster (cloud) computing

Eucalyptus is a project from University of California Santa Barbara to facilitate cluster computing on Ubuntu servers that have Xen enabled. It is available for the Lucid Lynx server edition and is referred to as the Ubuntu Enterprise Cloud.


A warning about distributed computing


Cloud computing is often mistaken for remote hosting. While cloud computing using public hosts may be beneficial in "farming out" a few of your non-sensitive computing needs, the recent ease of cloning filesystems and the promiscuity of datacenters has placed a great deal of sensitive data at risk when databases and critical server functions themselves are remotely hosted at a site not under your complete control. Even "trusted" banks and other large businesses routinely trade and sell our sensitive "private" data to multiple partners (sometimes for profit and sometimes unwittingly). Hosted servers are compromised on a daily basis and it is not very easy for an end customer to know how effective are the security practices of a remote hosting service. Therefore, it is almost always more secure to host your own server(s) in house and to limit the traffic and access to your databases and servers to members of your own organization. Learning how to run your own servers is worth the effort, and powerful hardware on which to run them is inexpensive these days.

The Ubuntu cloud computing environment allows you to recruit the multiple computers within your own organization for distributed ("cloud") computing and thereby keep it all "in house" (behind secure firewalls). You do not need to expose your organization to insecure remote public hosts in order to use cloud computing.


BOINC (Berkeley Open Infrastructure for Network Computing)

BOINC is middleware software developed at UC Berkeley to allow multiple computers to operate as a grid-based (cloud based) supercomputer. There are over half a million computers participating in BOINC projects. To install BOINC and participate in one or more of these projects:


sudo apt-get install boinc

Servers

Many server packages (such as Apache2, MySQL, PHP, etc.) can be installed individually, on either a Desktop edition or a Server edition (using the tasksel command described below). It is not necessary in general, therefore, to install Ubuntu Server if you only wish to use an occasional server package on a Desktop edition. Most of the instructions for individual server packages will work on the Server edition, on the Desktop edition, or on a Server edition that has had an Ubuntu or Kubuntu desktop installed on it.

Nevertheless, the Server edition is optimised for speed and ease of monitoring and maintenance when implemented in large networks and is therefore recommended. (For complete information see the Ubuntu Server Guide.) It is always possible to add an Ubuntu (Gnome) or Kubuntu (KDE) GUI desktop to an Ubuntu Server at any time.

  • Download the latest Ubuntu Server ISO image from Ubuntu downloads.

  • See this guide for burning the ISO image to a CD.
  • Use the CD for installation of the server.
(If you are attempting to create a dual-boot or multi-boot configuration with multiple operating systems on your computer, then see these tips.)

(Tip: During installation of the server, an initial user / password is created. Many servers are intended to run unattended with little subsequent intervention and it can be easy to forget the original user / password pair that is created at installation. I suggest writing this information down and taping it to the inside of the computer case cover for later reference. (Lock the computer case if you desire extra security.))

There are many server packages that are available to be installed as a one-step process during the Server edition installation process from the LiveCD, or at any time (on most editions) using the tasksel command. For a list of server packages that can be installed using the tasksel command:


sudo tasksel --list-tasks
or using a GUI list:
sudo tasksel

Ultimate Server Walkthrough

  • Using instructions from Ubuntuguide, an ultimate server can be created with two wikis (MediaWiki), two Drupal websites, a Moodle online learning website, a BigBlueButton teleconferencing server, an Ubuntu desktop, and dynamic DNS access from the web. All components can be expanded and/or additional servers added.

  • Lucid ultimate server walkthrough.
  • Original Jaunty ultimate server walkthrough.
  • To run multiple servers on multiple computers on a LAN using only a single IP address and router

Add a desktop to an Ubuntu Server


Packages that require server capabilities (such as Drupal with Apache, etc.) are often happier when a Server edition is installed as the base OS. However, adding a desktop can make the administration and maintenance of many packages easier for many users (albeit with a cost of reduced server speed). Add an Ubuntu (Gnome) or Kubuntu (KDE) desktop to a server using:

sudo apt-get install ubuntu-desktop
or
sudo apt-get install kubuntu-desktop

LAMP server installation

During server installation, you will have the option of installing a LAMP (Linux, Apache, MySQL, PHP) server stack. Many (but not all) open source servers use this integrated server stack. Drupal, for example, needs to have a LAMP server installed. If you intend to install a groupware server, however, make sure it is compatible with a LAMP server stack before choosing this option. Many groupware servers will install LAMP (or their own variation) automatically, so you do not need to install the LAMP stack. Others will install and use postgreSQL instead of MySQL, so you would not need to install a LAMP server.



Apache2 + MySQL + PHP

This is the preferred method:

sudo tasksel install lamp-server
(Tip: During installation of the LAMP server, an initial MySQL "root" user password is created. This information will sometimes be needed when installing other server packages that use MySQL. I suggest writing the MySQL password down and taping it to the inside of the computer case cover for later reference. (Lock the computer case if you desire extra security.))


Other servers

During server installation, you can choose other servers to install, as well. These include a Mail server (Postfix with Dovecot), a DNS server (bind9), the OpenSSH server, a print server, a Tomcat Java web server, a Samba file server (for use with Windows networks), and a virtual machine host (Xen). Again, if you are using a groupware solution, you should be careful about installing these services, as they may conflict with similar (but competing) servers which the groupware solution will install by default.



eBox (server and network manager)

eBox is a web-browser based server management platform that is useful in managing multiple servers and networking functions in a small to medium business. It is modular so that as the network grows and more networking functions or servers (such as the ones listed below) are added, eBox can manage those, as well. Install:

sudo apt-get install ebox

OpenSSH server

OpenSSH allows encrypted communications through a designated secure port. The OpenSSH server also can be installed as an option during the Ubuntu Server LiveCD installation. Also see setting up an SSH server. Install:


sudo tasksel install openssh-server

Postfix (Mail Server)

Postfix is a free open source mail server. It interfaces directly to Dovecot, the free open source IMAP and POP3 server. For more information see the official Ubuntu documentation. It can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:


sudo tasksel install mail-server

Bind9 (DNS server)

BIND DNS servers are the most commonly used on the Internet. Bind9 is the current edition. See the usage instruction here. Also see the official Ubuntu documentation for more configuration information. It can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:


sudo tasksel install dns-server

Apache Tomcat (Java server)

Tomcat is a free open source platform from Apache which provides a "pure Java" HTTP web server environment for Java code to run (see here for more info).

It is not part of the Apache2 web server. See the official Ubuntu documentation for more configuration information. It can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:


sudo tasksel install tomcat-server

Xen virtual machine host

Xen is a free open source virtualization platform that allows the host to run "guest" operating systems simultaneously (see here for more info). Xen implementation in the (K)ubuntu server is based on integration with KVM, the kernel-based virtualization platform in Linux. KVM integrates with QEMU components, which have been merged with Xen.


Note: KVM requires a 64-bit processor with a virtualization extension, i.e. an Intel VT or AMD-V CPU, therefore this package currently is successful only with the 64-bit Ubuntu server installation and on those CPUs.

It can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:

sudo tasksel install virt-host

Print server


Ubuntu uses the CUPS print server, which is integrated into the desktop. Installing a print server in Ubuntu Server is necessary only if you do not intend to use a desktop (i.e. you intend a "headless" server). It can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:

sudo tasksel install print-server

OpenLDAP

OpenLDAP is a community-based LDAP server that allows directory querying over TCP/IP, generally for organizations arranged by domain. Ubuntu uses the slapd daemon for the OpenLDAP server. See the official Ubuntu documentation for more information about installation and setup.



Samba Server

Samba provides file/print services for the SMB/CIFS protocol used in Windows-based networks. See the official Ubuntu documentation for more information about providing services in a Windows network. A Samba server can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:

sudo tasksel install samba-server


FTP Server

An FTP server allows the easy transfer of files between systems over the network. Clients such as Filezilla can be used to interact with an FTP server.


vsftpd

vsftpd is an FTP server available in (K)Ubuntu. For configuration information, see the official Ubuntu documentation. Install:


sudo apt-get install vsftpd

proftpd

Proftpd is an FTP server available in (K)Ubuntu that can be used with either the MySQL or PostgreSQL database. Install:

sudo apt-get install proftpd-basic

Proxy server



Squid

Squid is a widely-used proxy web server and web cache daemon that is useful for corporate or other large LANs that wish to accelerate and/or control traffic through the LAN. For initial configuration information, see the official Ubuntu documentation. Install:

sudo apt-get install squid

Privoxy

Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. It is easier to configure and more useful for individual users. Install:


sudo apt-get install privoxy

Control panels

There are several free and/or GPL-licensed control panel utilities for managing multiple servers on a single physical server or cluster of servers running Debian/Ubuntu-based servers. Here is a brief overview.

  • Webmin is the most widely used web browser-based free open source web hosting control panel for Linux.
  • GNUPanel is a free GPL-licensed web hosting control panel system that is compatible with Debian/Ubuntu OS using PHP.

  • Web-cp.net is a free GPL-licensed web hosting control panel system that is compatible with Debian/Ubuntu OS using PHP.

Network Attached Servers


FreeNAS

FreeNAS allows a PC with several hard drives to function as a self-contained network attached storage RAID device. It is a very small, fast system, so that an older PCs could function quite well as an NAS.


Setup RAID in Ubuntu/Kubuntu


See this thread for a discussion how to set up RAID on an Ubuntu/Kubuntu server.


Databases

There are several free enterprise-strength databases that can be used in (K)Ubuntu Linux.


PostgreSQL

PostgreSQL is a free standards-compliant enterprise-strength open-source database, initially developed at UC Berkeley. See the PostgreSQL Server documentation for server configuration information. Install using the dummy task:


sudo tasksel postgresql-server
or install directly:
sudo apt-get install postgresql-8.4
or
sudo apt-get install postgresql

MySQL


MySQL is one of the most widely-used relational databases, and has been licensed under the GPLv2. It has now been bought by Oracle as part of the purchase of Sun. It has long been integrated into co-ordinated server platforms using the LAMP stack, but it can also be installed separately.

sudo apt-get install mysql-server

Tips & Tricks


Run Command


You can run any application in your path using the Run Command. Use Alt+F2.


Turn off Hot Keys

This is the most evil option on any operating system, in my opinion. A mis-stroke enables any number of random events. Unfortunately, this problem is pervasive in operating systems and is difficult to turn off.

Menu -> System -> Administration-> Advanced -> Input Actions -> General Settings -> check "Disable KHotKeys daemon"
Menu -> System -> Administration-> Advanced -> Input Actions -> Gestures Settings -> check "Disable mouse gestures globally"
If you wish to be selective about it (this doesn't often work, however), start by disabling unnecessary desktop hotkeys.


Menu -> System -> Administration-> Advanced -> Keyboard & Mouse -> Keyboard Shortcuts
Also, you may want to deactivate linking gestures to sticky and slow keys:

Menu -> System -> Administration -> Accessibility -> Activation Gestures -> uncheck "Use gestures for activating sticky keys and slow keys"
Note: You probably will have to disable hotkeys in many applications, as well.

Hotkeys from the Synaptics Touchpad can be selectively turned off using this information from the Ubuntu documentation.

Associate default applications

Menu -> System -> Administration-> Advanced -> File Associations -> x-content -> video-dvd -> Applications Preference order -> Add...
then choose your favourite media player. There are similar options for Blu-Ray (video-bluray) and HD DVD (video-hddvd). Set each individually.
  • To assign the default player for playing mpegs (or other video formats):
Menu -> System -> Administration-> Advanced -> File Associations -> video -> mpeg -> Applications Preference order -> Add...
then choose your favourite media player. You can do this for a host of video file formats, including .wmv (x-ms-wmv, or Microsoft WMV format), .flv (x-flv, or Flash video), quicktime, and so on.
  • To assign .pls audio streams to play through Audacious:
Menu -> System -> Administration-> Advanced -> File Associations -> audio -> x-scpls -> Applications Preference order -> Move Audacious to the top (or Add... it).
Make sure *.pls appears in the Filename Patterns section.

Autostart a program at bootup

Any program (or script) can be made to Autostart at bootup by creating a symbolic link to that program (or script) in the ~/.config/autostart folder.

For example, to start Firefox at bootup, create a symbolic link:

sudo ln -s /usr/bin/firefox ~/.config/autostart

Run a script from a menu item


It is possible to place a short script in a menu item / shortcut to answer an interactive query (such as a password query). Here is an example that is used to enter a password during an SSH negotiation. First, install the utility expect:

sudo apt-get install expect
The use a command in the Menu Item / Shortcut similar to:

expect -c 'spawn ssh -l sshuser -L 5900:127.0.0.1:5900 remoteserver.remotedomain.org -p 22 ; expect assword ; send "sshpassword\n" ; interact'

In this example the password sshpassword is returned when the ssh program requires a password. Expect waits for some text to be displayed in the command-line terminal then returns text in return. The Menu Item must be "Run in terminal", therefore.


Capture a screenshot

See this tutorial.


Customize desktop to look like KDE


In recent versions of Ubuntu, the Gnome desktop can be made to resemble the cleaner KDE desktop with some customization. (Customizations are highly personal, and this section represents preference only.)


Run a KDE 4 desktop from Ubuntu

It is possible to install the KDE4-based desktop (the default in Kubuntu) in Ubuntu.

apt-get install kubuntu-desktop
There is a risk of software bloat and some incompatibilities between modules when doing this. At login, you can choose (as an option) whether to start the KDE (Kubuntu) desktop or the Gnome (Ubuntu) desktop. Nevertheless, when there are two modules trying to perform the same function (one from each desktop), it is possible to have conflicts.


Run a KDE 3 desktop from Ubuntu


You can also install the older KDE 3 desktop on Lucid, or almost any KDE3 application.

  • Add the following KDE 3 repositories:
sudo add-apt-repository ppa:kde3-maintainers
  • Install KDE 3.5 desktop:
sudo apt-get update
sudo apt-get install kubuntu-desktop-kde3
  • To install any KDE3 app, append "-kde3" suffix to package name. See Pearson Computing for additional details.

Kill (end) a process


  • There are many tricks to try to fix a frozen PC. Press Alt+F2, and use killall to end the frozen application. Example:
sudo killall amarok
sudo killall firefox
  • In order to terminate a stuck graphical application use the xkill utility. Press Alt+F2, type xkill, and press Run. Point the cursor to the application you want to kill and press the left mouse button. This should kill the selected application.
xkill
  • Another trick to try is pressing AltGr+SysRq+K (RightAlt+PrintScreen+K). This will log you out. But, what happens if this does not work? Try pressing Ctrl+Alt+F1,login, enter your password and run:
sudo killall gdm
sudo startx

View hidden files

In the Nautilus file manager, press:


Ctrl+ H

Mute notifications (alerts)

  • Notifications (alerts) can be disabled:
Menu -> System -> Preferences -> Sound -> Sound Effects -> Sound theme: -> No sounds -> Close
  • GNOME notifications (alerts) are associated with sounds by default. This can also be disabled separately:
Alt-F2 -> gconf-editor -> /apps/indicator-sound -> volume_mute (ticked)
  • Turn off login notification sound:
Menu -> System -> Preferences -> Startup Applications -> Startup Programs -> GNOME Login Sound (unticked) -> Close
-> Menu -> System -> Administration -> Login Screen -> Unlock -> Play login sound (unticked) -> Close

Random password generator

  • Pwgen is a command line utility to generate a block of random passwords. Run it from Konsole (in Kubuntu) or Terminal (in Ubuntu). Install:
sudo apt-get install pwgen
  • Run pwgen:
pwgen
  • UUIDgen is a default utility to generate a random UUID. Run:
uuidgen

The random UUID can also be used as a password, if desired.


MD5Sum

To check the MD5 sum of a file, use this command in the command line:

md5sum filename

Alien


Alien is a method for converting (Red Hat) .rpm packages into (Debian) .deb packages. It is not reliable and converted packages must be tested extensively for functionality, with line changes often required. It is often more reliable to create (Debian) .deb packages from source, and even the Alien software maintainers do not recommend using Alien for important packages.
To keep alien from changing the version number, use the following command

alien -k rpm_file_name.rpm
Convert the package.rpm into a package.deb

alien -d package-name.rpm
Convert the package.rpm into a package.deb, and install the generated package

alien -i package-name.rpm
To convert .rpm to debian


sudo alien -k *.rpm

Software Troubleshooting


Permissions error on program startup

If you get a permissions error, try the following:

sudo chown -R user /home/user

Note: Replace user with the actual username. This command changes the owner of the folder /home/user to user. -R means "recursively", i.e. including all subfolders.

CD-ROM Troubleshooting

If you receive the "cdrecord has no permission to open the device" error while burning using a CD burner, open a terminal and type:


sudo chmod 777 /dev/scd0
Note: replace "/dev/scd0" with your own device.
Note: chmod 777 is the universal option for granting full permission to a folder. The 777 mask indicates that read, write, and execute permission is given to all users.

Comments

  1. We stumbled over here different web address and thought I should check things out.

    I like what I see so i am just following you.
    Look forward to looking into your web page for a second time.
    Here is my website - hcg-injections

    ReplyDelete
  2. I am rеally thаnκful to thе holder of this web sіte who has ѕhаrеd
    this fantastic post at here.
    My webpage - birmingham seo

    ReplyDelete

Post a Comment

Popular posts from this blog

Drupal Bootstrap Database

How to fix 500 internal privoxy error