{
"meta": {
"title": "System Utilities Installer | ProxMenux Documentation",
"description": "CLI utility installer for Proxmox VE, with 25 packages in the canonical list (htop, btop, iperf3, tmux, ...). Custom selection, install-all and predefined groups (basic, development, compression, multiplexers, analysis, network). Groups can include additional packages. Uses ensure_repositories + install_single_package.",
"ogTitle": "System Utilities Installer | ProxMenux Documentation",
"ogDescription": "Install curated CLI tools on Proxmox VE with one click or custom selection."
},
"header": {
"title": "System Utilities Installer",
"description": "Picker for 25 CLI utilities in the canonical PROXMENUX_UTILS list. Offers custom selection, install-all, six predefined groups and an installation check. Groups can include tools outside the canonical list. Uses shared ensure_repositories() + install_single_package() helpers for consistent repository handling and per-package feedback.",
"section": "Utilities"
},
"info": {
"title": "What this does",
"body": "Installs CLI tools from a list of 25 packages. Every installation uses the same flow: ensure_repositories checks that the host has a usable Proxmox repository for the running PVE major version, then install_single_package installs the package and checks that its command is in PATH."
},
"opening": {
"heading": "Opening the installer",
"intro": "From the Utilities menu, choose System Utilities Installer. The main menu offers nine options:",
"imageAlt": "System Utilities Installer menu with custom selection, ALL, predefined groups and verify"
},
"actions": {
"heading": "The 9 menu actions",
"headerOption": "Option",
"headerBehaviour": "Behaviour",
"rows": [
{
"option": "1. Custom selection",
"behaviourRich": "Checklist of all 25 packages. Use SPACE to toggle and ENTER to confirm; only the selected packages are installed."
},
{
"option": "2. Install ALL utilities",
"behaviourRich": "One-shot install of every package in PROXMENUX_UTILS. Use after a fresh Proxmox install."
},
{
"option": "3. Basic",
"behaviourRich": "grc, htop, tree, curl, wget"
},
{
"option": "4. Development",
"behaviourRich": "git, vim, nano"
},
{
"option": "5. Compression",
"behaviourRich": "zip, unzip, rsync"
},
{
"option": "6. Terminal multiplexers",
"behaviourRich": "screen, tmux"
},
{
"option": "7. Analysis",
"behaviourRich": "jq, ncdu, iotop"
},
{
"option": "8. Network",
"behaviourRich": "iperf3, nethogs, nmap, tcpdump, lsof"
},
{
"option": "9. Verify installations",
"behaviourRich": "Walks every entry in PROXMENUX_UTILS, checks if the verify command is in PATH, prints an Available / Missing summary."
}
]
},
"packages": {
"heading": "The 25 packages",
"intro": "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.",
"headerPackage": "Package",
"headerVerify": "Verify command",
"headerDescription": "Description",
"rows": [
{
"package": "axel",
"verify": "axel",
"description": "Download accelerator"
},
{
"package": "aria2",
"verify": "aria2c",
"description": "Multi-source downloader"
},
{
"package": "btop",
"verify": "btop",
"description": "Modern resource monitor"
},
{
"package": "cabextract",
"verify": "cabextract",
"description": "Extract CAB files"
},
{
"package": "chntpw",
"verify": "chntpw",
"description": "Edit Windows registry / passwords"
},
{
"package": "dos2unix",
"verify": "dos2unix",
"description": "Convert DOS / Unix text files"
},
{
"package": "genisoimage",
"verify": "genisoimage",
"description": "Create ISO images"
},
{
"package": "grc",
"verify": "grc",
"description": "Generic log colorizer"
},
{
"package": "htop",
"verify": "htop",
"description": "Interactive process viewer"
},
{
"package": "iftop",
"verify": "iftop",
"description": "Real-time network usage"
},
{
"package": "intel-gpu-tools",
"verify": "intel_gpu_top",
"description": "Intel GPU tools"
},
{
"package": "iotop",
"verify": "iotop",
"description": "Monitor disk I/O usage"
},
{
"package": "iperf3",
"verify": "iperf3",
"description": "Network bandwidth testing"
},
{
"package": "ipset",
"verify": "ipset",
"description": "Manage IP sets"
},
{
"package": "iptraf-ng",
"verify": "iptraf-ng",
"description": "Network monitoring tool"
},
{
"package": "libguestfs-tools",
"verify": "virt-filesystems",
"description": "VM disk utilities"
},
{
"package": "msr-tools",
"verify": "rdmsr",
"description": "Access CPU MSRs"
},
{
"package": "net-tools",
"verify": "netstat",
"description": "Legacy networking tools"
},
{
"package": "plocate",
"verify": "locate",
"description": "Locate files quickly"
},
{
"package": "s-tui",
"verify": "s-tui",
"description": "Stress-Terminal UI"
},
{
"package": "sshpass",
"verify": "sshpass",
"description": "Non-interactive SSH login"
},
{
"package": "tmux",
"verify": "tmux",
"description": "Terminal multiplexer"
},
{
"package": "unzip",
"verify": "unzip",
"description": "Extract ZIP files"
},
{
"package": "wimtools",
"verify": "wimlib-imagex",
"description": "Manage WIM images"
},
{
"package": "zip",
"verify": "zip",
"description": "Create ZIP files"
}
]
},
"howItWorks": {
"heading": "How a single package install works",
"items": [
"ensure_repositories detects PVE 8 or 9 and reads the repositories through the Proxmox API. A host with a usable Proxmox repository is left unchanged; a host with no active subscription and only the Enterprise repository is asked before switching to no-subscription, and apt-get update runs after an accepted switch.",
"install_single_package \"pkg\" \"verify_cmd\" \"description\" runs apt-get install -y \"$pkg\" with feedback (msg_info / msg_ok / msg_error)."
],
"verifyIntro": "After install, the verify command is checked with command -v \"$verify_cmd\". Three outcomes:",
"verifyOutcomes": [
"0 (success): command available, package counted as Successful.",
"1 (failed): apt failed, counted as Failed.",
"2 (warning): apt succeeded but the expected command was not found in PATH — counted as With warnings."
],
"summary": "At the end of a group / custom install, a summary dialog shows Successful / With warnings / Failed counts."
},
"verify": {
"heading": "Verify installations",
"intro": "Option 9 is read-only: it walks PROXMENUX_UTILS and runs command -v for each verify command. Output looks like this:",
"code": "Total: 25\nAvailable: 18\nMissing: 8\n\n✓ axel - Download accelerator\n✓ aria2c - Multi-source downloader\n✓ btop - Modern resource monitor\n✗ cabextract - Extract CAB files\n✓ dos2unix - Convert DOS / Unix text files\n✗ genisoimage - Create ISO images\n✓ grc - Generic log colorizer\n...",
"outro": "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."
},
"troubleshoot": {
"heading": "Troubleshooting",
"reposTitle": "\"Failed to configure repositories. Installation aborted.\"",
"reposBody": "The repository check did not pass: the switch to the no-subscription repository was declined, the subscription status could not be read, or a repository entry needs attention. The message printed above it states the cause. The repositories are listed in Node → Updates → Repositories, and apt-get update from a console shows the error apt reports.",
"warningsTitle": "A package is reported \"With warnings\" but the command works after I close the menu",
"warningsBody": "After apt-get install, the helper runs hash -r, waits briefly and checks the expected command with command -v. A warning means that check still failed; it does not identify the cause. Try a new shell, then check the package installation and PATH if the command is still missing.",
"hangsTitle": "An apt install hangs",
"hangsBody": "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": {
"heading": "Files involved",
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, install_single_package\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted"
},
"related": {
"heading": "Related",
"items": [
{
"href": "/docs/utils/system-update",
"label": "Proxmox System Update",
"tailRich": " — for the actual apt dist-upgrade on the host."
},
{
"href": "/docs/network/monitoring",
"label": "Live monitoring tools (Network)",
"tailRich": " — uses iftop / iptraf-ng / iperf3 from this same list."
},
{
"href": "/docs/utils",
"label": "Utilities overview",
"tailRich": " — back to the section overview."
}
]
}
}