-
Notifications
You must be signed in to change notification settings - Fork 0
Baseline Packages
Luís Pinto edited this page Jun 26, 2026
·
11 revisions
Prepare a baseline environment by running these commands in Ubuntu.
# Update package lists, if necessary:
sudo apt update --assume-yes
# Upgrade installed packages to their latest available versions, if necessary:
sudo apt full-upgrade --assume-yes
baselinePackages=(
# Core Build Tools
build-essential # Provides GCC, G++, make, and libc headers.
cmake # Provides the CMake build system generator.
ninja-build # Provides a fast CMake build backend.
# Autotools Build Support
autoconf # Provides configuration script generation.
automake # Provides portable Makefile generation.
libtool # Provides portable library-building support services.
libtool-bin # Provides the libtool executable.
pkg-config # Provides compiler and linker flag discovery.
# Build Script Dependencies
gettext # Provides localization and gettext tools.
m4 # Provides the Autoconf macro processor.
perl # Provides the Perl 5 interpreter for build systems.
python3 # Provides the Python 3 interpreter for scripts.
# Source and File Utilities
7zip # Provides the 7-Zip file archiver.
file # Provides file type identification.
git # Provides a source control client.
patch # Provides diff patch application.
rsync # Provides efficient file transfer and synchronization.
sshpass # Provides non-interactive SSH password authentication.
unzip # Provides ZIP archive extraction.
wget # Provides a non-interactive network downloader.
# Firmware Tools
u-boot-tools # Provides the mkimage U-Boot image utility.
)
# Install the 'baselinePackages':
sudo apt install --assume-yes \
"${baselinePackages[@]}"
# Remove cached package files that are no longer required:
sudo apt autoclean --assume-yes
# Remove dependency packages that are no longer required:
sudo apt autoremove --assume-yesNote
libtool-bin is required on Ubuntu; libtool alone does not provide the libtool executable.
Verify that the commands for the installed baselinePackages are available:
baselineCommands=(
gcc
g++
make
ninja
cmake
autoconf
automake
libtool
libtoolize
pkg-config
gettext
m4
perl
python3
7z
file
git
patch
rsync
sshpass
unzip
wget
mkimage
)
for commandName in "${baselineCommands[@]}"; do
printf '%-12s ' "$commandName"
command -v "$commandName"
done gcc /usr/bin/gcc
g++ /usr/bin/g++
make /usr/bin/make
ninja /usr/bin/ninja
cmake /usr/bin/cmake
autoconf /usr/bin/autoconf
automake /usr/bin/automake
libtool /usr/bin/libtool
libtoolize /usr/bin/libtoolize
pkg-config /usr/bin/pkg-config
gettext /usr/bin/gettext
m4 /usr/bin/m4
perl /usr/bin/perl
python3 /usr/bin/python3
7z /usr/bin/7z
file /usr/bin/file
git /usr/bin/git
patch /usr/bin/patch
rsync /usr/bin/rsync
sshpass /usr/bin/sshpass
unzip /usr/bin/unzip
wget /usr/bin/wget
mkimage /usr/bin/mkimage
Previous Article
WSL (Windows Subsystem for Linux)
Next Article
Optional Packages