Bird
Raised Fist0
Linux CLIscripting~10 mins

Building from source basics in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes software is not available as a ready-made package. Building from source means compiling the program yourself from its original code. This lets you customize or use the latest version.
When you want to install a program that is not in your system's package manager.
When you need a newer version of software than what your system offers.
When you want to customize software features by changing its source code.
When you want to learn how software is built and installed on Linux.
When troubleshooting software issues that might be fixed by rebuilding.
Commands
This command extracts the compressed source code archive so you can access the files needed to build the software.
Terminal
tar -xzf example-software-1.0.tar.gz
Expected OutputExpected
No output (command runs silently)
→
-xzf - Extract a gzip compressed tar archive
Change directory into the extracted source code folder to prepare for building.
Terminal
cd example-software-1.0
Expected OutputExpected
No output (command runs silently)
This script checks your system for required tools and libraries and prepares the build configuration.
Terminal
./configure
Expected OutputExpected
checking for gcc... gcc checking for make... make checking for required libraries... found Configuration complete. Ready to build.
This command compiles the source code into executable programs using the instructions from the configure step.
Terminal
make
Expected OutputExpected
gcc -o example example.c make: Nothing to be done for 'all'.
This installs the compiled program into system directories so you can run it from anywhere.
Terminal
sudo make install
Expected OutputExpected
Installing example to /usr/local/bin Installation complete.
→
sudo - Run the install command with administrator rights
Key Concept

If you remember nothing else from this pattern, remember: building from source means extracting, configuring, compiling, and installing step-by-step.

Common Mistakes
Skipping the ./configure step before running make
The build system won't know your system setup and may fail or build incorrectly.
Always run ./configure first to prepare the build environment.
Trying to install without sudo permissions
Installing to system directories requires admin rights and will fail without them.
Use sudo before make install to get the necessary permissions.
Not extracting the source archive before building
You cannot build from a compressed archive; files must be extracted first.
Use tar -xzf to extract the source code before building.
Summary
Extract the source code archive with tar -xzf.
Run ./configure to prepare the build system for your environment.
Use make to compile the source code into programs.
Run sudo make install to copy the programs to system directories.

Practice

(1/5)
1. What is the first step you usually perform when building software from source after downloading the archive?
easy
A. Run the make command
B. Extract the archive files
C. Install the software
D. Configure the system settings

Solution

  1. Step 1: Identify the initial action after download

    After downloading source code, you first need to extract the files from the archive (like .tar.gz) to access them.
  2. Step 2: Understand the build sequence

    Extraction comes before configuration, compilation, and installation.
  3. Final Answer:

    Extract the archive files -> Option B
  4. Quick Check:

    First step = Extract [OK]
Hint: Always extract source files before anything else [OK]
Common Mistakes:
  • Trying to compile before extracting files
  • Running make without configuration
  • Skipping extraction step
2. Which command is used to prepare the build environment by checking system settings before compiling?
easy
A. ./configure
B. gcc main.c
C. tar -xvf source.tar.gz
D. make install

Solution

  1. Step 1: Identify the configuration command

    The ./configure script checks your system for required tools and sets up makefiles.
  2. Step 2: Differentiate from other commands

    make install installs, tar -xvf extracts, and gcc compiles single files.
  3. Final Answer:

    ./configure -> Option A
  4. Quick Check:

    Prepare build = ./configure [OK]
Hint: Use ./configure to set up before compiling [OK]
Common Mistakes:
  • Running make install before configure
  • Confusing extraction with configuration
  • Trying to compile without configuration
3. Given these commands run in order inside the source directory:
./configure
make
sudo make install
What is the expected result?
medium
A. An error occurs because sudo is used incorrectly
B. Only the software is compiled but not installed
C. The software is installed without compiling
D. The software is configured, compiled, and installed system-wide

Solution

  1. Step 1: Understand each command's role

    ./configure prepares build files, make compiles the software, and sudo make install installs it with admin rights.
  2. Step 2: Combine the steps' effects

    Running all three in order results in a configured, compiled, and installed program available system-wide.
  3. Final Answer:

    The software is configured, compiled, and installed system-wide -> Option D
  4. Quick Check:

    Configure + make + sudo install = full build [OK]
Hint: Run configure, then make, then sudo make install [OK]
Common Mistakes:
  • Skipping configure step
  • Not using sudo for install
  • Expecting install without compilation
4. You run make install without sudo and get a permission denied error. What is the best fix?
medium
A. Run sudo make install to get admin rights
B. Run make again without install
C. Re-extract the source files
D. Skip installation and use the software from source

Solution

  1. Step 1: Identify cause of permission error

    Installing usually writes to system folders needing admin rights, so permission is denied without sudo.
  2. Step 2: Apply correct fix

    Using sudo make install runs install with admin privileges, fixing the error.
  3. Final Answer:

    Run sudo make install to get admin rights -> Option A
  4. Quick Check:

    Permission denied fix = sudo install [OK]
Hint: Use sudo for install to avoid permission errors [OK]
Common Mistakes:
  • Ignoring permission errors
  • Trying to reinstall without sudo
  • Assuming extraction fixes install errors
5. You want to build a program from source but customize it to install in your home directory instead of system-wide. Which command should you run before make?
hard
A. sudo ./configure
B. make install PREFIX=$HOME/myprogram
C. ./configure --prefix=$HOME/myprogram
D. tar -xvf source.tar.gz --prefix=$HOME/myprogram

Solution

  1. Step 1: Understand how to customize install location

    The --prefix option with ./configure sets the installation directory.
  2. Step 2: Differentiate from other options

    Passing PREFIX to make install is less common; sudo is for admin rights, and tar does not set install paths.
  3. Final Answer:

    ./configure --prefix=$HOME/myprogram -> Option C
  4. Quick Check:

    Customize install path = configure --prefix [OK]
Hint: Use ./configure --prefix=your_path before make [OK]
Common Mistakes:
  • Trying to set prefix during make install
  • Using sudo unnecessarily
  • Misusing tar command for install path
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard