Skip to content
Boomspot
  • Home
Loading...
Boomspot

Daily tech news, software development coverage, Apple reporting, and the gear behind modern music making.

TwitterLinkedIn

Browse

  • Categories
  • Tags
  • Authors

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  • Unsubscribe

© 2026 Boomspot. All rights reserved.

Built by Boomspot
Updated hourly

AI Content Disclosure: Articles on Boomspot are researched, written, and edited with the assistance of advanced AI systems. We combine software-assisted research with editorial oversight to deliver useful, accurate, and practical technical and music production content. Learn more about our editorial approach.

  1. Home
  2. Linux
  3. Audit Ubuntu Cloud Images for Missing Packages
linux6 min read

Audit Ubuntu Cloud Images for Missing Packages

curl and xxd both vanished from Ubuntu's minimal cloud images. Here's how to check what's missing on yours, and pin packages before it happens again.

S

Staff

September 23, 2026

Reviewed byDorian

Audit Ubuntu Cloud Images for Missing Packages

Twice in the last few months, a tool sysadmins assumed would always be there vanished from Ubuntu's minimal cloud images. First curl disappeared in August. Then xxd, the hex-viewer CLI, went missing from Ubuntu 26.04 LTS's minimal cloud images. Both times, the cause was the same: Canonical dropped its pollinate tool, which generated boot-time randomness, and that single change rippled through the dependency chain, taking other packages with it.

Canonical restored both curl and xxd to the 26.04 minimal images, saying it didn't want to "regress people that got used to rely on it being present." But xxd's reprieve is temporary. Canonical has already confirmed it's intentionally removing xxd from the 26.10 minimal images, even though the package stays available in the archive via apt.

If you build or maintain server images, containers, or VM templates, this is your problem now, not a curiosity. Headless systems don't show you a missing icon or a broken menu item. You find out a tool is gone when a script fails at 3 a.m. Here's how to check what you're actually running, and how to stop assuming.

Step 1: Check whether specific packages are installed right now

Before you can fix anything, find out what's actually on your image. Don't guess based on what used to ship by default. Verify it directly on the running system.

Run this sequence on your current minimal cloud image or container:

  1. Check if the binary exists on the PATH: which curl xxd — if either returns nothing, the binary isn't there.
  2. Confirm package installation status with dpkg: dpkg -s curl xxd 2>&1 | grep -E "Package|not installed" — this tells you definitively whether apt's package database considers it installed.
  3. Cross-check with apt's own listing: apt list --installed 2>/dev/null | grep -E "curl|xxd" — useful because dpkg and apt occasionally disagree during partial installs.
  4. For a broader sweep, script it against a list of tools you rely on: for pkg in curl xxd wget vim-tiny netcat-openbsd; do dpkg -s "$pkg" >/dev/null 2>&1 && echo "$pkg: present" || echo "$pkg: MISSING"; done

Run this against every image variant you deploy: the base cloud image, your Dockerfile's final stage, and any golden VM template built with Packer. A tool present in one might be absent in another, especially if they were built from different base image snapshots.

Step 2: Understand why these removals happen silently

The curl and xxd disappearances weren't deliberate trims of "nice to have" tools. They were side effects. Canonical removed pollinate, a boot-time entropy helper, and packages that depended on it lost their reason to be pulled in by the dependency resolver. This pairs well with perf script's python overhaul: what changes for you explained.

This matters because the next silent removal probably won't be announced as "we're removing curl." It'll be an unrelated changelog entry about some low-level dependency, and your monitoring tool, backup script, or CI pipeline will just start failing without a clear signal why. Minimal cloud images are built to be minimal by design, so Canonical has less incentive to preserve convenience tools that aren't strictly required for boot.

There's also a distinction worth understanding: a package missing from the image isn't the same as a package missing from the archive. xxd was never on the initial 26.04 minimal image, but it was still installable via apt install xxd the whole time. That's a very different failure mode from a package being deprecated or dropped from Ubuntu's repositories entirely. One is an image-composition decision; the other is an availability problem. Your audit needs to check both: is it installed now, and if not, is it still fetchable from your configured apt sources?

Step 3: Pin required packages explicitly instead of relying on image defaults

Once you know what's missing, or what might go missing next, stop trusting the base image's package set. Declare your dependencies explicitly in whatever tool builds your image.

For a Dockerfile, add an explicit install layer rather than assuming the base image carries what you need:

FROM ubuntu:26.04
RUN apt-get update && apt-get install -y --no-install-recommends \
 curl \
 xxd \
 ca-certificates \
 netcat-openbsd \
 && rm -rf /var/lib/apt/lists/*

For cloud-init, use the packages module in your user-data so the instance installs your required tools on first boot regardless of what the image shipped with: We cover related ground in our guide to avx-512 xor_gen: check raid5/6 support in linux 7.4.

#cloud-config
package_update: true
packages:
 - curl
 - xxd
 - vim-tiny
 - netcat-openbsd

For Packer, add a shell provisioner step in your build template that runs before you bake the image, so the tools are already present in the artifact rather than installed at runtime:

provisioner "shell" {
 inline = [
 "sudo apt-get update",
 "sudo apt-get install -y curl xxd ca-certificates netcat-openbsd"
 ]
}

The principle is the same across all three: treat "assumed present" tools as explicit dependencies in your build pipeline, not defaults inherited from the base image. If Canonical prunes another dependency chain next release, your build still installs what you need because you're not relying on it being there by accident.

Step 4: Recover a package that turns out to be missing

If your audit from Step 1 turns up a gap on a live system, the fix is usually straightforward, assuming you have apt access and outbound connectivity to Ubuntu's archive.

Run sudo apt-get update first to refresh the package index, then sudo apt-get install -y xxd (substitute the package name you're missing). Once it completes, verify the fix worked by rerunning the checks from Step 1: which xxd should return a path, and dpkg -s xxd should report "Status: install ok installed."

Also read: wine vs wine-staging: which one should gamers use?

One caveat worth flagging for locked-down environments: these minimal cloud images are frequently deployed where apt access is restricted for security reasons. If you can't SSH in and run apt install on demand, live recovery isn't an option, which makes the Step 3 pinning strategy non-negotiable rather than a nice-to-have.

If apt reports the package can't be found at all, check your sources list with apt-cache policy xxd to confirm which repositories are configured and whether the package still exists in Ubuntu's archive for your release. That distinguishes a local configuration problem from an actual archive-level removal, which is rarer but has happened for other packages during major Ubuntu transitions.

What to expect next

Run the Step 1 audit against your fleet's images now, not after something breaks. Canonical has already signaled that xxd's removal from 26.10 minimal images is intentional, so treat the 26.04 restoration as a temporary window, not a guarantee. Bake your dependency list into your Dockerfile, cloud-init config, or Packer template once, and future dependency-chain prunes become a non-event instead of an incident.

Tags

Software DevelopmentCoding Best PracticesDeveloper ToolsCloud ComputingOpen-sourceSystem Administration

Keep reading

Unlocking ChatGPT Developer Mode: Full MCP Client Access
Coding•4 min read

Unlocking ChatGPT Developer Mode: Full MCP Client Access

Unlock the power of ChatGPT Developer Mode with full MCP client access. Discover how to enhance your coding projects and streamline development.

Sep 11, 2025

Mastering MCP Elicitation for Enhanced AI Interactions
Coding•3 min read

Mastering MCP Elicitation for Enhanced AI Interactions

Discover the power of MCP elicitation in creating seamless AI interactions, from streamlining development to improving user satisfaction.

Sep 10, 2025

Inclusive Personas and User Research in Software Development
Coding•3 min read

Inclusive Personas and User Research in Software Development

Explore how inclusive personas and user research enhance software development. Learn strategies to create accessible and diverse products.

Sep 28, 2025

More stories for your next project

Get tech, coding, and music production updates in your inbox.

Unsubscribe anytime.

Browse by Category

Technology648Coding156Linux35SEO27Music Production19Studio Gear12Apple Rumors11

Popular Posts

What Is Amazon's Soft Reserve Price? Explained

What Is Amazon's Soft Reserve Price? Explained

6 min read
OLED vs QLED vs Mini-LED: Which TV Is Safest From Burn-In?

OLED vs QLED vs Mini-LED: Which TV Is Safest From Burn-In?

5 min read
Local SEO Ranking Signals: What to Fix First in 2026

Local SEO Ranking Signals: What to Fix First in 2026

6 min read
Shotcut vs Kdenlive: Best Free Linux Video Editor?

Shotcut vs Kdenlive: Best Free Linux Video Editor?

6 min read
Are Cracked VST Plugins Safe? A Producer's Reality Check

Are Cracked VST Plugins Safe? A Producer's Reality Check

6 min read

Recent Posts

AI Search Data Sources: What Matters By Business Type

AI Search Data Sources: What Matters By Business Type

Sep 23, 2026•8 min
How to Calibrate Confidence Thresholds in AI Agents

How to Calibrate Confidence Thresholds in AI Agents

Sep 23, 2026•7 min
Analog vs Digital Budget Polysynths: A DAW Ear Test

Analog vs Digital Budget Polysynths: A DAW Ear Test

Sep 23, 2026•7 min
Sidechain Noise Gate Settings for Guitar: Step-by-Step

Sidechain Noise Gate Settings for Guitar: Step-by-Step

Sep 21, 2026•6 min
vCISO vs Security Engineer: Which First Hire Wins?

vCISO vs Security Engineer: Which First Hire Wins?

Sep 21, 2026•6 min