Ubuntu is a very popular Linux distribution (distro). It is installed very easily from CD, and is one of the only distributions that installs with just a CD (most other distros use DVDs now).
It is a distro that I used to use often (before the Unity abomination). The most annoying part of Ubuntu (pre-Unity) is how frequently it publishes new kernels that it bugs you about constantly to upgrade. Doing so will break any kernel module that you installed separately (like the NVIDIA or ATI graphics drivers you may have installed for your GPU).
It also has an easy-to-use package manager (aptitude) that makes installing most open source programs very simple.
Aptitude comes pre-installed on Ubuntu (which is based on Debian). It has a command-line interface (via the programs apt-get, apt-cache, aptitude, and other apt-* packages). It also has a GUI interface via System -> Administration -> Synaptic Package Manager in the Toolbar at the top of the screen. The rest of this tutorial will involve the command-line interface. The GUI works just as well and is fairly intuitive.
Aptitude will automatically build any necessary dependencies and works by downloading pre-compiled binaries for your particular processor and installing them into the standard locations (/usr).
Looking for Packages
If you want to find the exact name of a package using the command-line, you can use the command: apt-cache search <package_name>. For example, suppose we want to find Tkinter, the Python-Tcl/Tk interface package:
bash$ apt-cache search tkinter idle - An IDE for Python using Tkinter (default version) idle-python2.6 - An IDE for Python (v2.6) using Tkinter python-tk - Tkinter - Writing Tk applications with Python python-tk-dbg - Tkinter - Writing Tk applications with Python (debug extension) idle3 - An IDE for Python using Tkinter (default version) libsnack2 - Sound extension to Tcl/Tk and Python/Tkinter - Tcl/Tk library libsnack2-alsa - Sound extension to Tcl/Tk and Python/Tkinter - Tcl/Tk library libsnack2-dev - Sound extension to Tcl/Tk and Python/Tkinter - development files libsnack2-doc - Sound extension to Tcl/Tk and Python/Tkinter - documentation pyching - A Python program to cast and interpret I Ching hexagrams python-editobj - Python object editor python-opengl - Python bindings to OpenGL python-pmw - Pmw -- Python MegaWidgets python-pmw-doc - Pmw -- Python MegaWidgets python-tksnack - Sound extension to Tcl/Tk and Python/Tkinter - Python library python3-tk - Tkinter - Writing Tk applications with Python 3.x python3-tk-dbg - Tkinter - Writing Tk applications with Python 3.x (debug extension) skencil - Interactive vector drawing program for X11 idle-python3.1 - An IDE for Python (v3.1) using Tkinter
Installing a package is very easy. For this, the program apt-get is used. For example, to install the Tkinter package, just use the command: sudo apt-get install python-tk
$ sudo apt-get install python-tk Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: xdotool libdb4.7 libetpan13 Use 'apt-get autoremove' to remove them. Suggested packages: tix python-tk-dbg The following NEW packages will be installed: python-tk 0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. Need to get 28.9kB of archives. After this operation, 139kB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com/ubuntu/ lucid/main python-tk 2.6.5-0ubuntu2 [28.9kB] Fetched 28.9kB in 0s (43.1kB/s) Selecting previously deselected package python-tk. (Reading database ... 221793 files and directories currently installed.) Unpacking python-tk (from .../python-tk_2.6.5-0ubuntu2_amd64.deb) ... Setting up python-tk (2.6.5-0ubuntu2) ...
If you no longer want a program installed, you can remove it via the command: sudo apt-get remove <package_name>. For instance, suppose we installed Tkinter (see Installing Packages above), but now want to get rid of it:
bash$ sudo apt-get remove python-tk Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: xdotool libdb4.7 libetpan13 Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: python-tk 0 upgraded, 0 newly installed, 1 to remove and 4 not upgraded. After this operation, 139kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 221799 files and directories currently installed.) Removing python-tk ...
You can do a more thorough uninstall by using purge instead of remove. This will get rid of dependencies as well (as long as they are not shared with other installed packages).
Package definitions and versions will be automatically updated by Ubuntu. You typically do not have to worry about this. You can use the command
sudo apt-get update
To upgrade outdated packages, you can use the command
sudo apt-get dselect-upgrade
Packages to Install From Aptitude
NOTE: The list of packages necessary for Amber is determined to be complete for the following versions of Ubuntu: 10.04, 10.10, 11.10, and 12.04. While I hope this is still complete in the future, there is a chance that it may not be.
The list of packages below are just packages that I have found useful in my work, along with their variants. Packages listed with a "*" are required to build a full installation of Amber.
- flex *: Lexical analyzer generator
- bison *: Parser generator
- tcsh *: TC shell (a variant of the C-shell, and provides a csh link to tcsh)
- gfortran *: GNU Fortran 77/90 compiler
- g++ *: GNU C++ compiler
- xorg-dev *: X header files and developer libraries (for xleap)
- libbz2-dev *: BZ2 compression library development header files and libraries
- libopenmpi-dev *: MPI implementation which allows you to build Amber in parallel development files.
- openmpi-bin *: OpenMPI programs used to launch MPI programs with multiple threads
- python-tk *: Tcl/Tk interface (Tkinter) to Python. xparmed.py and MdoutAnalyzer.py uses this package.
- python-dev *: Developer header files for Python (mpi4py needs this to install)
- python-matplotlib *: Python plotting library used by MdoutAnalyzer.py to plot energy data
- python-numpy *: Library with array and scientific analysis support used by the MMPBSA.py API to generate your own analysis scripts for MM/PBSA data and used by MdoutAnalyzer.py to store and analyze energy data for plotting.
- python-scipy *: Expanded scientific/statistical analysis program used by MdoutAnalyzer.py only for plotting smoothed histograms from kernel density estimates
- libtool *: Generic library support script
- patch *: This is needed to apply all bug fixes for Amber and AmberTools
- autoconf (*): Autotools tool for generating configure scripts. Needed for sander.APBS
- automake (*): Autotools tool for generating Makefiles. Needed for sander.APBS
- python-mpi4py (*): MPI bindings for Python — needed for MMPBSA.py.MPI, but AmberTools will build its own copy if you don't have this. Not a bad idea to get, though.
- grace : plotting program with a nice GUI
- gnuplot : classic plotting program with a command-line interface
- ssh : Secure SHell client and server — this is needed to SSH into your machine.
- bkchem : 2D chemistry structure drawing tool
- chemtool : another 2D chemistry structure drawing tool
- netpbm : Assembles images into a movie (MPEG) file. Used by VMD
- pymol : A classic molecular visualization program written in Python
- libnetcdf-dev : NetCDF API (libraries and header files)
Setting up to Install Amber
As long as you installed the packages listed above with *s next to them, you should be ready to build Amber.