Generic Installation Guide

This guide will take you through general approaches to installing software. Many of these methods will help you out if there isn't currently a dedicated guide as part of Feral's wiki.

Restrictions

Users do not have root access and will not be able to run apt-get, su or sudo. Whilst many software guides (outside of Feral) may instruct you to use sudo, this is generally only to allow you to install to a protected directory such as /usr/bin/. On your slot, you can simply install things relative to $HOME which does not require any special permissions.

Installed software locations

All user installed programs are installed relative to a single location, the user's home, which is also known as $HOME. As this is the "start point" for user slots, the conventional directory structure of a Unix-type platform can be mimicked. In other words, the user can have directories such as bin and opt.

PATH

The PATH is a way of telling the system where it should look to run the software. This can more easily be illustrated with an example - in the example below, we're trying to call the software rclone from our main user folder, whilst connected via SSH:

[server ~] rclone config
bash: rclone: command not found
[server ~] echo "PATH=~/bin:$PATH" > ~/.bashrc
[server ~] source ~/.bashrc
[server ~] rclone config
Current remotes:

...

In the above we can see the following:

  • We tried to call rclone from somewhere but got an error
  • Already knowing that the rclone binary was installed to ~/bin we added that location to PATH (echo "PATH=~/bin:$PATH" > ~/.bashrc)
  • We then made sure those changes were loaded (source ~/.bashrc)

You can of course add other locations if you wish to, though ~/bin is a common one.

Installation methods

There are several ways to install software on your slot - you can download a binary, compile it from source, clone the repo using git amongst others. All of the methods involve getting something onto your slot in some way. With the exception of Git (which has its own commands - see Installing via Git) the easiest way to do this is to use wget.

Using wget

A standard command to get the binary or source onto your slot will look like this:

wget -qO ~/software.tar.gz https://somesite.com/software.tar.gz

We can break down this command as follows:

wget
The tool we're using to go get the binary or archive
-q
Turn off wget's output. You won't see what it's doing - consider not using q if you're getting errors
-O ~/software.tar.gz
Saves the file as the given filename
https://somesite.com/software.tar.gz
The place we're getting the binary or archive from

The wget tool will be used frequently when installing custom software and is used (without further explanation) on many of the guides linked to below.

Installing pre-compiled binaries

There is a separate page for installing pre-compiled binaries.

Installing by compiling from source

There is a separate page for compiling software from source.

Installing by extracting Debian packages

There is a separate page for extracting Debian packages.