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.
Table of contents
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.
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.
There are several ways to install software on your slot - you can download a binary, compile it from source, or extra from a package. All of the methods involve getting something onto your slot in some way and the easiest way to do this is to use 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:
- The tool we're using to go get the binary or archive
- 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
- 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.