texlive batch install 
The TeX Live installer does not allow for interaction-less installation.
This is the reason why I created this project using pexpect to talk to the install-tl
script.
Usage:
usage: install_texlive [-h] [-v] [-t VERSION] [--install-tl INSTALL_TL] [-k]
[-p PREFIX] [-c COLLECTIONS]
[-s {f,g,d,i,k,c,e,h,b,j,a}] [-u] [-i INSTALL]
[--source] [--docs]
optional arguments:
-h, --help show this help message and exit
-v, --verbose Create more verbose output
-t VERSION, --texlive-version VERSION
TeX Live version to install
--install-tl INSTALL_TL
Path to the install-tl script. If not given, TeX Live
will be downloaded.
-k, --keep-config If an existing installation is found, keep its config
-p PREFIX, --prefix PREFIX
Installation prefix, equivalent to setting
TEXLIVE_INSTALL_PREFIX
-c COLLECTIONS, --collections COLLECTIONS
The TeX Live package collections to install. E.g. -a
to deselect all and only install the absolute basic
TeX packages
-s {f,g,d,i,k,c,e,h,b,j,a}, --scheme {f,g,d,i,k,c,e,h,b,j,a}
The TeX Live scheme to install. Default is "full"
-u, --update Update TeX Live after installation is finished
-i INSTALL, --install INSTALL
Additional packages to install after the main
Installation has finished
--source Install the source tree
--docs Install the docs tree
For a minimal installation (e.g. for CI jobs building documents), it is recommended to
only install the bare minimum selection of package collections: -c "-a" and then
have a file tex-packages.txt with the actually needed packages to compile the document:
$ python -m install_texlive -p .texlive -t 2022 --collections='-a' --package-file tex-packages.txt --update
To find out which package provides which style file (e.g. to find out which CTAN package provides scrartcl.cls), this command is helpful:
$ tlmgr search --global --file '/scrartcl.cls'
koma-script:
texmf-dist/tex/latex/koma-script/scrartcl.cls
Metadata
Release files for install-texlive 0.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| install_texlive-0.3.8.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| install_texlive-0.3.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.9 kB
Release files / install_texlive-0.3.8.tar.gz
| Download URL | install_texlive-0.3.8.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9d9a0f224322b110b5d98800b6d1598fe677c1d1dc77b8ffed0b6b8d8990f24
|
|
BLAKE2b-256 checksum How to use checksums |
cb51e6d8fd57e9a4d544dca8a12b916a824ac73a1a9ad74f969841de309871be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / install_texlive-0.3.8-py3-none-any.whl
| Download URL | install_texlive-0.3.8-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35a3b0a3e9187a1331edd472ce91bf8d104e3601bd8f827a24d05e6a87c0de19
|
|
BLAKE2b-256 checksum How to use checksums |
da2072693f87eb84b2b419d4d58d19b577655af9bb639577da459d389f7b6eed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency log