Skip to content

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-yes

Note

libtool-bin is required on Ubuntu; libtool alone does not provide the libtool executable.


Optional Steps

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

Clone this wiki locally