一键导入
debian-upgrade-release
Update Packer templates for Debian minor release changes (e.g., 13.4 → 13.5)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Update Packer templates for Debian minor release changes (e.g., 13.4 → 13.5)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Update package versions in templates for Alpine Linux
Update Packer templates for FreeBSD release changes (BETA, RC, RELEASE)
Create Packer templates for a new OpenBSD version based on an existing version
Update package versions in templates for OpenBSD
Update package versions in templates for FreeBSD
| name | debian-upgrade-release |
| description | Update Packer templates for Debian minor release changes (e.g., 13.4 → 13.5) |
This skill automates the process of updating Packer templates when Debian releases a new minor version (e.g., Debian 13.4 → 13.5).
Important: This skill is for minor version upgrades only within the same major Debian release. For creating templates for a new major release (e.g., Debian 14.0), refer to a separate skill designed for that purpose.
When instructed to upgrade Debian templates to a new minor release, follow these steps:
Ask the user for:
13.4): The existing minor release13.5): The target minor release to
upgrade to13.5.20260415): The version number for
the Vagrant box, typically formatted as {major}.{minor}.{date}Based on the major version number, determine the Debian codename using the official Debian releases page at https://www.debian.org/releases/:
| Major Version | Codename | Status |
|---|---|---|
| 13 | trixie | Stable |
| 12 | bookworm | Oldstable |
| 11 | bullseye | LTS |
| 10 | buster | LTS |
| 9 | stretch | EOL |
| 8 | jessie | EOL |
| 7 | wheezy | EOL |
For example, Debian 13.5 uses the codename trixie.
By default, support amd64 and arm64 architectures. Ask the user if
additional architectures need to be supported (e.g., i386).
Verify that the source directory debian/debian-{MAJOR}/ exists before
proceeding (e.g., debian/debian-13/).
For each .pkr.hcl file in the Debian version directory, update the
following variables:
Variable: box_version
"13.4.20260314" → "13.5.20260415"Variable: os_version
"13.4" → "13.5"For each architecture-specific .pkrvars.hcl file, update the following:
Variable: iso_name
debian-{major}.{minor}.{revision}-{arch}-{type}.iso0 for minor releasesdebian-13.4.0-amd64-netinst.iso → debian-13.5.0-amd64-netinst.isoVariable: iso_path
{major}.{minor}.{revision}/{arch}/iso-cd13.4.0/amd64/iso-cd → 13.5.0/amd64/iso-cdVariable: iso_checksum
debian-cd path
file:https://cdimage.debian.org/debian-cd/13.5.0/amd64/iso-cd/SHA256SUMScdimage/archive path
file:https://cdimage.debian.org/cdimage/archive/12.12.0/amd64/iso-cd/SHA256SUMSNote: Determine whether to use debian-cd or cdimage/archive
based on whether the release is still current. For minor upgrades within
the same major version, typically the same URL pattern as the previous
version should be used.
Update the README.md file in the Debian version directory:
Debian 13.4 → Debian 13.5v13.4.20260314 → v13.5.20260415If instructed, update package versions using the Debian packages repository:
For each architecture (amd64, arm64, etc.):
https://deb.debian.org/debian/dists/{codename}/main/binary-{arch}/Packages.xzcurl -sL https://deb.debian.org/debian/dists/trixie/main/binary-amd64/Packages.xz | \
xz -d > /tmp/debian-packages-trixie-amd64.txt
Identify packages with hardcoded versions in .pkr.hcl files:
environment_vars with version strings like
package=1.2.3Update package version strings using replace_in_file:
environment_varsIf updating Docker-related packages (docker.io, docker-compose), use a different repository depending on the package source:
For docker.io (from Debian repository):
curl -fsSL https://deb.debian.org/debian/dists/{codename}/main/binary-amd64/Packages.xz | \
xz -d > /tmp/debian-packages-{codename}-amd64.txt
grep "^Package: docker.io" /tmp/debian-packages-{codename}-amd64.txt -A 2 | \
grep "^Version:" | tail -1
DOCKER_IO environment variable in the docker template
.pkr.hcl files with the new versionFor docker-ce (from Docker's official repository):
curl -fsSL https://download.docker.com/linux/debian/dists/{codename}/stable/binary-amd64/Packages.gz | \
gunzip > /tmp/docker-packages-{codename}-amd64.txt
grep "^Package: docker-ce$" /tmp/docker-packages-{codename}-amd64.txt -A 2 | \
grep "^Version:" | tail -1
DOCKER_CE environment variable if presentFor docker-compose (Debian repository):
grep "^Package: docker-compose" /tmp/debian-packages-{codename}-amd64.txt -A 2 | \
grep "^Version:" | tail -1
DOCKER_COMPOSE environment variable in docker template filesUpdate the environment variables in the provisioner "shell" block of
debian-{major}-docker.pkr.hcl:
"DOCKER_IO=docker.io=26.1.5+dfsg1-9+b13"replace_in_file to update these values in the appropriate
templatesAdd an entry to the root CHANGELOG.md file under the [Unreleased]
section:
* [Debian {MAJOR}](debian/debian-{MAJOR}/README.md): Upgrade templates to Debian {NEW_VERSION}.* [Debian 13](debian/debian-13/README.md): Upgrade templates to Debian 13.5.
After completing all steps:
.pkr.hcl files have been updated with the new
versionREADME.md have been updated.pkrvars.hcl files have been
updatedCHANGELOG.md has been updated with the upgrade entrypacker validate on the updated templates to ensure
they are syntactically validWhen a user says: "Update Debian 13 templates from 13.4 to 13.5 with box version 13.5.20260415"
The skill will:
Confirm the details:
13.413.513.5.20260415trixie (auto-determined from major version 13)amd64, arm64 (default, confirm with user)Update all .pkr.hcl files in debian/debian-13/:
debian-13-minimal.pkr.hcldebian-13-dwm.pkr.hcldebian-13-desktop.pkr.hcldebian-13-docker.pkr.hclUpdate architecture-specific variable files:
vars-debian-13-amd64-netinst.pkrvars.hcl:
iso_name = "debian-13.5.0-amd64-netinst.iso"iso_path = "13.5.0/amd64/iso-cd"iso_checksum = "file:https://cdimage.debian.org/debian-cd/13.5.0/amd64/iso-cd/SHA256SUMS"vars-debian-13-arm64-mini.pkrvars.hcl:
Update README.md with new version references and box version examples
Update CHANGELOG.md with the upgrade entry
Confirm completion
0 for minor releases (e.g., 13.5.0)Packages.xz from Debian repositories,
not packages.debian.orgWhen fetching package information from remote repositories (Debian, Docker, etc.), maintain a minimum 60-second interval between successive HTTP requests to the same remote host to avoid overloading the server.
This is particularly important when:
Implementation Guidelines:
deb.debian.org), wait
at least 60 seconds before making the next request to that host# Download first package index
curl -fsSL https://deb.debian.org/debian/dists/trixie/main/binary-amd64/Packages.xz | xz -d > /tmp/packages-amd64.txt
# Wait 60 seconds before next request to the same host
sleep 60
# Download second package index
curl -fsSL https://deb.debian.org/debian/dists/trixie/main/binary-arm64/Packages.xz | xz -d > /tmp/packages-arm64.txt
Rationale: Remote package repositories have finite bandwidth and request limits to serve the global community. Respectful spacing of requests helps maintain service availability for all users.