
How to Build and Install Software from Source on Linux: A Complete Guide
While Linux package managers like apt, yum, and dnf provide a convenient way to install software, there are times when you need more control. Compiling software directly from its source code is a fundamental skill for any serious Linux user, offering flexibility and power that pre-built packages can’t always match.
This guide will walk you through the entire process, from obtaining the source code to compiling and installing it on your system. We’ll cover the prerequisites, the standard commands, and best practices for a clean and secure installation.
Why Compile Software from Source?
Before diving into the “how,” it’s important to understand the “why.” You might choose to build from source for several key reasons:
- Access the Latest Version: You can get the most recent features, bug fixes, or performance improvements the moment they are released by the developers, without waiting for your distribution’s maintainers to package them.
- Enable Custom Features: Many applications have optional features that can be enabled or disabled during compilation. Building from source allows you to tailor the software to your exact needs, creating a more lightweight and efficient program.
- Optimize for Your System: Compiling on your own machine allows the compiler to make specific optimizations for your processor’s architecture, which can sometimes lead to better performance.
- Install Software Not in Repositories: Sometimes, a particular piece of software, especially niche or new applications, simply isn’t available in your distribution’s official repositories.
Step 1: Install the Necessary Build Tools
You can’t build software without the proper tools. Your system needs a compiler (like GCC), the make utility to automate the build process, and other essential libraries and headers. Fortunately, these are easy to install as a single package group.
On Debian-based systems (Ubuntu, Mint), open your terminal and run:
sudo apt update
sudo apt install build-essential
On Red Hat-based systems (Fedora, CentOS, RHEL), use the following command:
sudo dnf groupinstall "Development Tools"
This single command installs everything you need to start compiling.
Step 2: Obtain and Extract the Source Code
Source code is typically distributed in a compressed archive file, often called a “tarball” (with extensions like .tar.gz or .tar.bz2).
- Download the source code from the software’s official website. Always download from a trusted, official source to avoid security risks.
- Move the archive to a dedicated directory, like
~/builds, to keep your home folder organized. - Extract the archive. Open a terminal and navigate to the directory where you saved the file. Use the
tarcommand to extract it:
For .tar.gz files:
tar -xzvf name-of-software.tar.gz
For .tar.bz2 files:
tar -xjvf name-of-software.tar.bz2
This will create a new directory containing all the source code files. Navigate into this new directory with the cd command to proceed.
Step 3: The Classic Three-Step Build Process
The most common method for compiling software on Linux follows a three-command sequence: ./configure, make, and make install.
1. The ./configure Script
Before compiling, you need to prepare the build environment. This is handled by the configure script. This script checks your system for all the required dependencies, libraries, and tools. It also determines where the final program should be installed.
Run it from within the source code directory:
./configure
If the script runs successfully, it will create a Makefile, which contains the instructions for the compiler. If it fails, it will almost always be due to a missing dependency. Read the error message carefully—it will tell you what library is missing. You’ll then need to use your package manager to find and install the “developer” version of that library (e.g., sudo apt install libcurl4-openssl-dev).
2. The make Command
This is the step where the magic happens. The make command reads the Makefile and invokes the compiler (GCC) to turn the human-readable source code into machine-readable binary files (the executable program).
Simply run:
make
This process can take anywhere from a few seconds to many minutes, depending on the size of the software and the speed of your computer. You’ll see a lot of compiler output scroll by. As long as it finishes without an “Error” message, you’re good to go.
3. The sudo make install Command
After the compilation is successful, the final step is to copy the compiled files to the appropriate system directories so you can run the program from anywhere. This requires administrative privileges, so you must use sudo.
Execute the final command:
sudo make install
This command typically copies the executable to /usr/local/bin, its configuration files to /usr/local/etc, and its libraries to /usr/local/lib. Once this is done, your new software is installed and ready to use.
Security and Management Best Practices
- Trust Your Source: Only compile software from official project websites or trusted code repositories like GitHub. Executing scripts from an unknown source is a major security risk.
- Understand Uninstallation: One major drawback of this method is that your system’s package manager does not know about the software you just installed. This means you cannot use
apt removeto uninstall it. To remove the software, you must navigate back to the source code directory and runsudo make uninstall. However, not all developers include an uninstall rule, which can make removal difficult. - Run
makeas a Regular User: For security, only the finalmake installcommand should be run withsudo. There is no need to run./configureormakewith elevated privileges. This minimizes the risk of a malicious build script damaging your system.
Compiling from source gives you ultimate control over your software. While it requires a few extra steps, mastering this process unlocks a new level of proficiency and customization on your Linux system.
Source: https://kifarunix.com/compile-and-install-programs-from-source-code-in-linux/


