punix uninstall¶
Remove a module from the active per-user profile.
What it does¶
- Reads the active generation's
installed_moduleslist. - Writes a new generation whose symlink farm omits every binary contributed by
MODULE. - Atomically flips
<profile-root>to point at the new generation.
The prior generation stays on disk under <parent>/profiles/gen-NNN/ so punix profile switch N rolls back instantly.
The module's content-addressed store path is not touched — punix store gc reclaims it later if no live generation pins it. Uninstall is a "delist", not a "delete."
Example¶
$ punix install just
installed just → 1 binary in ~/.punix/current/bin
$ punix install atuin
installed atuin → 2 binaries in ~/.punix/current/bin
atuin
just
$ punix uninstall just
uninstalled just → dropped 1 symlink; profile now at gen-003
$ ls ~/.punix/current/bin/
atuin # just is gone; atuin's symlink still active
$ punix profile switch 2
switched to gen-002 # just is back
Options¶
--profile-root PATH— profile root (default~/.punix/current).
Errors¶
| Symptom | Cause |
|---|---|
error: no active profile at <path> (nothing installed) (exit 2) |
~/.punix/current doesn't exist yet — install at least one module first. |
error: 'X' is not installed in the active profile. Installed: … (exit 2) |
The named module isn't in the current generation's installed_modules. The error message lists what IS installed. |
See also¶
punix install— adds modules to the active profile.punix profile— list / switch / diff generations.- Generations and rollback — the shared atomic-flip primitive that backs both service-stack rollback and profile rollback.