Software packages and builds
Identify which package supplied a command, inspect installed versions, recognize common build tools, and describe a reproducible build.
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?
Practice: Software packages and builds
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.