This is an old revision of the document!


Installing Software on Linux

The installation of Linux software is a common request. Users can submit requests to cshelpdesk@virginia.edu for software to be installed on department Linux systems. However, all servers already have the most common software already installed and available. See the next section “Software Modules” for more information.

Users also have the option to compile software packages themselves, installing the software to an alternate location, however this should only be done under certain circumstances. The best option is to request packages to be installed, this way the software gets installed to all of our systems.

If you are building a package from source, you should use the configure script or the build environment variable to set an install-prefix of /usr/local. Then when you compile, the software will be configured to install exclusively to /usr/local when you install. Compiling and installing a typical package built using Autoconf/Automake looks like this:

ktm5j@applecake ~ $ tar -xf coreutils-8.9.tar.xz
ktm5j@applecake ~ $ cd coreutils-8.9
ktm5j@applecake ~/coreutils-8.9 $ ./configure --prefix=/usr/local
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
...
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
ktm5j@applecake ~/coreutils-8.9 $ make
make  all-recursive
make[1]: Entering directory `/net/zf15/ktm5j/coreutils-8.9'
Making all in lib
make[2]: Entering directory `/net/zf15/ktm5j/coreutils-8.9/lib'
...
...
ktm5j@applecake ~/coreutils-8.9 $ make install
..

The /usr/local path is the conventional path for software which is installed locally to a system. This is for software which has a different version and/or configuration than the standard system software. For example, if you need your own alternate version of GCC, you can install it here. All you need to do to get ownership of /usr/local is to send a ticket to root requesting it.

We caution against compiling and/or installing software to your home directory. If the path to your home directory were to change due to a filesystem migration or something similar, then your software can break. This will especially cause issues if your .bashrc or .profile adds a path in your home directory to your PATH environment variable. This will cause your shell to become unusable if anything changes.

We now compile and install software to the /sw network path. This is a network filesystem filled with software that has been requested by faculty and students. We now use software called Environment Modules to manage software packages, please read the main article on modules for more information.

  • linux_software_install.1594660284.txt.gz
  • Last modified: 2020/07/13 17:11
  • by pgh5a