os-alpine
Operate Alpine hosts and images with musl ABI awareness, apk repository discipline, OpenRC services, and persistent configuration.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-13
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- os-alpine
- rules
- [ "content(alpine)", "content(musl)" ]
- title
- Alpine Linux Operations
- domains
- devops
- license
- Apache-2.0
- description
- Operate Alpine hosts and images with musl ABI awareness, apk repository discipline, OpenRC services, and persistent configuration.
- compatibility
- An Alpine Linux target with its installed apk/BusyBox tools; OpenRC applies to booted systems that use it.
02 资源文件 52
- 参考文档bmad-skill-manifest.yaml12 B
- 参考文档data/business-goals-template.md3.8 KB
- 参考文档data/key-insights-structure.md5.5 KB
- 参考文档data/mermaid-formatting-guide.md7.9 KB
- 参考文档data/quality-checklist.md6.0 KB
- 参考文档steps-c/step-00a-documentation-synthesis.md5.7 KB
- 参考文档steps-c/step-00b-business-goals-extract.md5.7 KB
- 参考文档steps-c/step-00c-target-groups-extract.md6.0 KB
- 参考文档steps-c/step-00d-driving-forces-extract.md6.0 KB
- 参考文档steps-c/step-00e-prioritization-extract.md5.9 KB
- 参考文档steps-c/step-00f-gap-analysis.md5.9 KB
- 参考文档steps-c/step-01-overview.md7.2 KB
- 参考文档steps-c/step-02-business-goals.md5.6 KB
- 参考文档steps-c/step-03-target-groups.md5.9 KB
- 参考文档steps-c/step-04-driving-forces.md6.1 KB
- 参考文档steps-c/step-05-prioritization.md6.1 KB
- 参考文档steps-c/step-06a-extract-features.md4.8 KB
- 参考文档steps-c/step-06b-confirm-assessment.md4.3 KB
- 参考文档steps-c/step-06c-make-assessment.md5.4 KB
- 参考文档steps-c/step-06d-generate-document.md5.2 KB
- 参考文档steps-c/step-06e-feature-wrap-up.md4.7 KB
- 参考文档steps-c/step-07a-generate-hub.md6.7 KB
- 参考文档steps-c/step-07b-generate-business-goals.md4.8 KB
- 参考文档steps-c/step-07c-generate-primary-persona.md5.0 KB
- 参考文档steps-c/step-07d-generate-secondary-persona.md4.9 KB
- 参考文档steps-c/step-07e-generate-tertiary-persona.md4.8 KB
- 参考文档steps-c/step-07f-generate-key-insights.md5.1 KB
- 参考文档steps-c/step-07g-quality-check.md5.6 KB
- 参考文档steps-c/step-08a-mermaid-init-structure.md4.4 KB
- 参考文档steps-c/step-08b-mermaid-business-goals.md4.6 KB
- 参考文档steps-c/step-08c-mermaid-platform.md4.5 KB
- 参考文档steps-c/step-08d-mermaid-target-groups.md4.8 KB
- 参考文档steps-c/step-08e-mermaid-driving-forces.md5.4 KB
- 参考文档steps-c/step-08f-mermaid-connections.md3.9 KB
- 参考文档steps-c/step-08g-mermaid-styling.md5.0 KB
- 参考文档steps-c/step-08h-mermaid-quality.md5.4 KB
- 参考文档steps-c/step-09a-finalize-hub.md4.7 KB
- 参考文档steps-c/step-09b-add-cross-references.md3.5 KB
- 参考文档steps-c/step-09c-quality-check.md3.6 KB
- 参考文档steps-c/step-09d-create-handover-package.md4.3 KB
- 参考文档steps-c/step-09e-update-design-log.md5.0 KB
- 参考文档steps-c/step-09f-provide-activation.md4.6 KB
- 参考文档steps-v/step-01-target-group-coverage.md4.4 KB
- 参考文档steps-v/step-02-prioritization-integrity.md4.3 KB
- 参考文档steps-v/step-03-persona-consistency.md4.7 KB
- 参考文档steps-v/step-04-feature-impact-alignment.md4.6 KB
- 参考文档steps-v/step-05-cross-document-coherence.md5.5 KB
- 参考文档templates/feature-impact.template.md1019 B
- 参考文档templates/persona-document.template.md9.7 KB
- 参考文档templates/trigger-map.template.md4.0 KB
- 参考文档workflow-validate.md1.2 KB
- 参考文档workflow.md2.8 KB
03 SKILL.md 正文
Overview
Use for Alpine Linux systems, container images, and Alpine-related musl compatibility issues. Read the Linux foundation for target identification and shared diagnostic contracts. Musl is a C library, not a distribution; a musl binary does not prove the target is Alpine.
Mental model
Alpine combines musl libc, BusyBox utilities, apk packages, and normally OpenRC on booted hosts. A small image trades GNU/glibc assumptions for different interfaces; making it behave like another distribution through compatibility patches is not automatically the simplest solution.
Release and current changes
- Verified 2026-10-12: Alpine 3.24 (3.24.2) is the current stable branch;
edgeis rolling development, and new stable branches are cut each May and November. Check the release table again before selecting a base image or upgrade path. - Support differs by repository:
mainis typically supported for two years, whilecommunityis supported until the next stable release. An otherwise supported branch can contain community packages that no longer receive that coverage. - Alpine 3.23 introduced apk-tools v3. Check
apk --versionand local help before relying on newer commands, configuration, or parsed output; apk tool version and repository/package format version are different facts. - Alpine 3.24 deprecates
qemu-binfmtin favor of user-mode QEMUbinfmt.dconfiguration and thebinfmtservice. For emulation failures, check installed registration and host ownership rather than starting the obsolete service. - Its setuptools 82 package removes
pkg_resources; a tool broken after upgrading may need a supported dependency/code update, not a system-wide Python downgrade.
ABI and tool compatibility
- Prefer musl-compatible artifacts or build against the actual target. A glibc-linked executable can report “not found” even when the file exists because its ELF interpreter is unavailable. Inspect architecture and ELF interpreter/dependencies with trusted inspection tools before diagnosing PATH.
gcompatimplements a subset of glibc-compatible APIs; it is not a replacement glibc installation or a guarantee that arbitrary vendor binaries work. If upstream supports only glibc, a supported glibc-based image may be the correct deployment choice. Don't invent loader symlinks or fetch unofficial libc packages to suppress an error.- BusyBox
shis normally ash. Check applet help; don't assume Bash syntax or GNU options forsed,date,find, orps. Add a declared tool dependency only when the operation requires it. - Check Python wheel/native-addon availability for musl and the target architecture. A smaller base image can trigger source builds and additional build dependencies; judge the complete deliverable, not only compressed base size.
apk and repository state
- Inspect
/etc/apk/repositories,/etc/apk/world, installed versions, and package policy. Keep repositories on the same stable branch;testingbelongs to edge. Don't combine stable and edge as a generic missing-package fallback. - World records requested package constraints, not just installed files. Resolve conflicts against those constraints; don't use force flags that discard requirements merely to make the solver succeed.
apk updaterefreshes indexes;apk upgradechanges installed packages. Review branch-upgrade instructions separately:--availablereconciles against available repository versions and can downgrade packages. It is not a harmless diagnostic flag.- Keep package signing enabled. Investigate keys, clock, index freshness, mirrors, and branch consistency on verification failure. Do not routinely use
--allow-untrustedor turn HTTPS verification off. - For images, declare runtime packages explicitly and isolate build dependencies in a stage or a named virtual dependency group. Removing a build group must leave required shared libraries available. Treat an image's mutable tag and immutable digest differently; rebuild deliberately for security updates.
- Preserve modified configuration and review
.apk-newfiles. A successful package transaction does not show that a daemon loaded the intended configuration.
Services and persistence
- On an OpenRC host, use
rc-service name status,rc-status, andrc-update showto inspect state. Starting a service now differs from adding it to a runlevel; inspect/etc/init.dand/etc/conf.dfor the actual service configuration. - OpenRC defaults to cgroup v2 in Alpine 3.19+; user services are available in 3.22+. Check the actual manager and cgroup setup rather than translating systemd commands mechanically. Ordinary Alpine containers often have no OpenRC boot lifecycle.
- Distinguish disk-backed installations from diskless/data modes. For diskless setups, inspect
lbuinclusion and persistence configuration; approved changes may needlbu commitand package-cache handling to survive reboot. This overlay is not automatically a backup of all application data. - Before a host release upgrade, review bootloader and filesystem notes and establish recovery access. GRUB updates can require installation to the actual boot device/EFI target; do not copy a generic device path into a command.
Example
Read Alpine package identity without refreshing indexes or changing packages:
set -eu
cat /etc/alpine-release
apk --version
apk --print-arch
apk info -v musl busybox apk-tools
apk policy musl
Policy reflects available local metadata; it is not evidence that repositories were refreshed or the package is the latest security revision.
Checklist
- [ ] Branch, repository support, architecture, libc, and apk version are identified.
- [ ] Binary and shell assumptions fit musl/BusyBox; compatibility failures stay visible.
- [ ] Package constraints, trust, runtime dependencies, and configuration are preserved.
- [ ] Init and persistence match the deployment mode; verification limits are stated.
References
04 同仓库更多 Skills
seo-content-refresh
Finds decaying pages, picks update, merge, redirect or remove, and briefs each refresh. Use to prioritize existing content and judge whether it helped.
marketing-review-program
Plans how to ask real customers for honest public reviews: site choice, invitation copy, incentive and disclosure rules. Use to start a review program.
geo-source-actions
Turns AI citation findings into ranked per-source actions for Reddit threads, listicles, review sites and videos. Records only. Use after a GEO audit.
commerce-ai-readiness
Audits product feeds, markup and live pages for AI shopping assistants, then lists exact fixes. Use to make a store catalog readable to AI shoppers.
tap-model-training
Train, evaluate and publish the octomind-embed model behind capability auto-activation. Use when capability triggers or skill semantic() phrases change.
tap-deps-authoring
Write dep scripts for the octomind-tap registry: header comments, platform.sh, mcp vs dep types, npx/uvx pattern. Use when editing deps/<org>/<tool>.sh.