Software Repository

TarHeel Linux uses the default YUM (Yellowdog Updater Modified) to manage software installation within the system. TarHeel Linux machines are pre-configured to look into four software repositories: Scientific Linux (or CentOS for TarHeel Linux 5), Adobe, and the UNC ITS Research Computing. There are two ways to find and install applications – using the GUI, or from the command line.  We will be using command line in the following.

Finding the Software You Need

Over a thousand discrete rpm packages are installed by default on a TarHeel Linux machine. Currently, there are an additional several thousands rpm packages available for installation. This number will continue to grow as we add and update packages. Here are some hints on how to locate the software you need to do your work.

Every rpm package has both a short description and a long description included with other information in the repository index. The “yum search” command is a powerful tool for digging out keywords from these descriptions. In the following examples, we will provide some hints on using the text-based “yum search” command from a terminal window.

Example #1

You want to find a vector drawing program. You do not want to have to write such a program, so you are not interested in the available vector drawing libraries:

Let’s find every package description (either long or short) which contains the word “drawing”. We will also find every package which has the phrase “vector” in the package description. yum will show us the name and short description of a) every package containing BOTH “drawing” and “vector” in the description, b) every package with the word “drawing” and c) every package with the words “vector”. At this point, we can pipe “|” the output though a grep command with the “-iv” flag – which eliminates (-v) every reference to either “library” or “libraries” regardless of case (-i).

prompt$ yum search drawing vector
Loaded plugins: downloadonly, refresh-packagekit, security
==================== N/S Matched: drawing, vector ==========================
inkscape.x86_64 : Vector-based drawing program using SVG
xfig.x86_64 : An X Window System tool for drawing basic vector graphics

  Full name and summary matches only, use "search all" for everything.

To learn more about any of the packages identified by this query, the “yum info” command is useful:

prompt]$ yum info inkscape
Loaded plugins: downloadonly, refresh-packagekit, security
Available Packages
Name : inkscape
Arch : x86_64
Version : 0.47
Release : 6.el6
Size : 8.7 M
Repo : sl
Summary : Vector-based drawing program using SVG
License : GPLv2+
Description : Inkscape is a vector graphics editor, with capabilities similar to
 : Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector
 : Graphics (SVG) file format. It is therefore a very useful tool for web
 : designers and as an interchange format for desktop publishing.
 : Inkscape supports many advanced SVG features (markers, clones, alpha
 : blending, etc.) and great care is taken in designing a streamlined
 : interface. It is very easy to edit nodes, perform complex path operations,
 : trace bitmaps and much more.

NOTE: If the value on the Repo: line is “installed”, you win – this software is already installed and ready to use on your TarHeel Linux machine!

Example #2

If you want to know what software packages are available for viewing or manipulating molecules, you can begin your search with the keyword “molecul”, which will match both “molecular” and “molecule”.

prompt$ yum search molecul
Loaded plugins: downloadonly, refresh-packagekit, security
==================== N/S Matched: drawing, vector ==========================
ccp4.x86_64 : Collaborative Computational Project No. 4 Software for Macromolecular X-Ray Crystallography
ccp4mg.x86_64 : CCP4 Molecular Graphics
chemtool.x86_64 : A program for 2D drawing organic molecules
cp2k.x86_64 : A molecular dynamics engine capable of classical and Car-Parrinello simulations
cp2k-common.x86_64 : Molecular simulations software - common files
cp2k-smp.x86_64 : Molecular simulations software - multi-threaded version
gmxbench.noarch : Gromacs Molecular Dynamics Benchmarking Package
gromacs.x86_64 : Fast, Free and Flexible Molecular Dynamics
mmdb.i686 : Macromolecular coordinate library
mmdb.x86_64 : Macromolecular coordinate library
openmm.x86_64 : Tools for modern molecular modeling simulation
packmol.x86_64 : Packing optimization for molecular dynamics simulations
pymol.x86_64 : PyMOL Molecular Graphics System
ssm.i686 : Macromolecular coordinate superposition library
ssm.x86_64 : Macromolecular coordinate superposition library
tinker.x86_64 : Software Tools for Molecular Design
towhee.x86_64 : A Monte Carlo molecular simulation code
wxmacmolplt.x86_64 : A graphics program for plotting 3-D molecular structures and normal modes

  Name and summary matches only, use "search all" for everything.

If pymol sounds a bit more promising, it is better to go back to the terminal and put in a “yum info” request:

prompt$ yum info pymol
Loaded plugins: downloadonly, refresh-packagekit, security
Installed Packages
Name : pymol
Arch : x86_64
Version : 1.3
Release : 3.20100705svn3911.el6
Size : 18 M
Repo : installed
From repo : epel
Summary : PyMOL Molecular Graphics System
License : MIT and BSD and ZPLv2.0 and Bitstream Vera and OFL
Description : PyMOL is a molecular graphics system with an embedded Python
 : interpreter designed for real-time visualization and rapid generation
 : of high-quality molecular graphics images and animations. It is fully
 : extensible and available free to everyone via the "Python"
 : license. Although a newcomer to the field, PyMOL can already be used
 : to generate stunning images and animations with ease. It can also
 : perform many other valuable tasks (such as editing PDB files) to
 : assist you in your research.

This will display a URL for the software, and it is an excellent place to look to see exactly what the software does – and how to use it!

Notes on Search Techniques

It is often helpful to break your search into its individual components to begin with. This will help you identify the best key words. I will also help in identifying words you wish to exclude (stop words). The pipe “|” utility from the shell simply pipes the output from one command into the input of the next command. The grep command is quite powerful if you are familiar with UNIX regular expressions. You can do a lot with only the “-i” (ignore-case match) and the “-v” (invert-match / exclude) flags. Use the “man” command to learn more about grep. (prompt$ man grep) You will also notice our use of a string which will match several versions of a word – as in “graphic” to match “graphical” and “graphics” or “librar” to match both “library” and “libraries”.