Linux

Where Are TeX Live Packages Stored?

TeX Live keeps distribution packages in the texmf-dist tree and local additions in separate texmf trees. The exact root depends on whether you used the upstream installer or a Linux distro package.

Last updated

On Linux with the upstream installer the default package root is /usr/local/texlive/<year>/texmf-dist. That folder is TEXMFDIST and it holds LaTeX packages, fonts, scripts and docs.

Personal and site wide additions live outside that tree so they survive updates. Use kpsewhich and tlmgr conf to confirm which trees are active on your machine.

Where TeX Live stores this, by platform

Linux
/usr/local/texlive/<year>/texmf-dist

Default TEXMFDIST for the upstream installer. <year> is the release year such as 2026. Confirm with tlmgr conf. Do not edit files here by hand because updates overwrite them.

Linux
/home/<user>/texmf

Default TEXMFHOME personal tree. <user> is the Linux username. Place custom classes in tex/latex below it using TDS layout. This tree is yours and it stays across releases.

Linux
/usr/local/texlive/texmf-local

Default TEXMFLOCAL for site wide local files. Shared by all releases and all users on the machine. Run mktexlsr after adding files so the filename database picks them up.

Linux
/usr/share/texlive/texmf-dist

Root used when TeX Live is installed through apt on Debian and Ubuntu. Managed by apt rather than tlmgr. Run kpsewhich var-value TEXMFDIST if both install types exist to see which one is active.

Frequently asked questions

How do I find the active texmf paths?

Run kpsewhich var-value TEXMFHOME and kpsewhich var-value TEXMFDIST, then run tlmgr conf. Those commands print the resolved roots for your user and install.

Why is tlmgr missing or frozen on Ubuntu?

Distro packages split TeX Live into apt packages and disable_remote tlmgr updates to keep versions stable. Install missing bundles with apt or remove the distro copy and install upstream TeX Live if you need current tlmgr packages.

Notice an outdated path? Let us know.