System Utilities Installer

Utilities~4 minView script

Curated picker for 26 CLI utilities defined in the canonical PROXMENUX_UTILS list. Offers custom selection, install-all, six predefined groups and a verify-installations check. Uses the shared ensure_repositories() + install_single_package() pair so repo configuration and per-package feedback stay consistent across the project.

What this does

Installs CLI tools from a curated list of 26 packages. Every installation goes through the same canonical flow: ensure_repositories sets up Proxmox + Debian repos for the running PVE major version, then install_single_package runs the install and verifies the resulting command is in PATH.

Opening the installer

From the Utilities menu, choose System Utilities Installer. The main menu offers nine options:

System Utilities Installer menu with custom selection, ALL, predefined groups and verify

The 9 menu actions

OptionBehaviour
1. Custom selectionDialog checklist of all 26 packages. Use SPACE to toggle, ENTER to confirm; only the selected ones are installed.
2. Install ALL utilitiesOne-shot install of every package in PROXMENUX_UTILS. Use after a fresh Proxmox install.
3. Basicgrc, htop, tree, curl, wget
4. Developmentgit, vim, nano
5. Compressionzip, unzip, rsync
6. Terminal multiplexersscreen, tmux
7. Analysisjq, ncdu, iotop
8. Networkiperf3, nethogs, nmap, tcpdump, lsof
9. Verify installationsWalks every entry in PROXMENUX_UTILS, checks if the verify command is in PATH, prints an Available / Missing summary.

The 26 packages

Defined in the shared scripts/global/utils-install-functions.sh as PROXMENUX_UTILS (format: package:verify_command:description). Other ProxMenux scripts (e.g. the network monitoring launchers for iftop / iptraf-ng / iperf3) reuse entries from this list so package + verify command stay in sync.

PackageVerify commandDescription
axelaxelDownload accelerator
aria2aria2cMulti-source downloader
btopbtopModern resource monitor
cabextractcabextractExtract CAB files
chntpwchntpwEdit Windows registry / passwords
dos2unixdos2unixConvert DOS / Unix text files
genisoimagegenisoimageCreate ISO images
grcgrcGeneric log colorizer
htophtopInteractive process viewer
iftopiftopReal-time network usage
intel-gpu-toolsintel_gpu_topIntel GPU tools
iotopiotopMonitor disk I/O usage
iperf3iperf3Network bandwidth testing
ipsetipsetManage IP sets
iptraf-ngiptraf-ngNetwork monitoring tool
libguestfs-toolsvirt-filesystemsVM disk utilities
msr-toolsrdmsrAccess CPU MSRs
net-toolsnetstatLegacy networking tools
plocatelocateLocate files quickly
s-tuis-tuiStress-Terminal UI
sshpasssshpassNon-interactive SSH login
tmuxtmuxTerminal multiplexer
unzipunzipExtract ZIP files
wimtoolswimlib-imagexManage WIM images
zipzipCreate ZIP files
libguestfs-toolsvirt-filesystemsVM disk utilities

How a single package install works

  1. ensure_repositories detects PVE 8 or 9, writes Proxmox no-subscription + Debian sources files if missing, runs apt-get update.
  2. install_single_package "pkg" "verify_cmd" "description" runs apt-get install -y "$pkg" with feedback (msg_info / msg_ok / msg_error).
  3. After install, the verify command is checked with command -v "$verify_cmd". Three outcomes:
    • 0 (success): command available, package counted as Successful.
    • 1 (failed): apt failed, counted as Failed.
    • 2 (warning): apt succeeded but command not yet in PATH (hash refresh pending) — counted as With warnings.
  4. At the end of a group / custom install, a summary dialog shows Successful / With warnings / Failed counts.

Verify installations

Option 9 is read-only: it walks PROXMENUX_UTILS and runs command -v for each verify command. Output looks like this:

Total: 26
Available: 18
Missing: 8

✓ axel - Download accelerator
✓ aria2c - Multi-source downloader
✓ btop - Modern resource monitor
✗ cabextract - Extract CAB files
✓ dos2unix - Convert DOS / Unix text files
✗ genisoimage - Create ISO images
✓ grc - Generic log colorizer
...

Useful before running scripts that depend on these tools (e.g. uup_dump_iso_creator.sh needs aria2c + cabextract + wimlib-imagex). If anything is missing, run the matching group install or pick the missing packages via custom selection.

Troubleshooting

"Failed to configure repositories. Installation aborted."

The host can't reach the Proxmox or Debian repos, or doesn't have the expected base config. From a console: cat /etc/apt/sources.list /etc/apt/sources.list.d/*.sources and apt-get update manually to see the actual error.

A package is reported "With warnings" but the command works after I close the menu

Expected. After apt-get install, the new binary is on disk but the current shell's PATH cache (hash -t) doesn't know yet. ProxMenux runs hash -r after each install, but in some shells the refresh only takes effect on the next prompt. Open a new shell and the command will work.

An apt install hangs

Most likely a debconf prompt is blocked behind the silenced output. The script wraps all apt calls with DEBIAN_FRONTEND=noninteractive, which usually suppresses prompts, but a few packages still require user input. Cancel with Ctrl+C, run apt-get install -y <pkg> manually from a shell to see the prompt and decide.

Files involved

scripts/utilities/system_utils.sh                    # this script
scripts/global/utils-install-functions.sh            # PROXMENUX_UTILS, ensure_repositories,
                                                     # install_single_package
/etc/apt/sources.list                                # may be touched by ensure_repositories
/etc/apt/sources.list.d/proxmox.sources              # created if missing (PVE 9)
/etc/apt/sources.list.d/debian.sources               # created if missing (PVE 9)
/etc/apt/sources.list.d/pve-no-subscription.list     # created if missing (PVE 8)

Related