When working with software on Linux, particularly Ubuntu, you’ll inevitably encounter compressed archive files. Among the most common are those with the .tar.gz extension. These are essentially two-part archives: first, a .tar file (Tape Archive) bundles multiple files and directories into a single file, and then gzip compresses that .tar file to reduce its size. Installing software from these archives is a fundamental skill for any Ubuntu user looking to go beyond pre-packaged software from the Ubuntu Software Center or apt repositories.
This guide will walk you through the process of extracting and, where applicable, installing software distributed in .tar.gz format on your Ubuntu system. We will cover the basic extraction methods, how to navigate the typical installation process, and some common pitfalls to avoid.

Understanding .tar.gz Archives
Before diving into the installation process, it’s crucial to understand what a .tar.gz file represents.
What is a .tar File?
A .tar file is not a compression format itself. Instead, it’s an archiving utility that bundles multiple files and directories into a single file, often referred to as a “tarball.” This is useful for transferring or backing up collections of files while preserving their directory structure and permissions. Think of it like creating a single package containing all the components of a project, ready to be moved or stored.
What is .gz Compression?
.gz is the file extension for files compressed using the gzip utility. gzip is a widely used compression algorithm that significantly reduces the size of files, making them faster to download and requiring less storage space. When you see .tar.gz, it means that a .tar archive has been compressed using gzip.
Why Use .tar.gz for Software Distribution?
Software developers often distribute their code or pre-compiled binaries in .tar.gz format for several reasons:
- Universality: The
tarandgziputilities are standard on almost all Linux and Unix-like systems, including Ubuntu. This makes.tar.gza widely compatible format. - Simplicity: The process of creating and extracting these archives is straightforward.
- Control: Developers can provide specific versions of software that might not be readily available in official repositories, or they can offer the source code for users who wish to compile it themselves.
- Cross-Platform Compatibility: While primarily used in Linux,
.tar.gzfiles can also be handled on other operating systems with appropriate software.
Extracting .tar.gz Archives
The first step in dealing with a .tar.gz file is to extract its contents. Ubuntu provides built-in tools for this.
Using the Command Line (Terminal)
The most efficient and common way to extract .tar.gz files is through the terminal.
The tar Command
The tar command is your primary tool. It has numerous options, but for extracting .tar.gz files, a few are essential:
-x: Extract files from an archive.-z: Decompress the archive usinggzip.-v: Verbose output (optional, shows files as they are extracted).-f: Specify the filename of the archive. This option must be the last one specified before the filename.
Common Extraction Command:
To extract a file named software-package.tar.gz into the current directory, you would use:
tar -xzvf software-package.tar.gz
Explanation:
tar: Invokes the tar utility.-x: Tells tar to extract.-z: Tells tar to use gzip for decompression.-v: (Optional) Shows you each file as it’s extracted. This is helpful for seeing the progress.-f: Specifies that the next argument is the filename to operate on.software-package.tar.gz: The name of the archive file you want to extract.
Extracting to a Specific Directory:
Sometimes, you might want to extract the contents to a different directory than the current one. You can achieve this by specifying the -C option (uppercase C) followed by the target directory.
For example, to extract software-package.tar.gz into /opt/software/:
mkdir -p /opt/software/ # Create the directory if it doesn't exist
tar -xzvf software-package.tar.gz -C /opt/software/
Using the File Manager
Ubuntu’s default file manager, Nautilus (or “Files”), also provides a graphical way to extract .tar.gz files.

- Locate the file: Open your file manager and navigate to the directory where your
.tar.gzfile is saved. - Right-click: Right-click on the
.tar.gzfile. - Select “Extract Here” or “Extract to…”:
- “Extract Here” will extract the contents into the current directory.
- “Extract to…” will prompt you to choose a destination folder for the extracted files.
This graphical method is convenient for quick extractions, but the terminal offers more control and is often necessary for subsequent installation steps.
Installing Software from .tar.gz
Extracting a .tar.gz file is only the first step. Often, the extracted files contain source code or pre-compiled binaries that need to be installed to be usable system-wide or in a specific user environment. The installation process can vary significantly depending on how the software was packaged.
Common Installation Scenarios
Most software distributed in .tar.gz archives follows one of a few common patterns.
Scenario 1: Pre-compiled Binaries
Some .tar.gz files contain ready-to-run executables and their associated libraries and data files. These are often the simplest to “install.”
- Extraction: Extract the
.tar.gzfile as described above. - Locate the Executable: Inside the extracted directory, look for an executable file. Its name is usually related to the software’s name.
- Running Directly: You might be able to run the software directly from its extracted location by navigating into the directory in the terminal and running
./executable_name. - Making it Accessible (Optional): To run the software from anywhere without specifying its full path, you have a few options:
- Moving to
/usr/local/bin: If you have administrator privileges (sudo), you can move the executable to/usr/local/bin/, which is typically in your system’s PATH.
bash
sudo mv /path/to/extracted/software/executable_name /usr/local/bin/
- Creating a Symbolic Link: Alternatively, you can create a symbolic link from
/usr/local/bin/to the executable in its original location.
bash
sudo ln -s /path/to/extracted/software/executable_name /usr/local/bin/
- Adding to PATH: You can also add the directory containing the executable to your system’s PATH environment variable. This is usually done by editing your shell’s configuration file (e.g.,
~/.bashrcor~/.zshrc).
- Moving to
Scenario 2: Source Code with configure, make, and make install
This is a very common pattern for open-source software. The .tar.gz file contains the source code, and you need to compile it on your system before installing.
- Extraction: Extract the
.tar.gzfile.
bash
tar -xzvf software-source.tar.gz
cd software-source/ # Navigate into the extracted directory
- Read the Documentation: Crucially, look for a file named
READMEorINSTALL. This file will contain specific instructions for compiling and installing this particular software. Do not skip this step. - Configuration: Most source-based installations use a script named
configure(or similar) to check your system’s dependencies and prepare the build environment.
bash
./configure
- Dependencies: The
./configurescript might fail if you’re missing necessary libraries or development tools. The error messages usually indicate what’s missing. You’ll need to install these usingapt. For example, if it sayslibssl-devis missing, you’d runsudo apt install libssl-dev. - Installation Prefix: The
configurescript often accepts an argument like--prefix=/path/to/install/to specify where the software should be installed. If not specified, it typically defaults to/usr/local/.
- Dependencies: The
- Compilation: After
configurecompletes successfully, you compile the source code using themakecommand.
bash
make
This step can take a considerable amount of time depending on the size of the software and your system’s processing power. - Installation: Once compilation is finished without errors, you can install the compiled software. This step usually requires administrator privileges.
bash
sudo make install
This command copies the compiled binaries, libraries, and documentation to their designated locations (often determined by the--prefixoption given toconfigure).
Scenario 3: Custom Installation Scripts
Some software may include its own custom installation script.
- Extraction: Extract the
.tar.gzfile. - Read Documentation: Again, check for
READMEorINSTALLfiles. - Locate Script: Look for a script, often named
install.sh,setup.sh, or something similar. - Execution: Execute the script, usually with
sudoif it’s intended for system-wide installation.
bash
cd extracted-software/
sudo ./install.sh
Follow any on-screen prompts carefully.
Important Considerations and Best Practices
Installing software from .tar.gz archives offers flexibility but also comes with responsibilities and potential risks.
Security and Trust
- Source Verification: Only download
.tar.gzfiles from trusted and official sources. Malicious software can be disguised as legitimate programs. - Checksums: If provided, verify the integrity of downloaded archives using checksums (MD5, SHA-256). You can usually find these on the download page. Use commands like
md5sum filename.tar.gzorsha256sum filename.tar.gzand compare the output to the provided checksum.
Dependency Management
- System Updates: Ensure your Ubuntu system is up-to-date before attempting to compile software. This ensures you have the latest versions of development tools and libraries.
- Package Manager vs. Manual Installation: Remember that software installed from
.tar.gzis not managed by Ubuntu’s package manager (apt). This meansaptwon’t know about it, won’t automatically update it, and won’t help you uninstall it cleanly. For most common software, usingapt(e.g.,sudo apt install software-name) is highly recommended as it handles dependencies, updates, and uninstallation gracefully. Manual installations are best reserved for software not available in repositories, or when you need a specific version or custom configuration.
Uninstalling Manually Installed Software
Uninstalling software installed from .tar.gz can be tricky.
make uninstall: If the software was compiled using theconfigure/make/make installprocess, there’s often a correspondingmake uninstalltarget. Navigate back to the source directory and runsudo make uninstall. This only works if the developer included this target.- Manual Deletion: If
make uninstallis not available, you’ll have to manually delete the files that were installed. This can be challenging to track down unless you know exactly where they were placed (e.g., by noting the--prefixused during configuration). - Custom Uninstall Scripts: If the software came with a custom installation script, there might be a corresponding uninstall script.
Using checkinstall
For source-based installations that don’t have a clean make uninstall target, you can use a tool called checkinstall. checkinstall replaces the sudo make install step. Instead of installing directly, it creates a Debian package (.deb) of the software you’re building. This .deb package can then be installed using dpkg and, importantly, can be uninstalled cleanly using apt or dpkg.
To use checkinstall:
- Install it:
sudo apt update && sudo apt install checkinstall - After running
./configureandmake, instead ofsudo make install, run:
bash
sudo checkinstall
Follow the prompts fromcheckinstall. It will guide you through creating the package and then installing it.

Conclusion
Mastering the installation of .tar.gz archives on Ubuntu provides a deeper level of control over your system and access to a wider range of software. Whether dealing with pre-compiled binaries or compiling from source, understanding the extraction process and the typical installation workflows (configure, make, make install) is essential. Always prioritize reading the documentation provided with the software, be mindful of security, and consider using tools like checkinstall for cleaner management of manually installed applications. While Ubuntu’s package manager is the primary and recommended way to install most software, the .tar.gz method remains a powerful tool in the advanced user’s arsenal.
