| git.druid.rocks | index | druid520 | mp | docs/ | reference/ | commands/ | sysroot.btft |
docs/reference/commands/sysroot.btft
[table class="topnav"]
[tr]
[td class="logotab"]mp[e]
[td][see name="index"]index[e][e]
[td][see name="guide/index"]guide[e][e]
[td][see name="reference/index"]reference[e][e]
[e]
[e]
[h1]mp sysroot[e]
[h2]synopsis[e]
[code]
mp sysroot install <name> [pkg ...]
[e]
[h2]description[e]
folds a named sysroot's own installed packages onto the LIVE root, in place: every file its manifest(s) list is copied over atomically (per file, via mpx's own [code]merge[e] command), and its db/manifest/linkdeps entries are copied into the live root's own. given no package names, every package installed in the sysroot is merged; given some, just those (each must actually be installed in the sysroot, or this fails outright).
deliberately NOT a sync -- a live-root package the sysroot doesn't have is left completely alone. this overlays a built environment onto the running one; it never tries to make the two identical. [code]HOLD[e] on the live side is deliberately not consulted either: naming a sysroot here IS the explicit, one-time action HOLD exists to guard against happening by accident (a routine [code]mp update world[e] silently touching something pinned) -- not a fit for this command.
this is the other half of the same build-elsewhere-then-fold-once-known-good primitive [see name="reference/commands/reinstall"]mp reinstall --inplace[e] uses for a single package: a sysroot is just a fully independent [code]WD[e]/db/manifest/prefix, built up entirely separately (see [see name="reference/multi-repo"]reference/multi-repo[e] and [see name="reference/mp-conf-example"]mp.conf.example[e]'s own sysroot cross-compiling walkthrough), then folded over as one deliberate step. refuses outright if the named sysroot's [code]MP_PREFIX[e] is literally the same path as the live root's (merging a tree onto itself).
[h2]examples[e]
[code]
mp install --sysroot=arm64 figlet openssl # build up the sysroot first
mp sysroot install arm64 # then fold everything it has onto the live root
mp sysroot install arm64 figlet # or just one package from it
[e]
[h2]see also[e]
[see name="reference/commands/install"]install[e] [code]--sysroot=[e], [see name="reference/commands/reinstall"]reinstall[e] [code]--inplace[e], [see name="reference/mp-conf-example"]mp.conf.example[e]'s own cross-compiling/sysroot section.