TeX Live Manager¶
tlmgr is TeX Live’s native package manager (https://www.tug.org/texlive/).
Parsing notes, verified against the tlmgr.pl source (TeX-Live/texlive-infra) and real captures:
Package operations only work on a vanilla upstream TeX Live install. Distro-packaged TeX Live (Debian, Fedora) is dpkg/rpm-owned and disables tlmgr’s mutating commands.
info --data name,localrevprints headerless CSV, one “name,revision” record per line; both fields are bare and comma-free. The--dataoption appeared in TeX Live 2018, hence the version floor.The outdated listing runs in
--machine-readablemode: tab-separated records between an “end-of-header” and an “end-of-updates” line, with a one-char status in field 2 (“u” = updatable). Diagnostics move to stderr in that mode.TeX Live versions are years. The version regex deliberately matches only the 4 digits following “version”, so pre-2017 layouts (“TeX Live 2016 version 20160523”) resolve to their year and fail the >=2018 floor.
tlmgr never prompts on per-package operations and never self-escalates: on the default user-owned /usr/local/texlive install no root is needed, while root-owned installs refuse mutations. Mutating operations are marked privileged but escalation stays opt-in (default_sudo is left off): pass
--sudoto mpm for a root-owned TeX tree.Home page: https://www.tug.org/texlive/
Version requirement:
>=2018
Platforms¶
🅱️ BSD
🐧 Linux
🍎 macOS
⨂ Unix
🪟 Windows
Operations¶
Operation |
Supported |
Notes |
|---|---|---|
|
✓ |
|
|
✓ |
|
|
✓ |
exact and extended search backfilled by |
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
|
|
✓ |
Ecosystem¶
Accepted purl types:
pkg:tlmgr
Usage¶
$ mpm --tlmgr installed
$ mpm --tlmgr search "query"
$ mpm --tlmgr upgrade --all
$ mpm install pkg:tlmgr/hello
$ mpm --dry-run --tlmgr upgrade --all
Every example above accepts --dry-run, which simulates the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.
Deselect the manager for a single run with --no-tlmgr, disable it from your configuration, or tune its invocation attributes with per-manager overrides.
Command line¶
CLI names, in lookup order:
tlmgr
The version is probed by running:
$ tlmgr --version
tlmgr revision 66798 (2023-04-08 02:15:21 +0200)
tlmgr using installation: /usr/local/texlive/2023
TeX Live (https://tug.org/texlive) version 2023
and extracted with:
r"TeX Live.*version (?P<version>\d{4})"
Privilege escalation¶
mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.
Root is required for its cleanup, install, remove, sync, upgrade, upgrade_all operations.
See privilege escalation for the full policy.
Cooldown¶
State of TeX Live Manager’s release-age gating, from the cooldown support table:
Status: ❌ None (TeX Live, curated)
With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.
Reference traces¶
Raw native outputs captured in the bundled definition: the reference mpm’s parsers were written against. If you know TeX Live Manager well and a transcript below looks wrong, or a newer release changed its output format, report it.
$ tlmgr info --only-installed --data name,localrev
tlmgr: package repository https://mirror.ctan.org (verified)
sansmath,15878
titlesec,68677
$ tlmgr --machine-readable update --list --all
location-url https://mirror.ctan.org
total-bytes 323544
end-of-header
adjmulticol u 62935 63073 316000 - - - - -
end-of-updates
running mktexlsr ...