How to Compile unrar from Source on Unix

Compiling unrar from source code on a Unix-based operating system ensures you have the latest official release and full control over binary optimizations for your specific architecture. This guide provides a straightforward walkthrough detailing how to install the required build dependencies, download the official source tarball from RARLAB, build the executable using standard compilation tools, and install the resulting binary directly into your system PATH.

1. Install Required Build Tools

Before compiling, ensure your system has a C++ compiler (such as GCC or Clang) and the make utility installed.

On Debian or Ubuntu:

sudo apt update
sudo apt install build-essential

On Fedora, CentOS, or RHEL:

sudo dnf groupinstall "Development Tools"

On macOS (via Homebrew or Xcode Command Line Tools):

xcode-select --install

2. Download and Extract the Source Code

RARLAB hosts the official source code packages for unrar. Use wget or curl to download the latest source archive:

wget https://www.rarlab.com/rar/unrarsrc-6.2.12.tar.gz

Note: You can check https://www.rarlab.com/rar_add.htm to substitute the version number with the most current release.

Extract the downloaded archive and enter the newly created directory:

tar -xzvf unrarsrc-*.tar.gz
cd unrar

3. Compile the Binary

The extracted directory includes a pre-configured makefile. Compile the source code by invoking make:

make

If you prefer to build a shared library (libunrar.so) instead of the standalone utility, you can run:

make lib

4. Install the Executable

Once compilation completes without errors, install the unrar binary into a standard system directory, such as /usr/local/bin:

sudo make install

Alternatively, if the makefile install target does not match your directory layout, copy the binary manually:

sudo install -m 755 unrar /usr/local/bin/

5. Verify the Installation

Check that the system recognizes the newly installed utility and displays the proper version information:

unrar

The output will display the program version, copyright information, and a list of available extraction commands and switches.