This page will describe the necessary steps to set up Debian Linux, with the specific aim of getting your system ready to run Amber.
There are 3 ways to install Debian (at least, the only three I would choose from):
These are listed in order of increasing download size (and subsequently, increasing number of steps required to get Amber installed). I chose the netinstall method—this method installs a bare, base system (just follow the GUI instructions), and requires most other packages to be downloaded from the internet.
Therefore, if some of the advice below returns messages that the package already exists, that's probably because you chose either the CD or DVD install (or Blu-Ray??)
First, I will review the basic use of aptitude — Debian's package manager (this will look very similar to the Ubuntu page). At the end, I have a list of packages that I found helpful from Ubuntu, with *'s next to the ones that are necessary for Amber.
I tested these both on Squeezy (the current Debian release as of 4/2012) and Wheezy (the testing Debian beta due to release in 2013)—installing the *ed packages in the last section was enough to build Amber successfully.
Aptitude comes pre-installed 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 python-editobj - Python object editor pyching - A Python program to cast and interpret I Ching hexagrams python-opengl - Python bindings to OpenGL idle - IDE for Python using Tkinter (default version) python-pmw-doc - Pmw -- Python MegaWidgets python-pmw - Pmw -- Python MegaWidgets python-tk-dbg - Tkinter - Writing Tk applications with Python (debug extension) python-tk - Tkinter - Writing Tk applications with Python idle-python2.5 - An IDE for Python (v2.5) using Tkinter idle-python2.6 - An IDE for Python (v2.6) using Tkinter idle3 - IDE for Python using Tkinter (default version) python3-tk-dbg - Tkinter - Writing Tk applications with Python 3.x (debug extension) python3-tk - Tkinter - Writing Tk applications with Python 3.x idle-python3.1 - An IDE for Python (v3.1) using Tkinter 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 libsnack2 - Sound extension to Tcl/Tk and Python/Tkinter - Tcl/Tk library python-tksnack - Sound extension to Tcl/Tk and Python/Tkinter - Python library
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
bash$ 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: blt tk8.5 Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: python-tk 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 139 kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 128456 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
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)