Software packages and builds

Learning objectives

Identify which package supplied a command, inspect installed versions, recognize common build tools, and describe a reproducible build.

1 Objective→ 2 Learn→ 3 Example→ 4 Practice→ 5 Verify→ 6 Continue
How to study this lessonUnderstand the idea first. Use the example to see the behaviour, practise where provided, then make sure you can explain the result before continuing.

Explanation

Packages and repositories

CentOS Stream and RHEL-compatible systems use RPM packages and DNF repositories. A package contains installed files plus version and dependency information. Repository configuration identifies where packages come from.

Inspection is safe for practice. Installing, removing, or updating system packages changes the workstation and requires authorization.

Commands you will use

Command What it does Example
rpm -q Prints the installed package version. rpm -q bash
rpm -qi Shows package information. rpm -qi bash
rpm -ql Lists files installed by a package. rpm -ql bash
rpm -qf Finds the package that owns an installed path. rpm -qf /usr/bin/bash
dnf info Shows repository and package information. dnf info bash
command -v Finds a build tool through PATH. command -v make
make -n Prints planned build commands without running them. make -n

Common build tools include gcc, g++, make, cmake, ninja, and pkg-config. A reproducible build records source revision, tool versions, dependencies, options, and the exact command. Python dependencies belong in a project virtual environment with pinned versions.

Worked example

command -v bash
rpm -q bash
rpm -qf /usr/bin/bash
command -v gcc
command -v make
python3 --version

Expected result on the reference system: Bash has an installed RPM version and /usr/bin/bash has a package owner. An optional build tool may be missing; record that result instead of installing it.

RTL/DV use

Before accepting a simulation result, record the simulator and build-tool versions. A command with the same name can behave differently after an unreviewed package update.

Common mistakes

  • Running a full system update to solve one missing tool.
  • Recording only the command name and omitting its version.
  • Installing Python packages into the system interpreter.
  • Assuming a successful package signature check proves that all software behavior is safe.

Check yourself

Why should an engineering run record package and tool versions?

Engineering practice

Practice: Software packages and builds

Task→Run / reason→Check result→Explain why

Identify the executable path, package owner, and version for Bash or another installed command. If RPM information is unavailable, record the operating system difference.

Practice work is non-certified and is not stored by ASIC Campus.