Most of the software you will install on your Fedora system will either come from a desktop application manager tool such as the https://wiki.gnome.org/Apps/Software[GNOME Software tool] or from a command line package manager such as https://docs.fedoraproject.org/en-US/quick-docs/dnf/[dnf]. These tools make it easy to install, update, and if needed remove applications on your system.
However, there might be times where you will need to install an application from source, meaning to take the application source code and compile it into a working application.
In these cases you will need to install the software from the command line, using the source files provided by the application developers or maintainers.
These tools are generally installed by default on a modern Fedora system. You can verify that they are available by typing in `make`, `tar`, and `gzip` from the command line. You will see instructions on how to use the application if it is available. If the application is not available you will get an error along with instructions on how to install.
. Download the application archive file to your computer. The default location is the Downloads folder, but you might be able to choose a location during the download process.
. Extract the files from the downloaded archive. The command you use will depend on the application package.
. Carefully read any instructions that came with your download. These instructions might also be available on the website you downloaded the file from. These instructions will tell you what you need to do to install the application.
. Follow the commands given in the README (or other installation instructions) to configure, build, compile, and install the application.
=== Download the application archive to your computer
The default download location is your Downloads folder. From the command line the location is `/home/username/Downloads` (note the capital D in Downloads).
Most applications require many files or even directories, packaged together into an archive. The most common archives are "tarballs," with the files packaged by using the `tar` (tape archive) command. These will have a `.tar` file extension.
In some cases the files will use a variation of the Zip archive format, such as `.zip` or `.gz`. Depending on the size of the download the application developer might use both `tar` and `gzip` together, so that the file will have a `.tar.gz` extension.
Use the `man` command to learn more about `tar`, `gzip`, and `unzip`: `man tar`, `man gzip`, or `man unzip`. You can also find their `man` pages online: https://linux.die.net/man/[Linux man pages]. Search for the command you want to look up.
=== Carefully read any instructions that came with your download
When you extract the archive it will leave you with a directory with the same or similar name. You can now change into that directory to find the installation instructions that tell you how to configure and build the application.
The extracted folder for the application will have a README or some other file that gives instructions on how to install, configure, and manage the application. The README file will have detailed directions on things such as:
NOTE: If no instructions exist on how to configure or build the application, you will need to reach out to the application developers for help. You might also find instructions online from someone else who had a similar issue.
. Configure the application by using the `configure` command.
. Build and compile the application by using `make`.
. Install the application by using `make install`. The `make install` command will need to run using `sudo` so it can write to system directories and local directories.
NOTE: If you get any errors during the configure and build process, carefully read the error messages and follow the instructions on how to resolve them. There can be dependency issues for some applications, meaning that to install application C, you need to have applications A and B installed. Resolving dependency issues can be challenging and you might need to look for help online to help solve the problem.