{ "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." } ] } }