1TLMGR(1) User Contributed Perl Documentation TLMGR(1)
2
3
4
6 tlmgr - the native TeX Live Manager
7
9 tlmgr [option...] action [option...] [operand...]
10
12 tlmgr manages an existing TeX Live installation, both packages and
13 configuration options. For information on initially downloading and
14 installing TeX Live, see <https://tug.org/texlive/acquire.html>.
15
16 The most up-to-date version of this documentation (updated nightly from
17 the development sources) is available at
18 <https://tug.org/texlive/tlmgr.html>, along with procedures for
19 updating "tlmgr" itself and information about test versions.
20
21 TeX Live is organized into a few top-level schemes, each of which is
22 specified as a different set of collections and packages, where a
23 collection is a set of packages, and a package is what contains actual
24 files. Schemes typically contain a mix of collections and packages,
25 but each package is included in exactly one collection, no more and no
26 less. A TeX Live installation can be customized and managed at any
27 level.
28
29 See <https://tug.org/texlive/doc> for all the TeX Live documentation
30 available.
31
33 After successfully installing TeX Live, here are a few common
34 operations with "tlmgr":
35
36 "tlmgr option repository ctan"
37 "tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet"
38 Tell "tlmgr" to use a nearby CTAN mirror for future updates; useful
39 if you installed TeX Live from the DVD image and want to have
40 continuing updates. The two commands are equivalent; "ctan" is
41 just an alias for the given url. Caveat: "mirror.ctan.org"
42 resolves to many different hosts, and they are not perfectly
43 synchronized; we recommend updating only daily (at most), and not
44 more often.
45
46 "tlmgr update --list"
47 Report what would be updated without actually updating anything.
48
49 "tlmgr update --all"
50 Make your local TeX installation correspond to what is in the
51 package repository (typically useful when updating from CTAN).
52
53 "tlmgr info" what
54 Display detailed information about a package what, such as the
55 installation status and description, of searches for what in all
56 packages.
57
58 For all the capabilities and details of "tlmgr", please read the
59 following voluminous information.
60
62 The following options to "tlmgr" are global options, not specific to
63 any action. All options, whether global or action-specific, can be
64 given anywhere on the command line, and in any order. The first non-
65 option argument will be the main action. In all cases, "--"option and
66 "-"option are equivalent, and an "=" is optional between an option name
67 and its value.
68
69 --repository url|path
70 Specify the package repository from which packages should be
71 installed or updated, either a local directory or network location,
72 as below. This overridesthe default package repository found in the
73 installation's TeX Live Package Database (a.k.a. the TLPDB, which
74 is given entirely in the file "tlpkg/texlive.tlpdb").
75
76 This "--repository" option changes the location only for the
77 current run; to make a permanent change, use "option repository"
78 (see the "option" action).
79
80 As an example, you can choose a particular CTAN mirror with
81 something like this:
82
83 -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
84
85 Of course a real hostname and its particular top-level CTAN
86 directory have to be specified. The list of CTAN mirrors is
87 available at <https://ctan.org/mirrors>.
88
89 Here's an example of using a local directory:
90
91 -repository /local/TL/repository
92
93 For backward compatibility and convenience, "--location" and
94 "--repo" are accepted as aliases for this option.
95
96 Locations can be specified as any of the following:
97
98 "/some/local/dir"
99 "file:/some/local/dir"
100 Equivalent ways of specifying a local directory.
101
102 "ctan"
103 "http://mirror.ctan.org/systems/texlive/tlnet"
104 Pick a CTAN mirror automatically, trying for one that is both
105 nearby and up-to-date. The chosen mirror is used for the entire
106 download. The bare "ctan" is merely an alias for the full url.
107 (See <https://ctan.org> for more about CTAN and its mirrors.)
108
109 "http://server/path/to/tlnet"
110 Standard HTTP. If the (default) LWP method is used, persistent
111 connections are supported. TL can also use "curl" or "wget" to
112 do the downloads, or an arbitrary user-specified program, as
113 described in the "tlmgr" documentation
114 (<https://tug.org/texlive/doc/tlmgr.html#ENVIRONMENT-VARIABLES>).
115
116 "https://server/path/to/tlnet"
117 Again, if the (default) LWP method is used, this supports
118 persistent connections. Unfortunately, some versions of "wget"
119 and "curl" do not support https, and even when "wget" supports
120 https, certificates may be rejected even when the certificate
121 is fine, due to a lack of local certificate roots. The simplest
122 workaround for this problem is to use http or ftp.
123
124 "ftp://server/path/to/tlnet"
125 If the (default) LWP method is used, persistent connections are
126 supported.
127
128 "user@machine:/path/to/tlnet"
129 "scp://user@machine/path/to/tlnet"
130 "ssh://user@machine/path/to/tlnet"
131 These forms are equivalent; they all use "scp" to transfer
132 files. Using "ssh-agent" is recommended. (Info:
133 <https://en.wikipedia.org/wiki/OpenSSH>,
134 <https://en.wikipedia.org/wiki/Ssh-agent>.)
135
136 If the repository is on the network, trailing "/" characters and/or
137 trailing "/tlpkg" and/or "/archive" components are ignored.
138
139 --gui [action]
140 "tlmgr" has a graphical interface as well as the command line
141 interface. You can give this option, "--gui", together with an
142 action to be brought directly into the respective screen of the
143 GUI. For example, running
144
145 tlmgr --gui update
146
147 starts you directly at the update screen. If no action is given,
148 the GUI will be started at the main screen.
149
150 Note that the new GUIs, tlshell and tlcockpit, are started up as
151 separate programs.
152
153 --gui-lang llcode
154 By default, the GUI tries to deduce your language from the
155 environment (on Windows via the registry, on Unix via
156 "LC_MESSAGES"). If that fails you can select a different language
157 by giving this option with a language code (based on ISO 639-1).
158 Currently supported (but not necessarily completely translated)
159 are: English (en, default), Czech (cs), German (de), French (fr),
160 Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian
161 Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl),
162 Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese
163 (zh_CN), and traditional Chinese (zh_TW).
164
165 Tlshell shares its message catalog with tlmgr.
166
167 --debug-translation
168 In GUI mode, this switch tells "tlmgr" to report any untranslated
169 (or missing) messages to standard error. This can help translators
170 to see what remains to be done.
171
172 --machine-readable
173 Instead of the normal output intended for human consumption, write
174 (to standard output) a fixed format more suitable for machine
175 parsing. See the "MACHINE-READABLE OUTPUT" section below.
176
177 --no-execute-actions
178 Suppress the execution of the execute actions as defined in the
179 tlpsrc files. Documented only for completeness, as this is only
180 useful in debugging.
181
182 --package-logfile file
183 "tlmgr" logs all package actions (install, remove, update, failed
184 updates, failed restores) to a separate log file, by default
185 "TEXMFSYSVAR/web2c/tlmgr.log". This option allows you to specify a
186 different file for the log.
187
188 --pause
189 This option makes "tlmgr" wait for user input before exiting.
190 Useful on Windows to avoid disappearing command windows.
191
192 --persistent-downloads
193 --no-persistent-downloads
194 For network-based installations, this option (on by default) makes
195 "tlmgr" try to set up a persistent connection (using the "LWP" Perl
196 module). The idea is to open and reuse only one connection per
197 session between your computer and the server, instead of initiating
198 a new download for each package.
199
200 If this is not possible, "tlmgr" will fall back to using "wget".
201 To disable these persistent connections, use
202 "--no-persistent-downloads".
203
204 --pin-file
205 Change the pinning file location from
206 "TEXMFLOCAL/tlpkg/pinning.txt" (see "Pinning" below). Documented
207 only for completeness, as this is only useful in debugging.
208
209 --usermode
210 Activates user mode for this run of "tlmgr"; see "USER MODE" below.
211
212 --usertree dir
213 Uses dir for the tree in user mode; see "USER MODE" below.
214
215 --verify-repo=[none|main|all]
216 Defines the level of verification done: If "none" is specified, no
217 verification whatsoever is done. If "main" is given and a working
218 GnuPG ("gpg") binary is available, all repositories are checked,
219 but only the main repository is required to be signed. If "all" is
220 given, then all repositories need to be signed. See "CRYPTOGRAPHIC
221 VERIFICATION" below for details.
222
223 The standard options for TeX Live programs are also accepted:
224 "--help/-h/-?", "--version", "-q" (no informational messages), "-v"
225 (debugging messages, can be repeated). For the details about these,
226 see the "TeXLive::TLUtils" documentation.
227
228 The "--version" option shows version information about the TeX Live
229 release and about the "tlmgr" script itself. If "-v" is also given,
230 revision number for the loaded TeX Live Perl modules are shown, too.
231
233 help
234 Display this help information and exit (same as "--help", and on the
235 web at <https://tug.org/texlive/doc/tlmgr.html>). Sometimes the
236 "perldoc" and/or "PAGER" programs on the system have problems,
237 resulting in control characters being literally output. This can't
238 always be detected, but you can set the "NOPERLDOC" environment
239 variable and "perldoc" will not be used.
240
241 version
242 Gives version information (same as "--version").
243
244 If "-v" has been given the revisions of the used modules are reported,
245 too.
246
247 backup
248 backup [option...] --all
249 backup [option...] pkg...
250 If the "--clean" option is not specified, this action makes a
251 backup of the given packages, or all packages given "--all". These
252 backups are saved to the value of the "--backupdir" option, if that
253 is an existing and writable directory. If "--backupdir" is not
254 given, the "backupdir" option setting in the TLPDB is used, if
255 present. If both are missing, no backups are made.
256
257 If the "--clean" option is specified, backups are pruned (removed)
258 instead of saved. The optional integer value N may be specified to
259 set the number of backups that will be retained when cleaning. If
260 "N" is not given, the value of the "autobackup" option is used. If
261 both are missing, an error is issued. For more details of backup
262 pruning, see the "option" action.
263
264 Options:
265
266 --backupdir directory
267 Overrides the "backupdir" option setting in the TLPDB. The
268 directory argument is required and must specify an existing,
269 writable directory where backups are to be placed.
270
271 --all
272 If "--clean" is not specified, make a backup of all packages in
273 the TeX Live installation; this will take quite a lot of space
274 and time. If "--clean" is specified, all packages are pruned.
275
276 --clean[=N]
277 Instead of making backups, prune the backup directory of old
278 backups, as explained above. The optional integer argument N
279 overrides the "autobackup" option set in the TLPDB. You must
280 use "--all" or a list of packages together with this option, as
281 desired.
282
283 --dry-run
284 Nothing is actually backed up or removed; instead, the actions
285 to be performed are written to the terminal.
286
287 candidates pkg
288 Shows the available candidate repositories for package pkg. See
289 "MULTIPLE REPOSITORIES" below.
290
291 check [option...] [files|depends|executes|runfiles|all]
292 Executes one (or all) check(s) on the consistency of the installation.
293
294 files
295 Checks that all files listed in the local TLPDB ("texlive.tlpdb")
296 are actually present, and lists those missing.
297
298 depends
299 Lists those packages which occur as dependencies in an installed
300 collection, but are themselves not installed, and those packages
301 which are not contained in any collection.
302
303 If you call "tlmgr check collections" this test will be carried out
304 instead since former versions for "tlmgr" called it that way.
305
306 executes
307 Check that the files referred to by "execute" directives in the TeX
308 Live Database are present.
309
310 runfiles
311 List those filenames that are occurring more than one time in the
312 runfiles sections.
313
314 Options:
315
316 --use-svn
317 Use the output of "svn status" instead of listing the files; for
318 checking the TL development repository.
319
320 conf
321 conf [texmf|tlmgr|updmap [--conffile file] [--delete] [key [value]]]
322 conf auxtrees [--conffile file] [show|add|remove] [value]
323 With only "conf", show general configuration information for TeX
324 Live, including active configuration files, path settings, and
325 more. This is like running "texconfig conf", but works on all
326 supported platforms.
327
328 With one of "conf texmf", "conf tlmgr", or "conf updmap", shows all
329 key/value pairs (i.e., all settings) as saved in "ROOT/texmf.cnf",
330 the user-specific "tlmgr" configuration file (see below), or the
331 first found (via "kpsewhich") "updmap.cfg" file, respectively.
332
333 If key is given in addition, shows the value of only that key in
334 the respective file. If option --delete is also given, the value
335 in the given configuration file is entirely removed (not just
336 commented out).
337
338 If value is given in addition, key is set to value in the
339 respective file. No error checking is done!
340
341 The "PATH" value shown by "conf" is as used by "tlmgr". The
342 directory in which the "tlmgr" executable is found is automatically
343 prepended to the PATH value inherited from the environment.
344
345 Here is a practical example of changing configuration values. If
346 the execution of (some or all) system commands via "\write18" was
347 left enabled during installation, you can disable it afterwards:
348
349 tlmgr conf texmf shell_escape 0
350
351 The subcommand "auxtrees" allows adding and removing arbitrary
352 additional texmf trees, completely under user control. "auxtrees
353 show" shows the list of additional trees, "auxtrees add" tree adds
354 a tree to the list, and "auxtrees remove" tree removes a tree from
355 the list (if present). The trees should not contain an "ls-R" file
356 (or files will not be found if the "ls-R" becomes stale). This
357 works by manipulating the Kpathsea variable "TEXMFAUXTREES", in (by
358 default) "ROOT/texmf.cnf". Example:
359
360 tlmgr conf auxtrees add /quick/test/tree
361 tlmgr conf auxtrees remove /quick/test/tree
362
363 In all cases the configuration file can be explicitly specified via
364 the option "--conffile" file, e.g., if you don't want to change the
365 system-wide configuration.
366
367 Warning: The general facility for changing configuration values is
368 here, but tinkering with settings in this way is strongly
369 discouraged. Again, no error checking on either keys or values is
370 done, so any sort of breakage is possible.
371
372 dump-tlpdb [option...] [--json]
373 Dump complete local or remote TLPDB to standard output, as-is. The
374 output is analogous to the "--machine-readable" output; see "MACHINE-
375 READABLE OUTPUT" section.
376
377 Options:
378
379 --local
380 Dump the local TLPDB.
381
382 --remote
383 Dump the remote TLPDB.
384
385 --json
386 Instead of dumping the actual content, the database is dumped as
387 JSON. For the format of JSON output see
388 "tlpkg/doc/JSON-formats.txt", format definition "TLPDB".
389
390 Exactly one of "--local" and "--remote" must be given.
391
392 In either case, the first line of the output specifies the repository
393 location, in this format:
394
395 "location-url" "\t" location
396
397 where "location-url" is the literal field name, followed by a tab, and
398 location is the file or url to the repository.
399
400 Line endings may be either LF or CRLF depending on the current
401 platform.
402
403 generate
404 generate [option...] language
405 generate [option...] language.dat
406 generate [option...] language.def
407 generate [option...] language.dat.lua
408
409 The "generate" action overwrites any manual changes made in the
410 respective files: it recreates them from scratch based on the
411 information of the installed packages, plus local adaptions. The TeX
412 Live installer and "tlmgr" routinely call "generate" for all of these
413 files.
414
415 For managing your own fonts, please read the "updmap --help"
416 information and/or <https://tug.org/fonts/fontinstall.html>.
417
418 For managing your own formats, please read the "fmtutil --help"
419 information.
420
421 In more detail: "generate" remakes any of the configuration files
422 "language.dat", "language.def", and "language.dat.lua" from the
423 information present in the local TLPDB, plus locally-maintained files.
424
425 The locally-maintained files are "language-local.dat",
426 "language-local.def", or "language-local.dat.lua", searched for in
427 "TEXMFLOCAL" in the respective directories. If local additions are
428 present, the final file is made by starting with the main file,
429 omitting any entries that the local file specifies to be disabled, and
430 finally appending the local file.
431
432 (Historical note: The formerly supported "updmap-local.cfg" and
433 "fmtutil-local.cnf" are no longer read, since "updmap" and "fmtutil"
434 now reads and supports multiple configuration files. Thus, local
435 additions can and should be put into an "updmap.cfg" of "fmtutil.cnf"
436 file in "TEXMFLOCAL". The "generate updmap" and "generate fmtutil"
437 actions no longer exist.)
438
439 Local files specify entries to be disabled with a comment line, namely
440 one of these:
441
442 %!NAME
443 --!NAME
444
445 where "language.dat" and "language.def" use "%", and "language.dat.lua"
446 use "--". In all cases, the name is the respective format name or
447 hyphenation pattern identifier. Examples:
448
449 %!german
450 --!usenglishmax
451
452 (Of course, you're not likely to actually want to disable those
453 particular items. They're just examples.)
454
455 After such a disabling line, the local file can include another entry
456 for the same item, if a different definition is desired. In general,
457 except for the special disabling lines, the local files follow the same
458 syntax as the master files.
459
460 The form "generate language" recreates all three files "language.dat",
461 "language.def", and "language.dat.lua", while the forms with an
462 extension recreates only that given language file.
463
464 Options:
465
466 --dest output_file
467 specifies the output file (defaults to the respective location in
468 "TEXMFSYSVAR"). If "--dest" is given to "generate language", it
469 serves as a basename onto which ".dat" will be appended for the
470 name of the "language.dat" output file, ".def" will be appended to
471 the value for the name of the "language.def" output file, and
472 ".dat.lua" to the name of the "language.dat.lua" file. (This is
473 just to avoid overwriting; if you want a specific name for each
474 output file, we recommend invoking "tlmgr" twice.)
475
476 --localcfg local_conf_file
477 specifies the (optional) local additions (defaults to the
478 respective location in "TEXMFLOCAL").
479
480 --rebuild-sys
481 tells "tlmgr" to run necessary programs after config files have
482 been regenerated. These are: "fmtutil-sys --all" after "generate
483 fmtutil", "fmtutil-sys --byhyphen .../language.dat" after "generate
484 language.dat", and "fmtutil-sys --byhyphen .../language.def" after
485 "generate language.def".
486
487 These subsequent calls cause the newly-generated files to actually
488 take effect. This is not done by default since those calls are
489 lengthy processes and one might want to made several related
490 changes in succession before invoking these programs.
491
492 The respective locations are as follows:
493
494 tex/generic/config/language.dat (and language-local.dat)
495 tex/generic/config/language.def (and language-local.def)
496 tex/generic/config/language.dat.lua (and language-local.dat.lua)
497
498 gui
499 Start the graphical user interface. See GUI below.
500
501 info
502 info [option...] pkg...
503 info [option...] collections
504 info [option...] schemes
505 With no argument, lists all packages available at the package
506 repository, prefixing those already installed with "i".
507
508 With the single word "collections" or "schemes" as the argument,
509 lists the request type instead of all packages.
510
511 With any other arguments, display information about pkg: the name,
512 category, short and long description, sizes, installation status,
513 and TeX Live revision number. If pkg is not locally installed,
514 searches in the remote installation source.
515
516 For normal packages (not collections or schemes), the sizes of the
517 four groups of files (run/src/doc/bin files) are shown separately.
518 For collections, the cumulative size is shown, including all
519 directly-dependent packages (but not dependent collections). For
520 schemes, the cumulative size is also shown, including all directly-
521 dependent collections and packages.
522
523 If pkg is not found locally or remotely, the search action is used
524 and lists matching packages and files.
525
526 It also displays information taken from the TeX Catalogue, namely
527 the package version, date, and license. Consider these, especially
528 the package version, as approximations only, due to timing skew of
529 the updates of the different pieces. By contrast, the "revision"
530 value comes directly from TL and is reliable.
531
532 The former actions "show" and "list" are merged into this action,
533 but are still supported for backward compatibility.
534
535 Options:
536
537 --list
538 If the option "--list" is given with a package, the list of
539 contained files is also shown, including those for platform-
540 specific dependencies. When given with schemes and
541 collections, "--list" outputs their dependencies in a similar
542 way.
543
544 --only-installed
545 If this option is given, the installation source will not be
546 used; only locally installed packages, collections, or schemes
547 are listed.
548
549 --only-remote
550 Only list packages from the remote repository. Useful when
551 checking what is available in a remote repository using "tlmgr
552 --repo ... --only-remote info". Note that "--only-installed"
553 and "--only-remote" cannot both be specified.
554
555 --data "item1,item2,..."
556 If the option "--data" is given, its argument must be a comma
557 separated list of field names from: "name", "category",
558 "localrev", "remoterev", "shortdesc", "longdesc", "installed",
559 "size", "relocatable", "depends", "cat-version", "cat-date", or
560 "cat-license". In this case the requested packages' information
561 is listed in CSV format one package per line, and the column
562 information is given by the "itemN". The "depends" column
563 contains the name of all dependencies separated by ":".
564
565 --json
566 In case "--json" is specified, the output is a JSON encoded
567 array where each array element is the JSON representation of a
568 single "TLPOBJ" but with additional information. For details
569 see "tlpkg/doc/JSON-formats.txt", format definition:
570 "TLPOBJINFO". If both "--json" and "--data" are given,
571 "--json" takes precedence.
572
573 init-usertree
574 Sets up a texmf tree for so-called user mode management, either the
575 default user tree ("TEXMFHOME"), or one specified on the command line
576 with "--usertree". See "USER MODE" below.
577
578 install [option...] pkg...
579 Install each pkg given on the command line, if it is not already
580 installed. (It does not touch existing packages; see the "update"
581 action for how to get the latest version of a package.)
582
583 By default this also installs all packages on which the given pkgs are
584 dependent. Options:
585
586 --dry-run
587 Nothing is actually installed; instead, the actions to be performed
588 are written to the terminal.
589
590 --file
591 Instead of fetching a package from the installation repository, use
592 the package files given on the command line. These files must be
593 standard TeX Live package files (with contained tlpobj file).
594
595 --force
596 If updates to "tlmgr" itself (or other parts of the basic
597 infrastructure) are present, "tlmgr" will bail out and not perform
598 the installation unless this option is given. Not recommended.
599
600 --no-depends
601 Do not install dependencies. (By default, installing a package
602 ensures that all dependencies of this package are fulfilled.)
603
604 --no-depends-at-all
605 Normally, when you install a package which ships binary files the
606 respective binary package will also be installed. That is, for a
607 package "foo", the package "foo.i386-linux" will also be installed
608 on an "i386-linux" system. This option suppresses this behavior,
609 and also implies "--no-depends". Don't use it unless you are sure
610 of what you are doing.
611
612 --reinstall
613 Reinstall a package (including dependencies for collections) even
614 if it already seems to be installed (i.e, is present in the TLPDB).
615 This is useful to recover from accidental removal of files in the
616 hierarchy.
617
618 When re-installing, only dependencies on normal packages are
619 followed (i.e., not those of category Scheme or Collection).
620
621 --with-doc
622 --with-src
623 While not recommended, the "install-tl" program provides an option
624 to omit installation of all documentation and/or source files. (By
625 default, everything is installed.) After such an installation, you
626 may find that you want the documentation or source files for a
627 given package after all. You can get them by using these options
628 in conjunction with "--reinstall", as in (using the "fontspec"
629 package as the example):
630
631 tlmgr install --reinstall --with-doc --with-src fontspec
632
633 key
634 key list
635 key add file
636 key remove keyid
637 The action "key" allows listing, adding and removing additional GPG
638 keys to the set of trusted keys, that is, those that are used to
639 verify the TeX Live databases.
640
641 With the "list" argument, "key" lists all keys.
642
643 The "add" argument requires another argument, either a filename or
644 "-" for stdin, from which the key is added. The key is added to the
645 local keyring "GNUPGHOME/repository-keys.gpg", which is normally
646 "tlpkg/gpg/repository-keys.gpg".
647
648 The "remove" argument requires a key id and removes the requested
649 id from the local keyring.
650
651 list
652 Synonym for "info".
653
654 option
655 option [--json] [show]
656 option [--json] showall
657 option key [value]
658
659 The first form, "show", shows the global TeX Live settings currently
660 saved in the TLPDB with a short description and the "key" used for
661 changing it in parentheses.
662
663 The second form, "showall", is similar, but also shows options which
664 can be defined but are not currently set to any value.
665
666 Both "show..." forms take an option "--json", which dumps the option
667 information in JSON format. In this case, both forms dump the same
668 data. For the format of the JSON output see
669 "tlpkg/doc/JSON-formats.txt", format definition "TLOPTION".
670
671 In the third form, with key, if value is not given, the setting for key
672 is displayed. If value is present, key is set to value.
673
674 Possible values for key are (run "tlmgr option showall" for the
675 definitive list):
676
677 repository (default package repository),
678 formats (create formats at installation time),
679 postcode (run postinst code blobs)
680 docfiles (install documentation files),
681 srcfiles (install source files),
682 backupdir (default directory for backups),
683 autobackup (number of backups to keep).
684 sys_bin (directory to which executables are linked by the path action)
685 sys_man (directory to which man pages are linked by the path action)
686 sys_info (directory to which Info files are linked by the path action)
687 desktop_integration (Windows-only: create Start menu shortcuts)
688 fileassocs (Windows-only: change file associations)
689 multiuser (Windows-only: install for all users)
690
691 One common use of "option" is to permanently change the installation to
692 get further updates from the Internet, after originally installing from
693 DVD. To do this, you can run
694
695 tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
696
697 The "install-tl" documentation has more information about the possible
698 values for "repository". (For backward compatibility, "location" can
699 be used as a synonym for "repository".)
700
701 If "formats" is set (this is the default), then formats are regenerated
702 when either the engine or the format files have changed. Disable this
703 only when you know how and want to regenerate formats yourself.
704
705 The "postcode" option controls execution of per-package
706 postinstallation action code. It is set by default, and again
707 disabling is not likely to be of interest except to developers doing
708 debugging.
709
710 The "docfiles" and "srcfiles" options control the installation of their
711 respective file groups (documentation, sources; grouping is
712 approximate) per package. By default both are enabled (1). Either or
713 both can be disabled (set to 0) if disk space is limited or for minimal
714 testing installations, etc. When disabled, the respective files are
715 not downloaded at all.
716
717 The options "autobackup" and "backupdir" determine the defaults for the
718 actions "update", "backup" and "restore". These three actions need a
719 directory in which to read or write the backups. If "--backupdir" is
720 not specified on the command line, the "backupdir" option value is used
721 (if set).
722
723 The "autobackup" option (de)activates automatic generation of backups.
724 Its value is an integer. If the "autobackup" value is "-1", no backups
725 are removed. If "autobackup" is 0 or more, it specifies the number of
726 backups to keep. Thus, backups are disabled if the value is 0. In the
727 "--clean" mode of the "backup" action this option also specifies the
728 number to be kept. The default value is 1, so that backups are made,
729 but only one backup is kept.
730
731 To setup "autobackup" to "-1" on the command line, use:
732
733 tlmgr option -- autobackup -1
734
735 The "--" avoids having the "-1" treated as an option. (The "--" stops
736 parsing for options at the point where it appears; this is a general
737 feature across most Unix programs.)
738
739 The "sys_bin", "sys_man", and "sys_info" options are used on Unix
740 systems to control the generation of links for executables, Info files
741 and man pages. See the "path" action for details.
742
743 The last three options affect behavior on Windows installations. If
744 "desktop_integration" is set, then some packages will install items in
745 a sub-folder of the Start menu for "tlmgr gui", documentation, etc. If
746 "fileassocs" is set, Windows file associations are made (see also the
747 "postaction" action). Finally, if "multiuser" is set, then adaptions
748 to the registry and the menus are done for all users on the system
749 instead of only the current user. All three options are on by default.
750
751 paper
752 paper [a4|letter]
753 [xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [papersize|--list]
754 paper --json
755
756 With no arguments ("tlmgr paper"), shows the default paper size setting
757 for all known programs.
758
759 With one argument (e.g., "tlmgr paper a4"), sets the default for all
760 known programs to that paper size.
761
762 With a program given as the first argument and no paper size specified
763 (e.g., "tlmgr dvips paper"), shows the default paper size for that
764 program.
765
766 With a program given as the first argument and a paper size as the last
767 argument (e.g., "tlmgr dvips paper a4"), set the default for that
768 program to that paper size.
769
770 With a program given as the first argument and "--list" given as the
771 last argument (e.g., "tlmgr dvips paper --list"), shows all valid paper
772 sizes for that program. The first size shown is the default.
773
774 If "--json" is specified without other options, the paper setup is
775 dumped in JSON format. For the format of JSON output see
776 "tlpkg/doc/JSON-formats.txt", format definition "TLPAPER".
777
778 Incidentally, this syntax of having a specific program name before the
779 "paper" keyword is unusual. It is inherited from the longstanding
780 "texconfig" script, which supports other configuration settings for
781 some programs, notably "dvips". "tlmgr" does not support those extra
782 settings.
783
784 path
785 path [--w32mode=user|admin] add
786 path [--w32mode=user|admin] remove
787 On Unix, merely adds or removes symlinks for binaries, man pages,
788 and info pages in the system directories specified by the
789 respective options (see the "option" description above). Does not
790 change any initialization files, either system or personal.
791
792 On Windows, the registry part where the binary directory is added
793 or removed is determined in the following way:
794
795 If the user has admin rights, and the option "--w32mode" is not
796 given, the setting w32_multi_user determines the location (i.e., if
797 it is on then the system path, otherwise the user path is changed).
798
799 If the user has admin rights, and the option "--w32mode" is given,
800 this option determines the path to be adjusted.
801
802 If the user does not have admin rights, and the option "--w32mode"
803 is not given, and the setting w32_multi_user is off, the user path
804 is changed, while if the setting w32_multi_user is on, a warning is
805 issued that the caller does not have enough privileges.
806
807 If the user does not have admin rights, and the option "--w32mode"
808 is given, it must be "user" and the user path will be adjusted. If
809 a user without admin rights uses the option "--w32mode admin" a
810 warning is issued that the caller does not have enough privileges.
811
812 pinning
813 The "pinning" action manages the pinning file, see "Pinning" below.
814
815 "pinning show"
816 Shows the current pinning data.
817
818 "pinning add" repo pkgglob...
819 Pins the packages matching the pkgglob(s) to the repository repo.
820
821 "pinning remove" repo pkgglob...
822 Any packages recorded in the pinning file matching the <pkgglob>s
823 for the given repository repo are removed.
824
825 "pinning remove repo --all"
826 Remove all pinning data for repository repo.
827
828 platform
829 platform list|add|remove platform...
830 platform set platform
831 platform set auto
832 "platform list" lists the TeX Live names of all the platforms
833 (a.k.a. architectures), ("i386-linux", ...) available at the
834 package repository.
835
836 "platform add" platform... adds the executables for each given
837 platform platform to the installation from the repository.
838
839 "platform remove" platform... removes the executables for each
840 given platform platform from the installation, but keeps the
841 currently running platform in any case.
842
843 "platform set" platform switches TeX Live to always use the given
844 platform instead of auto detection.
845
846 "platform set auto" switches TeX Live to auto detection mode for
847 platform.
848
849 Platform detection is needed to select the proper "xz" and "wget"
850 binaries that are shipped with TeX Live.
851
852 "arch" is a synonym for "platform".
853
854 Options:
855
856 --dry-run
857 Nothing is actually installed; instead, the actions to be
858 performed are written to the terminal.
859
860 postaction
861 postaction [option...] install [shortcut|fileassoc|script] [pkg...]
862 postaction [option...] remove [shortcut|fileassoc|script] [pkg...]
863 Carry out the postaction "shortcut", "fileassoc", or "script" given
864 as the second required argument in install or remove mode (which is
865 the first required argument), for either the packages given on the
866 command line, or for all if "--all" is given.
867
868 Options:
869
870 --w32mode=[user|admin]
871 If the option "--w32mode" is given the value "user", all
872 actions will only be carried out in the user-accessible parts
873 of the registry/filesystem, while the value "admin" selects the
874 system-wide parts of the registry for the file associations.
875 If you do not have enough permissions, using "--w32mode=admin"
876 will not succeed.
877
878 --fileassocmode=[1|2]
879 "--fileassocmode" specifies the action for file associations.
880 If it is set to 1 (the default), only new associations are
881 added; if it is set to 2, all associations are set to the TeX
882 Live programs. (See also "option fileassocs".)
883
884 --all
885 Carry out the postactions for all packages
886
887 print-platform
888 Print the TeX Live identifier for the detected platform
889 (hardware/operating system) combination to standard output, and exit.
890 "--print-arch" is a synonym.
891
892 print-platform-info
893 Print the TeX Live platform identifier, TL platform long name, and
894 original output from guess.
895
896 remove [option...] pkg...
897 Remove each pkg specified. Removing a collection removes all package
898 dependencies (unless "--no-depends" is specified), but not any
899 collection dependencies of that collection. However, when removing a
900 package, dependencies are never removed. Options:
901
902 --all
903 Uninstalls all of TeX Live, asking for confirmation unless
904 "--force" is also specified.
905
906 --backup
907 --backupdir directory
908 These options behave just as with the update action (q.v.), except
909 they apply to making backups of packages before they are removed.
910 The default is to make such a backup, that is, to save a copy of
911 packages before removal.
912
913 The "restore" action explains how to restore from a backup.
914
915 --no-depends
916 Do not remove dependent packages.
917
918 --no-depends-at-all
919 See above under install (and beware).
920
921 --force
922 By default, removal of a package or collection that is a dependency
923 of another collection or scheme is not allowed. With this option,
924 the package will be removed unconditionally. Use with care.
925
926 A package that has been removed using the "--force" option because
927 it is still listed in an installed collection or scheme will not be
928 updated, and will be mentioned as "forcibly removed" in the output
929 of "tlmgr update --list".
930
931 --dry-run
932 Nothing is actually removed; instead, the actions to be performed
933 are written to the terminal.
934
935 repository
936 repository list
937 repository list path|tag
938 repository add path [tag]
939 repository remove path|tag
940 repository set path[#tag] [path[#tag] ...]
941 This action manages the list of repositories. See MULTIPLE
942 REPOSITORIES below for detailed explanations.
943
944 The first form ("list") lists all configured repositories and the
945 respective tags if set. If a path, url, or tag is given after the
946 "list" keyword, it is interpreted as source from where to
947 initialize a TeX Live Database and lists the contained packages.
948 This can also be an up-to-now not used repository, both locally and
949 remote. If one pass in addition "--with-platforms", for each
950 package the available platforms (if any) are listed, too.
951
952 The third form ("add") adds a repository (optionally attaching a
953 tag) to the list of repositories. The forth form ("remove")
954 removes a repository, either by full path/url, or by tag. The last
955 form ("set") sets the list of repositories to the items given on
956 the command line, not keeping previous settings
957
958 In all cases, one of the repositories must be tagged as "main";
959 otherwise, all operations will fail!
960
961 restore
962 restore [option...] pkg [rev]
963 restore [option...] --all
964 Restore a package from a previously-made backup.
965
966 If "--all" is given, try to restore the latest revision of all
967 package backups found in the backup directory.
968
969 Otherwise, if neither pkg nor rev are given, list the available
970 backup revisions for all packages. With pkg given but no rev, list
971 all available backup revisions of pkg.
972
973 When listing available packages, "tlmgr" shows the revision, and in
974 parenthesis the creation time if available (in format yyyy-mm-dd
975 hh:mm).
976
977 If (and only if) both pkg and a valid revision number rev are
978 specified, try to restore the package from the specified backup.
979
980 Options:
981
982 --all
983 Try to restore the latest revision of all package backups found
984 in the backup directory. Additional non-option arguments (like
985 pkg) are not allowed.
986
987 --backupdir directory
988 Specify the directory where the backups are to be found. If not
989 given it will be taken from the configuration setting in the
990 TLPDB.
991
992 --dry-run
993 Nothing is actually restored; instead, the actions to be
994 performed are written to the terminal.
995
996 --force
997 Don't ask questions.
998
999 --json
1000 When listing backups, the option "--json" turn on JSON output.
1001 The format is an array of JSON objects ("name", "rev", "date").
1002 For details see "tlpkg/doc/JSON-formats.txt", format
1003 definition: "TLBACKUPS". If both "--json" and "--data" are
1004 given, "--json" takes precedence.
1005
1006 search
1007 search [option...] what
1008 search [option...] --file what
1009 search [option...] --all what
1010 By default, search the names, short descriptions, and long
1011 descriptions of all locally installed packages for the argument
1012 what, interpreted as a (Perl) regular expression.
1013
1014 Options:
1015
1016 --file
1017 List all filenames containing what.
1018
1019 --all
1020 Search everything: package names, descriptions and filenames.
1021
1022 --global
1023 Search the TeX Live Database of the installation medium,
1024 instead of the local installation.
1025
1026 --word
1027 Restrict the search of package names and descriptions (but not
1028 filenames) to match only full words. For example, searching
1029 for "table" with this option will not output packages
1030 containing the word "tables" (unless they also contain the word
1031 "table" on its own).
1032
1033 shell
1034 Starts an interactive mode, where tlmgr prompts for commands. This can
1035 be used directly, or for scripting. The first line of output is
1036 "protocol" n, where n is an unsigned number identifying the protocol
1037 version (currently 1).
1038
1039 In general, tlmgr actions that can be given on the command line
1040 translate to commands in this shell mode. For example, you can say
1041 "update --list" to see what would be updated. The TLPDB is loaded the
1042 first time it is needed (not at the beginning), and used for the rest
1043 of the session.
1044
1045 Besides these actions, a few commands are specific to shell mode:
1046
1047 protocol
1048 Print "protocol n", the current protocol version.
1049
1050 help
1051 Print pointers to this documentation.
1052
1053 version
1054 Print tlmgr version information.
1055
1056 quit, end, bye, byebye, EOF
1057 Exit.
1058
1059 restart
1060 Restart "tlmgr shell" with the original command line; most useful
1061 when developing "tlmgr".
1062
1063 load [local|remote]
1064 Explicitly load the local or remote, respectively, TLPDB.
1065
1066 save
1067 Save the local TLPDB, presumably after other operations have
1068 changed it.
1069
1070 get [var] =item set [var [val]]
1071 Get the value of var, or set it to val. Possible var names:
1072 "debug-translation", "machine-readable", "no-execute-actions",
1073 "require-verification", "verify-downloads", "repository", and
1074 "prompt". All except "repository" and "prompt" are booleans, taking
1075 values 0 and 1, and behave like the corresponding command line
1076 option. The "repository" variable takes a string, and sets the
1077 remote repository location. The "prompt" variable takes a string,
1078 and sets the current default prompt.
1079
1080 If var or then val is not specified, it is prompted for.
1081
1082 show
1083 Synonym for "info".
1084
1085 uninstall
1086 Synonym for remove.
1087
1088 update [option...] [pkg...]
1089 Updates the packages given as arguments to the latest version available
1090 at the installation source. Either "--all" or at least one pkg name
1091 must be specified. Options:
1092
1093 --all
1094 Update all installed packages except for "tlmgr" itself. Thus, if
1095 updates to "tlmgr" itself are present, this will simply give an
1096 error, unless also the option "--force" or "--self" is given. (See
1097 below.)
1098
1099 In addition to updating the installed packages, during the update
1100 of a collection the local installation is (by default) synchronized
1101 to the status of the collection on the server, for both additions
1102 and removals.
1103
1104 This means that if a package has been removed on the server (and
1105 thus has also been removed from the respective collection), "tlmgr"
1106 will remove the package in the local installation. This is called
1107 ``auto-remove'' and is announced as such when using the option
1108 "--list". This auto-removal can be suppressed using the option
1109 "--no-auto-remove" (not recommended, see option description).
1110
1111 Analogously, if a package has been added to a collection on the
1112 server that is also installed locally, it will be added to the
1113 local installation. This is called ``auto-install'' and is
1114 announced as such when using the option "--list". This auto-
1115 installation can be suppressed using the option
1116 "--no-auto-install".
1117
1118 An exception to the collection dependency checks (including the
1119 auto-installation of packages just mentioned) are those that have
1120 been ``forcibly removed'' by you, that is, you called "tlmgr remove
1121 --force" on them. (See the "remove" action documentation.) To
1122 reinstall any such forcibly removed packages use
1123 "--reinstall-forcibly-removed".
1124
1125 If you want to exclude some packages from the current update run
1126 (e.g., due to a slow link), see the "--exclude" option below.
1127
1128 --self
1129 Update "tlmgr" itself (that is, the infrastructure packages) if
1130 updates to it are present. On Windows this includes updates to the
1131 private Perl interpreter shipped inside TeX Live.
1132
1133 If this option is given together with either "--all" or a list of
1134 packages, then "tlmgr" will be updated first and, if this update
1135 succeeds, the new version will be restarted to complete the rest of
1136 the updates.
1137
1138 In short:
1139
1140 tlmgr update --self # update infrastructure only
1141 tlmgr update --self --all # update infrastructure and all packages
1142 tlmgr update --force --all # update all packages but *not* infrastructure
1143 # ... this last at your own risk, not recommended!
1144
1145 --dry-run
1146 Nothing is actually installed; instead, the actions to be performed
1147 are written to the terminal. This is a more detailed report than
1148 "--list".
1149
1150 --list [pkg]
1151 Concisely list the packages which would be updated, newly
1152 installed, or removed, without actually changing anything. If
1153 "--all" is also given, all available updates are listed. If
1154 "--self" is given, but not "--all", only updates to the critical
1155 packages (tlmgr, texlive infrastructure, perl on Windows, etc.)
1156 are listed. If neither "--all" nor "--self" is given, and in
1157 addition no pkg is given, then "--all" is assumed (thus, "tlmgr
1158 update --list" is the same as "tlmgr update --list --all"). If
1159 neither "--all" nor "--self" is given, but specific package names
1160 are given, those packages are checked for updates.
1161
1162 --exclude pkg
1163 Exclude pkg from the update process. If this option is given more
1164 than once, its arguments accumulate.
1165
1166 An argument pkg excludes both the package pkg itself and all its
1167 related platform-specific packages pkg.ARCH. For example,
1168
1169 tlmgr update --all --exclude a2ping
1170
1171 will not update "a2ping", "a2ping.i386-linux", or any other
1172 "a2ping."ARCH package.
1173
1174 If this option specifies a package that would otherwise be a
1175 candidate for auto-installation, auto-removal, or reinstallation of
1176 a forcibly removed package, "tlmgr" quits with an error message.
1177 Excludes are not supported in these circumstances.
1178
1179 This option can also be set permanently in the tlmgr config file
1180 with the key "update-exclude".
1181
1182 --no-auto-remove [pkg...]
1183 By default, "tlmgr" tries to remove packages which have disappeared
1184 on the server, as described above under "--all". This option
1185 prevents such removals, either for all packages (with "--all"), or
1186 for just the given pkg names. This can lead to an inconsistent TeX
1187 installation, since packages are not infrequently renamed or
1188 replaced by their authors. Therefore this is not recommend.
1189
1190 --no-auto-install [pkg...]
1191 Under normal circumstances "tlmgr" will install packages which are
1192 new on the server, as described above under "--all". This option
1193 prevents any such automatic installation, either for all packages
1194 (with "--all"), or the given pkg names.
1195
1196 Furthermore, after the "tlmgr" run using this has finished, the
1197 packages that would have been auto-installed will be considered as
1198 forcibly removed. So, if "foobar" is the only new package on the
1199 server, then
1200
1201 tlmgr update --all --no-auto-install
1202
1203 is equivalent to
1204
1205 tlmgr update --all
1206 tlmgr remove --force foobar
1207
1208 --reinstall-forcibly-removed
1209 Under normal circumstances "tlmgr" will not install packages that
1210 have been forcibly removed by the user; that is, removed with
1211 "remove --force", or whose installation was prohibited by
1212 "--no-auto-install" during an earlier update.
1213
1214 This option makes "tlmgr" ignore the forcible removals and re-
1215 install all such packages. This can be used to completely
1216 synchronize an installation with the server's idea of what is
1217 available:
1218
1219 tlmgr update --reinstall-forcibly-removed --all
1220
1221 --backup
1222 --backupdir directory
1223 These two options control the creation of backups of packages
1224 before updating; that is, backup of packages as currently
1225 installed. If neither options is given, no backup will made. If
1226 "--backupdir" is given and specifies a writable directory then a
1227 backup will be made in that location. If only "--backup" is given,
1228 then a backup will be made to the directory previously set via the
1229 "option" action (see below). If both are given then a backup will
1230 be made to the specified directory.
1231
1232 You can also set options via the "option" action to automatically
1233 make backups for all packages, and/or keep only a certain number of
1234 backups.
1235
1236 "tlmgr" always makes a temporary backup when updating packages, in
1237 case of download or other failure during an update. In contrast,
1238 the purpose of this "--backup" option is to save a persistent
1239 backup in case the actual content of the update causes problems,
1240 e.g., introduces an TeX incompatibility.
1241
1242 The "restore" action explains how to restore from a backup.
1243
1244 --no-depends
1245 If you call for updating a package normally all depending packages
1246 will also be checked for updates and updated if necessary. This
1247 switch suppresses this behavior.
1248
1249 --no-depends-at-all
1250 See above under install (and beware).
1251
1252 --force
1253 Force update of normal packages, without updating "tlmgr" itself
1254 (unless the "--self" option is also given). Not recommended.
1255
1256 Also, "update --list" is still performed regardless of this option.
1257
1258 If the package on the server is older than the package already
1259 installed (e.g., if the selected mirror is out of date), "tlmgr" does
1260 not downgrade. Also, packages for uninstalled platforms are not
1261 installed.
1262
1263 "tlmgr" saves a copy of the "texlive.tlpdb" file used for an update
1264 with a suffix representing the repository url, as in
1265 "tlpkg/texlive.tlpdb."long-hash-string. These can be useful for
1266 fallback information, but if you don't like them accumulating (e.g.,
1267 "mirror.ctan.org" resolves to many different hosts, each resulting in a
1268 possibly different hash), it's harmless to delete them.
1269
1271 "tlmgr" reads two configuration files: one is system-wide, in
1272 "TEXMFSYSCONFIG/tlmgr/config", and the other is user-specific, in
1273 "TEXMFCONFIG/tlmgr/config". The user-specific one is the default for
1274 the "conf tlmgr" action. (Run "kpsewhich -var-value=TEXMFSYSCONFIG" or
1275 "... TEXMFCONFIG ..." to see the actual directory names.)
1276
1277 A few defaults corresponding to command-line options can be set in
1278 these configuration files. In addition, the system-wide file can
1279 contain a directive to restrict the allowed actions.
1280
1281 In these config files, empty lines and lines starting with # are
1282 ignored. All other lines must look like:
1283
1284 key = value
1285
1286 where the spaces are optional but the "=" is required.
1287
1288 The allowed keys are:
1289
1290 "auto-remove", value 0 or 1 (default 1), same as command-line option.
1291 "gui-expertmode", value 0 or 1 (default 1). This switches between the
1292 full GUI and a simplified GUI with only the most common settings.
1293 "gui-lang" llcode, with a language code value as with the command-line
1294 option.
1295 "no-checksums", value 0 or 1 (default 0, see below).
1296 "persistent-downloads", value 0 or 1 (default 1), same as command-line
1297 option.
1298 "require-verification", value 0 or 1 (default 0), same as command-line
1299 option.
1300 "update-exclude", value: comma-separated list of packages (no space
1301 allowed). Same as the command line option "--exclude" for the action
1302 "update".
1303 "verify-downloads", value 0 or 1 (default 1), same as command-line
1304 option.
1305
1306 The system-wide config file can contain one additional key:
1307
1308 "allowed-actions" action1 [,action,...] The value is a comma-separated
1309 list of "tlmgr" actions which are allowed to be executed when "tlmgr"
1310 is invoked in system mode (that is, without "--usermode").
1311 This allows distributors to include the "tlmgr" in their packaging,
1312 but allow only a restricted set of actions that do not interfere
1313 with their distro package manager. For native TeX Live
1314 installations, it doesn't make sense to set this.
1315
1316 The "no-checksums" key needs more explanation. By default, package
1317 checksums computed and stored on the server (in the TLPDB) are compared
1318 to checksums computed locally after downloading. "no-checksums"
1319 disables this process.
1320
1321 The checksum algorithm is SHA-512. Your system must have one of
1322 (looked for in this order) the Perl "Digest::SHA" module, the "openssl"
1323 program (<https://openssl.org>), the "sha512sum" program (from GNU
1324 Coreutils, <https://www.gnu.org/software/coreutils>), or finally the
1325 "shasum" program (just to support old Macs). If none of these are
1326 available, a warning is issued and "tlmgr" proceeds without checking
1327 checksums. (Incidentally, other SHA implementations, such as the pure
1328 Perl and pure Lua modules, are much too slow to be usable in our
1329 context.) "no-checksums" avoids the warning.
1330
1332 "tlmgr" and "install-tl" perform cryptographic verification if
1333 possible. If verification is performed and successful, the programs
1334 report "(verified)" after loading the TLPDB; otherwise, they report
1335 "(not verified)". But either way, by default the installation and/or
1336 updates proceed normally.
1337
1338 If a program named "gpg" is available (that is, found in "PATH"), by
1339 default cryptographic signatures will be checked: we require the main
1340 repository be signed, but not any additional repositories. If "gpg" is
1341 not available, by default signatures are not checked and no
1342 verification is carried out, but "tlmgr" still proceeds normally.
1343
1344 The behavior of the verification can be controlled by the command line
1345 and config file option "verify-repo" which takes one of the following
1346 values: "none", "main", or "all". With "none", no verification
1347 whatsoever is attempted. With "main" (the default) verification is
1348 required only for the main repository, and only if "gpg" is available;
1349 though attempted for all, missing signatures of subsidiary repositories
1350 will not result in an error. Finally, in the case of "all", "gpg" must
1351 be available and all repositories need to be signed.
1352
1353 In all cases, if a signature is checked and fails to verify, an error
1354 is raised.
1355
1356 Cryptographic verification requires checksum checking (described just
1357 above) to succeed, and a working GnuPG ("gpg") program (see below for
1358 search method). Then, unless cryptographic verification has been
1359 disabled, a signature file ("texlive.tlpdb.*.asc") of the checksum file
1360 is downloaded and the signature verified. The signature is created by
1361 the TeX Live Distribution GPG key 0x0D5E5D9106BAB6BC, which in turn is
1362 signed by Karl Berry's key 0x0716748A30D155AD and Norbert Preining's
1363 key 0x6CACA448860CDC13. All of these keys are obtainable from the
1364 standard key servers.
1365
1366 Additional trusted keys can be added using the "key" action.
1367
1368 Configuration of GnuPG invocation
1369 The executable used for GnuPG is searched as follows: If the
1370 environment variable "TL_GNUPG" is set, it is tested and used;
1371 otherwise "gpg" is checked; finally "gpg2" is checked.
1372
1373 Further adaptation of the "gpg" invocation can be made using the two
1374 environment variables "TL_GNUPGHOME", which is passed to "gpg" as the
1375 value for "--homedir", and "TL_GNUPGARGS", which replaces the default
1376 options "--no-secmem-warning --no-permission-warning".
1377
1379 "tlmgr" provides a restricted way, called ``user mode'', to manage
1380 arbitrary texmf trees in the same way as the main installation. For
1381 example, this allows people without write permissions on the
1382 installation location to update/install packages into a tree of their
1383 own.
1384
1385 "tlmgr" is switched into user mode with the command line option
1386 "--usermode". It does not switch automatically, nor is there any
1387 configuration file setting for it. Thus, this option has to be
1388 explicitly given every time user mode is to be activated.
1389
1390 This mode of "tlmgr" works on a user tree, by default the value of the
1391 "TEXMFHOME" variable. This can be overridden with the command line
1392 option "--usertree". In the following when we speak of the user tree
1393 we mean either "TEXMFHOME" or the one given on the command line.
1394
1395 Not all actions are allowed in user mode; "tlmgr" will warn you and not
1396 carry out any problematic actions. Currently not supported (and
1397 probably will never be) is the "platform" action. The "gui" action is
1398 currently not supported, but may be in a future release.
1399
1400 Some "tlmgr" actions don't need any write permissions and thus work the
1401 same in user mode and normal mode. Currently these are: "check",
1402 "help", "list", "print-platform", "print-platform-info", "search",
1403 "show", "version".
1404
1405 On the other hand, most of the actions dealing with package management
1406 do need write permissions, and thus behave differently in user mode, as
1407 described below: "install", "update", "remove", "option", "paper",
1408 "generate", "backup", "restore", "uninstall", "symlinks".
1409
1410 Before using "tlmgr" in user mode, you have to set up the user tree
1411 with the "init-usertree" action. This creates usertree"/web2c" and
1412 usertree"/tlpkg/tlpobj", and a minimal usertree"/tlpkg/texlive.tlpdb".
1413 At that point, you can tell "tlmgr" to do the (supported) actions by
1414 adding the "--usermode" command line option.
1415
1416 In user mode the file usertree"/tlpkg/texlive.tlpdb" contains only the
1417 packages that have been installed into the user tree using "tlmgr",
1418 plus additional options from the ``virtual'' package
1419 "00texlive.installation" (similar to the main installation's
1420 "texlive.tlpdb").
1421
1422 All actions on packages in user mode can only be carried out on
1423 packages that are known as "relocatable". This excludes all packages
1424 containing executables and a few other core packages. Of the 2500 or
1425 so packages currently in TeX Live the vast majority are relocatable and
1426 can be installed into a user tree.
1427
1428 Description of changes of actions in user mode:
1429
1430 User mode install
1431 In user mode, the "install" action checks that the package and all
1432 dependencies are all either relocated or already installed in the
1433 system installation. If this is the case, it unpacks all containers to
1434 be installed into the user tree (to repeat, that's either "TEXMFHOME"
1435 or the value of "--usertree") and add the respective packages to the
1436 user tree's "texlive.tlpdb" (creating it if need be).
1437
1438 Currently installing a collection in user mode installs all dependent
1439 packages, but in contrast to normal mode, does not install dependent
1440 collections. For example, in normal mode "tlmgr install
1441 collection-context" would install "collection-basic" and other
1442 collections, while in user mode, only the packages mentioned in
1443 "collection-context" are installed.
1444
1445 If a package shipping map files is installed in user mode, a backup of
1446 the user's "updmap.cfg" in "USERTREE/web2c/" is made, and then this
1447 file regenerated from the list of installed packages.
1448
1449 User mode backup, restore, remove, update
1450 In user mode, these actions check that all packages to be acted on are
1451 installed in the user tree before proceeding; otherwise, they behave
1452 just as in normal mode.
1453
1454 User mode generate, option, paper
1455 In user mode, these actions operate only on the user tree's
1456 configuration files and/or "texlive.tlpdb". creates configuration
1457 files in user tree
1458
1460 The main TeX Live repository contains a vast array of packages.
1461 Nevertheless, additional local repositories can be useful to provide
1462 locally-installed resources, such as proprietary fonts and house
1463 styles. Also, alternative package repositories distribute packages
1464 that cannot or should not be included in TeX Live, for whatever reason.
1465
1466 The simplest and most reliable method is to temporarily set the
1467 installation source to any repository (with the "-repository" or
1468 "option repository" command line options), and perform your operations.
1469
1470 When you are using multiple repositories over a sustained length of
1471 time, however, explicitly switching between them becomes inconvenient.
1472 Thus, it's possible to tell "tlmgr" about additional repositories you
1473 want to use. The basic command is "tlmgr repository add". The rest of
1474 this section explains further.
1475
1476 When using multiple repositories, one of them has to be set as the main
1477 repository, which distributes most of the installed packages. When you
1478 switch from a single repository installation to a multiple repository
1479 installation, the previous sole repository will be set as the main
1480 repository.
1481
1482 By default, even if multiple repositories are configured, packages are
1483 still only installed from the main repository. Thus, simply adding a
1484 second repository does not actually enable installation of anything
1485 from there. You also have to specify which packages should be taken
1486 from the new repository, by specifying so-called ``pinning'' rules,
1487 described next.
1488
1489 Pinning
1490 When a package "foo" is pinned to a repository, a package "foo" in any
1491 other repository, even if it has a higher revision number, will not be
1492 considered an installable candidate.
1493
1494 As mentioned above, by default everything is pinned to the main
1495 repository. Let's now go through an example of setting up a second
1496 repository and enabling updates of a package from it.
1497
1498 First, check that we have support for multiple repositories, and have
1499 only one enabled (as is the case by default):
1500
1501 $ tlmgr repository list
1502 List of repositories (with tags if set):
1503 /var/www/norbert/tlnet
1504
1505 Ok. Let's add the "tlcontrib" repository (this is a real repository
1506 hosted at <http://contrib.texlive.info>) with the tag "tlcontrib":
1507
1508 $ tlmgr repository add http://contrib.texlive.info/current tlcontrib
1509
1510 Check the repository list again:
1511
1512 $ tlmgr repository list
1513 List of repositories (with tags if set):
1514 http://contrib.texlive.info/current (tlcontrib)
1515 /var/www/norbert/tlnet (main)
1516
1517 Now we specify a pinning entry to get the package "classico" from
1518 "tlcontrib":
1519
1520 $ tlmgr pinning add tlcontrib classico
1521
1522 Check that we can find "classico":
1523
1524 $ tlmgr show classico
1525 package: classico
1526 ...
1527 shortdesc: URW Classico fonts
1528 ...
1529
1530 - install "classico":
1531
1532 $ tlmgr install classico
1533 tlmgr: package repositories:
1534 ...
1535 [1/1, ??:??/??:??] install: classico @tlcontrib [737k]
1536
1537 In the output here you can see that the "classico" package has been
1538 installed from the "tlcontrib" repository (@tlcontrib).
1539
1540 Finally, "tlmgr pinning" also supports removing certain or all packages
1541 from a given repository:
1542
1543 $ tlmgr pinning remove tlcontrib classico # remove just classico
1544 $ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib
1545
1546 A summary of the "tlmgr pinning" actions is given above.
1547
1549 The graphical user interface for "tlmgr" requires Perl/Tk
1550 <https://search.cpan.org/search?query=perl%2Ftk>. For Unix-based
1551 systems Perl/Tk (as well as Perl of course) has to be installed outside
1552 of TL. <https://tug.org/texlive/distro.html#perltk> has a list of
1553 invocations for some distros. For Windows the necessary modules are no
1554 longer shipped within TeX Live, so you'll have to have an external Perl
1555 available that includes them.
1556
1557 We are talking here about the GUI built into tlmgr itself, not about
1558 the other tlmgr GUIs, which are: tlshell (Tcl/Tk-based), tlcockpit
1559 (Java-based) and, only on Macs, TeX Live Utility. These are invoked as
1560 separate programs.
1561
1562 The GUI mode of tlmgr is started with the invocation "tlmgr gui";
1563 assuming Tk is loadable, the graphical user interface will be shown.
1564 The main window contains a menu bar, the main display, and a status
1565 area where messages normally shown on the console are displayed.
1566
1567 Within the main display there are three main parts: the "Display
1568 configuration" area, the list of packages, and the action buttons.
1569
1570 Also, at the top right the currently loaded repository is shown; this
1571 also acts as a button and when clicked will try to load the default
1572 repository. To load a different repository, see the "tlmgr" menu item.
1573
1574 Finally, the status area at the bottom of the window gives additional
1575 information about what is going on.
1576
1577 Main display
1578 Display configuration area
1579
1580 The first part of the main display allows you to specify (filter) which
1581 packages are shown. By default, all are shown. Changes here are
1582 reflected right away.
1583
1584 Status
1585 Select whether to show all packages (the default), only those
1586 installed, only those not installed, or only those with update
1587 available.
1588
1589 Category
1590 Select which categories are shown: packages, collections, and/or
1591 schemes. These are briefly explained in the "DESCRIPTION" section
1592 above.
1593
1594 Match
1595 Select packages matching for a specific pattern. By default, this
1596 searches both descriptions and filenames. You can also select a
1597 subset for searching.
1598
1599 Selection
1600 Select packages to those selected, those not selected, or all.
1601 Here, ``selected'' means that the checkbox in the beginning of the
1602 line of a package is ticked.
1603
1604 Display configuration buttons
1605 To the right there are three buttons: select all packages, select
1606 none (a.k.a. deselect all), and reset all these filters to the
1607 defaults, i.e., show all available.
1608
1609 Package list area
1610
1611 The second are of the main display lists all installed packages. If a
1612 repository is loaded, those that are available but not installed are
1613 also listed.
1614
1615 Double clicking on a package line pops up an informational window with
1616 further details: the long description, included files, etc.
1617
1618 Each line of the package list consists of the following items:
1619
1620 a checkbox
1621 Used to select particular packages; some of the action buttons (see
1622 below) work only on the selected packages.
1623
1624 package name
1625 The name (identifier) of the package as given in the database.
1626
1627 local revision (and version)
1628 If the package is installed the TeX Live revision number for the
1629 installed package will be shown. If there is a catalogue version
1630 given in the database for this package, it will be shown in
1631 parentheses. However, the catalogue version, unlike the TL
1632 revision, is not guaranteed to reflect what is actually installed.
1633
1634 remote revision (and version)
1635 If a repository has been loaded the revision of the package in the
1636 repository (if present) is shown. As with the local column, if a
1637 catalogue version is provided it will be displayed. And also as
1638 with the local column, the catalogue version may be stale.
1639
1640 short description
1641 The short description of the package.
1642
1643 Main display action buttons
1644
1645 Below the list of packages are several buttons:
1646
1647 Update all installed
1648 This calls "tlmgr update --all", i.e., tries to update all
1649 available packages. Below this button is a toggle to allow
1650 reinstallation of previously removed packages as part of this
1651 action.
1652
1653 The other four buttons only work on the selected packages, i.e.,
1654 those where the checkbox at the beginning of the package line is
1655 ticked.
1656
1657 Update
1658 Update only the selected packages.
1659
1660 Install
1661 Install the selected packages; acts like "tlmgr install", i.e.,
1662 also installs dependencies. Thus, installing a collection installs
1663 all its constituent packages.
1664
1665 Remove
1666 Removes the selected packages; acts like "tlmgr remove", i.e., it
1667 will also remove dependencies of collections (but not dependencies
1668 of normal packages).
1669
1670 Backup
1671 Makes a backup of the selected packages; acts like "tlmgr backup".
1672 This action needs the option "backupdir" set (see "Options -"
1673 General>).
1674
1675 Menu bar
1676 The following entries can be found in the menu bar:
1677
1678 "tlmgr" menu
1679 The items here load various repositories: the default as specified
1680 in the TeX Live database, the default network repository, the
1681 repository specified on the command line (if any), and an
1682 arbitrarily manually-entered one. Also has the so-necessary "quit"
1683 operation.
1684
1685 "Options menu"
1686 Provides access to several groups of options: "Paper"
1687 (configuration of default paper sizes), "Platforms" (only on Unix,
1688 configuration of the supported/installed platforms), "GUI Language"
1689 (select language used in the GUI interface), and "General"
1690 (everything else).
1691
1692 Several toggles are also here. The first is "Expert options",
1693 which is set by default. If you turn this off, the next time you
1694 start the GUI a simplified screen will be shown that display only
1695 the most important functionality. This setting is saved in the
1696 configuration file of "tlmgr"; see "CONFIGURATION FILE FOR TLMGR"
1697 for details.
1698
1699 The other toggles are all off by default: for debugging output, to
1700 disable the automatic installation of new packages, and to disable
1701 the automatic removal of packages deleted from the server. Playing
1702 with the choices of what is or isn't installed may lead to an
1703 inconsistent TeX Live installation; e.g., when a package is
1704 renamed.
1705
1706 "Actions menu"
1707 Provides access to several actions: update the filename database
1708 (aka "ls-R", "mktexlsr", "texhash"), rebuild all formats
1709 ("fmtutil-sys --all"), update the font map database ("updmap-sys"),
1710 restore from a backup of a package, and use of symbolic links in
1711 system directories (not on Windows).
1712
1713 The final action is to remove the entire TeX Live installation
1714 (also not on Windows).
1715
1716 "Help menu"
1717 Provides access to the TeX Live manual (also on the web at
1718 <https://tug.org/texlive/doc.html>) and the usual ``About'' box.
1719
1720 GUI options
1721 Some generic Perl/Tk options can be specified with "tlmgr gui" to
1722 control the display:
1723
1724 "-background" color
1725 Set background color.
1726
1727 "-font "" fontname fontsize """
1728 Set font, e.g., "tlmgr gui -font "helvetica 18"". The argument to
1729 "-font" must be quoted, i.e., passed as a single string.
1730
1731 "-foreground" color
1732 Set foreground color.
1733
1734 "-geometry" geomspec
1735 Set the X geometry, e.g., "tlmgr gui -geometry 1024x512-0+0"
1736 creates the window of (approximately) the given size in the upper-
1737 right corner of the display.
1738
1739 "-xrm" xresource
1740 Pass the arbitrary X resource string xresource.
1741
1742 A few other obscure options are recognized but not mentioned here. See
1743 the Perl/Tk documentation (<https://search.cpan.org/perldoc?Tk>) for
1744 the complete list, and any X documentation for general information.
1745
1747 With the "--machine-readable" option, "tlmgr" writes to stdout in the
1748 fixed line-oriented format described here, and the usual informational
1749 messages for human consumption are written to stderr (normally they are
1750 written to stdout). The idea is that a program can get all the
1751 information it needs by reading stdout.
1752
1753 Currently this option only applies to the update, install, and "option"
1754 actions.
1755
1756 Machine-readable "update" and "install" output
1757 The output format is as follows:
1758
1759 fieldname "\t" value
1760 ...
1761 "end-of-header"
1762 pkgname status localrev serverrev size runtime esttot
1763 ...
1764 "end-of-updates"
1765 other output from post actions, not in machine readable form
1766
1767 The header section currently has two fields: "location-url" (the
1768 repository source from which updates are being drawn), and
1769 "total-bytes" (the total number of bytes to be downloaded).
1770
1771 The localrev and serverrev fields for each package are the revision
1772 numbers in the local installation and server repository, respectively.
1773 The size field is the number of bytes to be downloaded, i.e., the size
1774 of the compressed tar file for a network installation, not the unpacked
1775 size. The runtime and esttot fields are only present for updated and
1776 auto-install packages, and contain the currently passed time since
1777 start of installation/updates and the estimated total time.
1778
1779 Line endings may be either LF or CRLF depending on the current
1780 platform.
1781
1782 "location-url" location
1783 The location may be a url (including "file:///foo/bar/..."), or a
1784 directory name ("/foo/bar"). It is the package repository from
1785 which the new package information was drawn.
1786
1787 "total-bytes" count
1788 The count is simply a decimal number, the sum of the sizes of all
1789 the packages that need updating or installing (which are listed
1790 subsequently).
1791
1792 Then comes a line with only the literal string "end-of-header".
1793
1794 Each following line until a line with literal string "end-of-updates"
1795 reports on one package. The fields on each line are separated by a
1796 tab. Here are the fields.
1797
1798 pkgname
1799 The TeX Live package identifier, with a possible platform suffix
1800 for executables. For instance, "pdftex" and "pdftex.i386-linux"
1801 are given as two separate packages, one on each line.
1802
1803 status
1804 The status of the package update. One character, as follows:
1805
1806 "d" The package was removed on the server.
1807
1808 "f" The package was removed in the local installation, even
1809 though a collection depended on it. (E.g., the user ran
1810 "tlmgr remove --force".)
1811
1812 "u" Normal update is needed.
1813
1814 "r" Reversed non-update: the locally-installed version is newer
1815 than the version on the server.
1816
1817 "a" Automatically-determined need for installation, the package
1818 is new on the server and is (most probably) part of an
1819 installed collection.
1820
1821 "i" Package will be installed and isn't present in the local
1822 installation (action install).
1823
1824 "I" Package is already present but will be reinstalled (action
1825 install).
1826
1827 localrev
1828 The revision number of the installed package, or "-" if it is not
1829 present locally.
1830
1831 serverrev
1832 The revision number of the package on the server, or "-" if it is
1833 not present on the server.
1834
1835 size
1836 The size in bytes of the package on the server. The sum of all the
1837 package sizes is given in the "total-bytes" header field mentioned
1838 above.
1839
1840 runtime
1841 The run time since start of installations or updates.
1842
1843 esttot
1844 The estimated total time.
1845
1846 Machine-readable "option" output
1847 The output format is as follows:
1848
1849 key "\t" value
1850
1851 If a value is not saved in the database the string "(not set)" is
1852 shown.
1853
1854 If you are developing a program that uses this output, and find that
1855 changes would be helpful, do not hesitate to write the mailing list.
1856
1858 "tlmgr" uses many of the standard TeX environment variables, as
1859 reported by, e.g., "tlmgr conf" ("conf").
1860
1861 In addition, for ease in scripting and debugging, "tlmgr" looks for the
1862 following environment variables. These are not of interest for normal
1863 user installations.
1864
1865 "TEXLIVE_COMPRESSOR"
1866 This option allows selecting a different compressor program for
1867 backups and intermediate rollback containers. The order of
1868 selection is:
1869
1870 1. If the environment variable "TEXLIVE_COMPRESSOR" is
1871 defined, use it; abort if it doesn't work. Possible values:
1872 "lz4", "gzip", "xz". The necessary options are added
1873 internally.
1874
1875 2. If lz4 is available (either from the system or TL) and
1876 working, use that.
1877
1878 3. If gzip is available (from the system) and working, use
1879 that.
1880
1881 4. If xz is available (either from the system or TL) and
1882 working, use that.
1883
1884 lz4 and gzip are much faster in creating tlmgr's local backups.
1885 The unconditional use of xz for the tlnet containers is unaffected,
1886 to minimize download sizes.
1887
1888 "TEXLIVE_DOWNLOADER"
1889 "TL_DOWNLOAD_PROGRAM"
1890 "TL_DOWNLOAD_ARGS"
1891 These options allow selecting different download programs then the
1892 ones automatically selected by the installer. The order of
1893 selection is:
1894
1895 1. If the environment variable "TEXLIVE_DOWNLOADER" is
1896 defined, use it; abort if the specified program doesn't
1897 work. Possible values: "lwp", "curl", "wget". The necessary
1898 options are added internally.
1899
1900 2. If the environment variable "TL_DOWNLOAD_PROGRAM" is
1901 defined (can be any value), use it together with
1902 "TL_DOWNLOAD_ARGS"; abort if it doesn't work.
1903
1904 3. If LWP is available and working, use that (by far the most
1905 efficient method, as it supports persistent downloads).
1906
1907 4. If curl is available (from the system) and working, use
1908 that.
1909
1910 5. If wget is available (either from the system or TL) and
1911 working, use that.
1912
1913 TL provides "wget" binaries for platforms where necessary, so some
1914 download method should always be available.
1915
1916 "TEXLIVE_PREFER_OWN"
1917 By default, compression and download programs provided by the
1918 system, i.e., found along "PATH" are preferred over those shipped
1919 with TeX Live.
1920
1921 This can create problems with systems that are too old, and so can
1922 be overridden by setting the environment variable
1923 "TEXLIVE_PREFER_OWN" to 1. In this case, executables shipped with
1924 TL will be preferred.
1925
1926 Extra compression/download programs not provided by TL, such as
1927 gzip, lwp, and curl, are still checked for on the system and used
1928 if available, per the above. "TEXLIVE_PREFER_OWN" only applies when
1929 the program being checked for is shipped with TL, namely the lz4
1930 and xz compressors and wget downloader.
1931
1932 Exception: on Windows, the "tar.exe" shipped with TL is always
1933 used, regardless of any setting.
1934
1936 This script and its documentation were written for the TeX Live
1937 distribution (<https://tug.org/texlive>) and both are licensed under
1938 the GNU General Public License Version 2 or later.
1939
1940 $Id: tlmgr.pl 50796 2019-04-05 22:43:08Z karl $
1941
1942
1943
1944perl v5.28.1 2019-04-05 TLMGR(1)