summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl1087
1 files changed, 558 insertions, 529 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index eaa3134334c..afa73537ef8 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
# $Id$
#
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Norbert Preining
+# Copyright 2008-2013 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
@@ -5924,420 +5924,392 @@ Gives version information (same as C<--version>).
If C<-v> has been given the revisions of the used modules are reported, too.
-=head2 gui
-
-Start the graphical user interface. See B<GUI> below.
+=head2 backup [--clean[=I<N>]] [--backupdir I<dir>] [--all | I<pkg>]...
+If the C<--clean> option is not specified, this action makes a backup of
+the given packages, or all packages given C<--all>. These backups are
+saved to the value of the C<--backupdir> option, if that is an existing and
+writable directory. If C<--backupdir> is not given, the C<backupdir>
+option setting in the TLPDB is used, if present. If both are missing,
+no backups are made.
-=head2 install [I<option>]... I<pkg>...
+If the C<--clean> option is specified, backups are pruned (removed)
+instead of saved. The optional integer value I<N> may be specified to
+set the number of backups that will be retained when cleaning. If C<N>
+is not given, the value of the C<autobackup> option is used. If both are
+missing, an error is issued. For more details of backup pruning, see
+the C<option> action.
-Install each I<pkg> given on the command line. By default this installs
-all packages on which the given I<pkg>s are dependent, also. Options:
+Options:
=over 4
-=item B<--file>
+=item B<--backupdir> I<directory>
-Instead of fetching a package from the installation repository, use
-the packages files given on the command line. These files need
-to be proper TeX Live package files (with contained tlpobj file).
+Overrides the C<backupdir> option setting in the TLPDB.
+The I<directory> argument is required and must specify an existing,
+writable directory where backups are to be placed.
-=item B<--reinstall>
+=item B<--all>
-Reinstall a package (including dependencies for collections) even if it
-seems to be already installed (i.e, is present in the TLPDB). This is
-useful to recover from accidental removal of files in the hierarchy.
+If C<--clean> is not specified, make a backup of all packages in the TeX
+Live installation; this will take quite a lot of space and time. If
+C<--clean> is specified, all packages are pruned.
-When re-installing, only dependencies on normal packages are followed
-(not those of category Scheme or Collection).
+=item B<--clean>[=I<N>]
-=item B<--no-depends>
+Instead of making backups, prune the backup directory of old backups, as
+explained above. The optional integer argument I<N> overrides the
+C<autobackup> option set in the TLPDB. You must use C<--all> or a list
+of packages together with this option, as desired.
-Do not install dependencies. (By default, installing a package ensures
-that all dependencies of this package are fulfilled.)
+=item B<--dry-run>
-=item B<--no-depends-at-all>
+Nothing is actually backed up or removed; instead, the actions to be
+performed are written to the terminal.
-When you install a package which ships binary files the respective
-binary package will also be installed. That is, for a package C<foo>,
-the package C<foo.i386-linux> will also be installed on an C<i386-linux>
-system. This switch suppresses this behavior, and also implies
-C<--no-depends>. Don't use it unless you are sure of what you are
-doing.
+=back
-=item B<--dry-run>
-Nothing is actually installed; instead, the actions to be performed are
-written to the terminal.
+=head2 candidates
-=item B<--force>
+=over 4
-If updates to C<tlmgr> itself (or other parts of the basic
-infrastructure) are present, C<tlmgr> will bail out and not perform the
-installation unless this option is given. Not recommended.
+=item B<candidates I<pkg>>
-=back
+Shows the available candidate repositories for package I<pkg>.
+See L</"MULTIPLE REPOSITORIES"> below.
-=head2 update [I<option>]... [I<pkg>]...
+=back
-Updates the packages given as arguments to the latest version available
-at the installation source. Either C<--all> or at least one I<pkg> name
-must be specified. Options:
+=head2 check [I<option>]... [files|depends|executes|runfiles|all]
+
+Executes one (or all) check(s) on the consistency of the installation.
=over 4
-=item B<--all>
+=item B<files>
-Update all installed packages except for C<tlmgr> itself. Thus, if
-updates to C<tlmgr> itself are present, this will simply give an error,
-unless also the option C<--force> or C<--self> is given. (See below.)
+Checks that all files listed in the local TLPDB (C<texlive.tlpdb>) are
+actually present, and lists those missing.
-In addition to updating the installed packages, during the update of a
-collection the local installation is (by default) synchronized to the
-status of the collection on the server, for both additions and removals.
+=item B<depends>
-This means that if a package has been removed on the server (and thus
-has also been removed from the respective collection), C<tlmgr> will
-remove the package in the local installation. This is called
-``auto-remove'' and is announced as such when using the option
-C<--list>. This auto-removal can be suppressed using the option
-C<--no-auto-remove>.
+Lists those packages which occur as dependencies in an installed collections,
+but are themselves not installed, and those packages that are not
+contained in any collection.
-Analogously, if a package has been added to a collection on the server
-that is also installed locally, it will be added to the local
-installation. This is called ``auto-install'' and is announced as such
-when using the option C<--list>. This auto-installation can be
-suppressed using the option C<--no-auto-install>.
+If you call C<tlmgr check collections> this test will be carried out
+instead since former versions for C<tlmgr> called it that way.
-An exception to the collection dependency checks (including the
-auto-installation of packages just mentioned) are those that have been
-``forcibly removed'' by you, that is, you called C<tlmgr remove --force>
-on them. (See the C<remove> action documentation.) To reinstall any
-such forcibly removed packages use C<--reinstall-forcibly-removed>.
+=item B<executes>
-If you want to exclude some packages from the current update run (e.g.,
-due to a slow link), see the C<--exclude> option below.
+Check that the files referred to by C<execute> directives in the TeX
+Live Database are present.
-=item B<--self>
+=item B<runfiles>
-Update C<tlmgr> itself (that is, the infrastructure packages) if updates
-to it are present. On Windows this includes updates to the private Perl
-interpreter shipped inside TeX Live.
+List those filenames that are occurring more than one time in the runfiles.
-If this option is given together with either C<--all> or a list of
-packages, then C<tlmgr> will be updated first and, if this update
-succeeds, the new version will be restarted to complete the rest of the
-updates.
+=back
-In short:
+Options:
- tlmgr update --self # update infrastructure only
- tlmgr update --self --all # update infrastructure and all packages
- tlmgr update --force --all # update all packages but *not* infrastructure
- # ... this last at your own risk, not recommended!
+=over 4
-=item B<--dry-run>
+=item B<--use-svn>
-Nothing is actually installed; instead, the actions to be performed are
-written to the terminal. This is a more detailed report than C<--list>.
+Use the output of C<svn status> instead of listing the files; for
+checking the TL development repository.
-=item B<--list> [I<pkg>]
+=back
-Concisely list the packages which would be updated, newly installed, or
-removed, without actually changing anything.
-If C<--all> is also given, all available updates are listed.
-If C<--self> is given, but not C<--all>, only updates to the
-critical packages (tlmgr, texlive infrastructure, perl on Windows, etc.)
-are listed.
-If neither C<--all> nor C<--self> is given, and in addition no I<pkg> is
-given, then C<--all> is assumed (thus, C<tlmgr update --list> is the
-same as C<tlmgr update --list --all>).
-If neither C<--all> nor C<--self> is given, but specific package names are
-given, those packages are checked for updates.
-=item B<--exclude> I<pkg>
+=head2 conf [texmf|tlmgr [I<key> [I<value>]]]
-Exclude I<pkg> from the update process. If this option is given more
-than once, its arguments accumulate.
+With only C<conf>, show general configuration information for TeX Live,
+including active configuration files, path settings, and more. This is
+like the C<texconfig conf> call, but works on all supported platforms.
-An argument I<pkg> excludes both the package I<pkg> itself and all
-its related platform-specific packages I<pkg.ARCH>. For example,
+With either C<conf texmf> or C<conf tlmgr> given in addition, shows all
+key/value pairs (i.e., all settings) as saved in C<ROOT/texmf.cnf> or
+the tlmgr configuration file (see below), respectively.
- tlmgr update --all --exclude a2ping
+If I<key> is given in addition, shows the value of only that given
+I<key> in the respective file.
-will not update C<a2ping>, C<a2ping.i386-linux>, or
-any other C<a2ping.>I<ARCH> package.
+If I<value> is given in addition, I<key> is set to I<value> in the
+respective file. I<No error checking is done!>
-If this option specifies a package that would otherwise be a candidate
-for auto-installation, auto-removal, or reinstallation of a forcibly
-removed package, C<tlmgr> quits with an error message. Excludes are not
-supported in these circumstances.
+Practical application: if the execution of (some or all) system commands
+via C<\write18> was left enabled during installation, you can disable
+it afterwards:
+
+ tlmgr conf texmf shell_escape 0
-=item B<--no-auto-remove> [I<pkg>]...
+Warning: The general facility is here, but tinkering with settings in
+this way is very strongly discouraged. Again, no error checking is
+done, so any sort of breakage is possible.
-Under normal circumstances C<tlmgr> tries to remove packages which have
-disappeared on the server, as described above under C<--all>. This
-option prevents any such removals, either for all packages (with
-C<--all>), or the given I<pkg> names.
-=item B<--no-auto-install> [I<pkg>]...
+=head2 dump-tlpdb [--local|--remote]
-Under normal circumstances C<tlmgr> will install packages which are new
-on the server, as described above under C<--all>. This option prevents
-any such automatic installation, either for all packages (with
-C<--all>), or the given I<pkg> names.
+Dump complete local or remote TLPDB to standard output, as-is. The
+output is analogous to the C<--machine-readable> output; see
+L<MACHINE-READABLE OUTPUT> section.
-Furthermore, after the C<tlmgr> run using this has finished, the
-packages that would have been auto-installed I<will be considered as
-forcibly removed>. So, if C<foobar> is the only new package on the
-server, then
+Options:
- tlmgr update --all --no-auto-install
+=over 4
-is equivalent to
+=item B<--local>
- tlmgr update --all
- tlmgr remove --force foobar
+Dump the local tlpdb.
-=item B<--reinstall-forcibly-removed>
+=item B<--remote>
-Under normal circumstances C<tlmgr> will not install packages that have
-been forcibly removed by the user; that is, removed with C<remove
---force>, or whose installation was prohibited by C<--no-auto-install>
-during an earlier update.
+Dump the remote tlpdb.
-This option makes C<tlmgr> ignore the forcible removals and re-install
-all such packages. This can be used to completely synchronize an
-installation with the server's idea of what is available:
+=back
- tlmgr update --reinstall-forcibly-removed --all
+Exactly one of C<--local> and C<--remote> must be given.
-=item B<--backup> and B<--backupdir> I<directory>
+In either case, the first line of the output specifies the repository
+location, in this format:
-These two options control the creation of backups of packages I<before>
-updating; that is, backup of packages as currently installed. If
-neither of these options are given, no backup package will be saved. If
-C<--backupdir> is given and specifies a writable directory then a backup
-will be made in that location. If only C<--backup> is given, then a
-backup will be made to the directory previously set via the C<option>
-action (see below). If both are given then a backup will be made to the
-specified I<directory>.
+ "location-url" "\t" location
-You can set options via the C<option> action to automatically create
-backups for all packages, and/or keep only a certain number of
-backups. Please see the C<option> action for details.
+where C<location-url> is the literal field name, followed by a tab, and
+I<location> is the file or url to the repository.
-C<tlmgr> always makes a temporary backup when updating packages, in case
-of download or other failure during an update. In contrast, the purpose
-of this C<--backup> option is to allow you to save a persistent backup
-in case the actual I<content> of the update causes problems, e.g.,
-introduces an incompatibility.
+Line endings may be either LF or CRLF depending on the current platform.
-The C<restore> action explains how to restore from a backup.
-=item B<--no-depends>
+=head2 generate [I<option>]... I<what>
-If you call for updating a package normally all depending packages
-will also be checked for updates and updated if necessary. This switch
-suppresses this behavior.
+=over 4
-=item B<--no-depends-at-all>
+=item B<generate language>
-See above under B<install> (and beware).
+=item B<generate language.dat>
-=item B<--force>
+=item B<generate language.def>
-Force update of normal packages, without updating C<tlmgr> itself
-(unless the C<--self> option is also given). Not recommended.
+=item B<generate language.dat.lua>
-Also, C<update --list> is still performed regardless of this option.
+=item B<generate fmtutil>
=back
-If the package on the server is older than the package already installed
-(e.g., if the selected mirror is out of date), C<tlmgr> does not
-downgrade. Also, packages for uninstalled platforms are not installed.
-
-
-=head2 backup [--clean[=I<N>]] [--backupdir I<dir>] [--all | I<pkg>]...
-
-If the C<--clean> option is not specified, this action makes a backup of
-the given packages, or all packages given C<--all>. These backups are
-saved to the value of the C<--backupdir> option, if that is an existing and
-writable directory. If C<--backupdir> is not given, the C<backupdir>
-option setting in the TLPDB is used, if present. If both are missing,
-no backups are made.
+The C<generate> action overwrites any manual changes made in the
+respective files: it recreates them from scratch based on the
+information of the installed packages, plus local adaptions.
+The TeX Live installer and C<tlmgr> routinely call C<generate> for
+all of these files.
-If the C<--clean> option is specified, backups are pruned (removed)
-instead of saved. The optional integer value I<N> may be specified to
-set the number of backups that will be retained when cleaning. If C<N>
-is not given, the value of the C<autobackup> option is used. If both are
-missing, an error is issued. For more details of backup pruning, see
-the C<option> action.
+For managing your own fonts, please read the C<updmap --help>
+information and/or L<http://tug.org/fonts/fontinstall.html>.
-Options:
+In more detail: C<generate> remakes any of the configuration files
+C<language.dat>, C<language.def>, C<language.dat.lua>, and
+C<fmtutil.cnf>, from the information present in the local TLPDB, plus
+locally-maintained files.
-=over 4
+The locally-maintained files are C<language-local.dat>,
+C<language-local.def>, C<language-local.dat.lua>, or
+C<fmtutil-local.cnf>, searched for in C<TEXMFLOCAL> in the respective
+directories. If local additions are present, the final file is made by
+starting with the main file, omitting any entries that the local file
+specifies to be disabled, and finally appending the local file.
-=item B<--backupdir> I<directory>
+(Historical note: The formerly supported C<updmap-local.cfg> is no longer
+read, since C<updmap> now supports multiple C<updmap.cfg> files. Thus,
+local additions can and should be put into an C<updmap.cfg> file in
+C<TEXMFLOCAL>. The C<generate updmap> action no longer exists.)
-Overrides the C<backupdir> option setting in the TLPDB.
-The I<directory> argument is required and must specify an existing,
-writable directory where backups are to be placed.
+Local files specify entries to be disabled with a comment line, namely
+one of these:
-=item B<--all>
+ #!NAME
+ %!NAME
+ --!NAME
-If C<--clean> is not specified, make a backup of all packages in the TeX
-Live installation; this will take quite a lot of space and time. If
-C<--clean> is specified, all packages are pruned.
+where C<fmtutil.cnf> uses C<#>, C<language.dat> and C<language.def> use
+C<%>, and C<language.dat.lua> use C<-->. In all cases, the I<name> is
+the respective format name or hyphenation pattern identifier.
+Examples:
-=item B<--clean>[=I<N>]
+ #!pdflatex
+ %!german
+ --!usenglishmax
-Instead of making backups, prune the backup directory of old backups, as
-explained above. The optional integer argument I<N> overrides the
-C<autobackup> option set in the TLPDB. You must use C<--all> or a list
-of packages together with this option, as desired.
+(Of course, you're not likely to actually want to disable those
+particular items. They're just examples.)
-=item B<--dry-run>
+After such a disabling line, the local file can include another entry
+for the same item, if a different definition is desired. In general,
+except for the special disabling lines, the local files follow the same
+syntax as the master files.
-Nothing is actually backed up or removed; instead, the actions to be
-performed are written to the terminal.
+The form C<generate language> recreates all three files C<language.dat>,
+C<language.def>, and C<language.dat.lua>, while the forms with an
+extension recreates only that given language file.
-=back
+Options:
+=over 4
-=head2 restore [--backupdir I<dir>] [--all | I<pkg> [I<rev>]]
+=item B<--dest> I<output_file>
-Restore a package from a previously-made backup.
+specifies the output file (defaults to the respective location in
+C<TEXMFSYSVAR>). If C<--dest> is given to C<generate language>, it
+serves as a basename onto which C<.dat> will be appended for the name of
+the C<language.dat> output file, C<.def> will be appended to the value
+for the name of the C<language.def> output file, and C<.dat.lua> to the
+name of the C<language.dat.lua> file. (This is just to avoid
+overwriting; if you want a specific name for each output file, we
+recommend invoking C<tlmgr> twice.)
-If C<--all> is given, try to restore the latest revision of all
-package backups found in the backup directory.
+=item B<--localcfg> I<local_conf_file>
-Otherwise, if neither I<pkg> nor I<rev> are given, list the available backup
-revisions for all packages.
+specifies the (optional) local additions (defaults to the respective
+location in C<TEXMFLOCAL>).
-With I<pkg> given but no I<rev>, list all available backup revisions of
-I<pkg>.
+=item B<--rebuild-sys>
-When listing available packages tlmgr shows the revision and in
-parenthesis the creation time if available (in format yyyy-mm-dd hh:mm).
+tells tlmgr to run necessary programs after config files have been
+regenerated. These are:
+C<fmtutil-sys --all> after C<generate fmtutil>,
+C<fmtutil-sys --byhyphen .../language.dat> after C<generate language.dat>,
+and
+C<fmtutil-sys --byhyphen .../language.def> after C<generate language.def>.
-With both I<pkg> and I<rev>, tries to restore the package from the
-specified backup.
+These subsequent calls cause the newly-generated files to actually take
+effect. This is not done by default since those calls are lengthy
+processes and one might want to made several related changes in
+succession before invoking these programs.
-Options:
+=back
-=over 4
+The respective locations are as follows:
-=item B<--all>
+ tex/generic/config/language.dat (and language-local.dat);
+ tex/generic/config/language.def (and language-local.def);
+ tex/generic/config/language.dat.lua (and language-local.dat.lua);
+ web2c/fmtutil.cnf (and fmtutil-local.cnf);
-Try to restore the latest revision of all package backups found in the
-backup directory. Additional non-option arguments (like I<pkg>) are not
-allowed.
-=item B<--backupdir> I<directory>
+=head2 gui
-Specify the directory where the backups are to be found. If not given it
-will be taken from the configuration setting in the TLPDB.
+Start the graphical user interface. See B<GUI> below.
-=item B<--dry-run>
-Nothing is actually restored; instead, the actions to be performed are
-written to the terminal.
+=head2 info [I<option>...] [collections|schemes|I<pkg>...]
-=item B<--force>
+With no argument, lists all packages available at the package
+repository, prefixing those already installed with C<i>.
-Don't ask questions.
+With the single word C<collections> or C<schemes> as the argument, lists
+the request type instead of all packages.
-=back
+With any other arguments, display information about I<pkg>: the name,
+category, short and long description, installation status, and TeX Live
+revision number. If I<pkg> is not locally installed, searches in the
+remote installation source.
+It also displays information taken from the TeX Catalogue, namely the
+package version, date, and license. Consider these, especially the
+package version, as approximations only, due to timing skew of the
+updates of the different pieces. By contrast, the C<revision> value
+comes directly from TL and is reliable.
-=head2 remove [I<option>]... I<pkg>...
+The former actions C<show> and C<list> are merged into this action,
+but are still supported for backward compatibility.
-Remove each I<pkg> specified. Removing a collection removes all package
-dependencies (unless C<--no-depends> is specified), but not any
-collection dependencies of that collection. However, when removing a
-package, dependencies are never removed. Options:
+Options:
=over 4
-=item B<--no-depends>
+=item B<--list>
-Do not remove dependent packages.
+If the option C<--list> is given with a package, the list of contained
+files is also shown, including those for platform-specific dependencies.
+When given with schemes and collections, C<--list> outputs their
+dependencies in a similar way.
-=item B<--no-depends-at-all>
+=item B<--only-installed>
-See above under B<install> (and beware).
+If this options is given, the installation source will
+not be used; only locally installed packages, collections, or schemes
+are listed.
+(Does not work for listing of packages for now)
-=item B<--force>
+=item B<--taxonomy>
-By default, removal of a package or collection that is a dependency of
-another collection or scheme is not allowed. With this option, the
-package will be removed unconditionally. Use with care.
+=item B<--keyword>
-A package that has been removed using the C<--force> option because it
-is still listed in an installed collection or scheme will not be
-updated, and will be mentioned as B<forcibly removed> in the output of
-B<tlmgr update --list>.
+=item B<--functionality>
-=item B<--dry-run>
+=item B<--characterization>
-Nothing is actually removed; instead, the actions to be performed are
-written to the terminal.
+In addition to the normal data displayed, also display information for
+given packages from the corresponding taxonomy (or all of them). See
+L</"TAXONOMIES"> below for details.
=back
-=head2 repository
-
-=over 4
-
-=item B<repository list>
+=head2 install [I<option>]... I<pkg>...
-=item B<repository list I<path|tag>>
+Install each I<pkg> given on the command line. By default this installs
+all packages on which the given I<pkg>s are dependent, also. Options:
-=item B<repository add I<path> [I<tag>]>
+=over 4
-=item B<repository remove I<path|tag>>
+=item B<--file>
-=item B<repository set I<path>[#I<tag>] [I<path>[#I<tag>] ...]>
+Instead of fetching a package from the installation repository, use
+the packages files given on the command line. These files need
+to be proper TeX Live package files (with contained tlpobj file).
-This action manages the list of repositories. See L</"MULTIPLE
-REPOSITORIES"> below for detailed explanations.
+=item B<--reinstall>
-The first form (C<list>) lists all configured repositories and the
-respective tags if set. If a path, url, or tag is given after the
-C<list> keyword, it is interpreted as source from where to
-initialize a TeX Live Database and lists the contained packages.
-This can also be an up-to-now not used repository, both locally
-and remote. If one pass in addition C<--with-platforms>, for each
-package the available platforms (if any) are listed, too.
+Reinstall a package (including dependencies for collections) even if it
+seems to be already installed (i.e, is present in the TLPDB). This is
+useful to recover from accidental removal of files in the hierarchy.
-The third form (C<add>) adds a repository
-(optionally attaching a tag) to the list of repositories. The forth
-form (C<remove>) removes a repository, either by full path/url, or by
-tag. The last form (C<set>) sets the list of repositories to the items
-given on the command line, not keeping previous settings
+When re-installing, only dependencies on normal packages are followed
+(not those of category Scheme or Collection).
-In all cases, one of the repositories must be tagged as C<main>;
-otherwise, all operations will fail!
+=item B<--no-depends>
-=back
+Do not install dependencies. (By default, installing a package ensures
+that all dependencies of this package are fulfilled.)
+=item B<--no-depends-at-all>
-=head2 candidates
+When you install a package which ships binary files the respective
+binary package will also be installed. That is, for a package C<foo>,
+the package C<foo.i386-linux> will also be installed on an C<i386-linux>
+system. This switch suppresses this behavior, and also implies
+C<--no-depends>. Don't use it unless you are sure of what you are
+doing.
-=over 4
+=item B<--dry-run>
-=item B<candidates I<pkg>>
+Nothing is actually installed; instead, the actions to be performed are
+written to the terminal.
-Shows the available candidate repositories for package I<pkg>.
-See L</"MULTIPLE REPOSITORIES"> below.
+=item B<--force>
+If updates to C<tlmgr> itself (or other parts of the basic
+infrastructure) are present, C<tlmgr> will bail out and not perform the
+installation unless this option is given. Not recommended.
=back
+
=head2 option
=over 4
@@ -6437,33 +6409,6 @@ to the registry and the menus are done for all users on the system
instead of only the current user. All three options are on by default.
-=head2 conf [texmf|tlmgr [I<key> [I<value>]]]
-
-With only C<conf>, show general configuration information for TeX Live,
-including active configuration files, path settings, and more. This is
-like the C<texconfig conf> call, but works on all supported platforms.
-
-With either C<conf texmf> or C<conf tlmgr> given in addition, shows all
-key/value pairs (i.e., all settings) as saved in C<ROOT/texmf.cnf> or
-the tlmgr configuration file (see below), respectively.
-
-If I<key> is given in addition, shows the value of only that given
-I<key> in the respective file.
-
-If I<value> is given in addition, I<key> is set to I<value> in the
-respective file. I<No error checking is done!>
-
-Practical application: if the execution of (some or all) system commands
-via C<\write18> was left enabled during installation, you can disable
-it afterwards:
-
- tlmgr conf texmf shell_escape 0
-
-Warning: The general facility is here, but tinkering with settings in
-this way is very strongly discouraged. Again, no error checking is
-done, so any sort of breakage is possible.
-
-
=head2 paper
=over 4
@@ -6499,6 +6444,63 @@ settings for some programs, notably C<dvips>. C<tlmgr> does not support
those extra settings at present.
+=head2 path [--w32mode=user|admin] [add|remove]
+
+On Unix, merely adds or removes symlinks for binaries, man pages, and
+info pages in the system directories specified by the respective options
+(see the L<option> description above). Does not change any
+initialization files, either system or personal.
+
+On Windows, the registry part where the binary directory is added or
+removed is determined in the following way:
+
+If the user has admin rights, and the option C<--w32mode> is not given,
+the setting I<w32_multi_user> determines the location (i.e., if it is
+on then the system path, otherwise the user path is changed).
+
+If the user has admin rights, and the option C<--w32mode> is given, this
+option determines the path to be adjusted.
+
+If the user does not have admin rights, and the option C<--w32mode>
+is not given, and the setting I<w32_multi_user> is off, the user path
+is changed, while if the setting I<w32_multi_user> is on, a warning is
+issued that the caller does not have enough privileges.
+
+If the user does not have admin rights, and the option C<--w32mode>
+is given, it must be B<user> and the user path will be adjusted. If a
+user without admin rights uses the option C<--w32mode admin> a warning
+is issued that the caller does not have enough privileges.
+
+
+=head2 pinning
+
+The pinning action manages the pinning file, see L<Pinning> for details.
+
+=over 4
+
+=item B<pinning show>
+
+Shows the current pinning data.
+
+=item B<pinning check>
+
+Not implemented at the moment.
+
+=item B<pinning add I<repo> I<pgkglob> [I<pkgglob>]>
+
+Pins the packages specified by I<pkgglob> to the repo I<repo>.
+
+=item B<pinning remove I<repo> I<pgkglob> [I<pkgglob>]>
+
+If there is a the very package glob <pkgglob> recorded in the pinning file
+for the given repo I<repo>, it is removed.
+
+=item B<pinning remove I<repo> --all>
+
+Remove all pinning data for repo I<repo>.
+
+=back
+
=head2 platform list|add|remove I<platform>...
=head2 platform set I<platform>
@@ -6538,6 +6540,32 @@ written to the terminal.
=back
+=cut
+
+# keep the following on *ONE* line otherwise Losedows perldoc does
+# not show it!!!!
+
+=pod
+
+=head2 postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [I<pkg>]...
+
+Carry out the postaction C<shortcut>, C<fileassoc>, or C<script> given
+as the second required argument in install or remove mode (which is the
+first required argument), for either the packages given on the command
+line, or for all if C<--all> is given.
+
+If the option C<--w32mode> is given the value C<user>, all actions will
+only be carried out in the user-accessible parts of the
+registry/filesystem, while the value C<admin> selects the system-wide
+parts of the registry for the file associations. If you do not have
+enough permissions, using C<--w32mode=admin> will not succeed.
+
+C<--fileassocmode> specifies the action for file associations. If it is
+set to 1 (the default), only new associations are added; if it is set to
+2, all associations are set to the TeX Live programs. (See also
+C<option fileassocs>.)
+
+
=head2 print-platform
Print the TeX Live identifier for the detected platform
@@ -6545,57 +6573,121 @@ Print the TeX Live identifier for the detected platform
C<--print-arch> is a synonym.
-=head2 info [I<option>...] [collections|schemes|I<pkg>...]
+=head2 restore [--backupdir I<dir>] [--all | I<pkg> [I<rev>]]
-With no argument, lists all packages available at the package
-repository, prefixing those already installed with C<i>.
+Restore a package from a previously-made backup.
-With the single word C<collections> or C<schemes> as the argument, lists
-the request type instead of all packages.
+If C<--all> is given, try to restore the latest revision of all
+package backups found in the backup directory.
-With any other arguments, display information about I<pkg>: the name,
-category, short and long description, installation status, and TeX Live
-revision number. If I<pkg> is not locally installed, searches in the
-remote installation source.
+Otherwise, if neither I<pkg> nor I<rev> are given, list the available backup
+revisions for all packages.
-It also displays information taken from the TeX Catalogue, namely the
-package version, date, and license. Consider these, especially the
-package version, as approximations only, due to timing skew of the
-updates of the different pieces. By contrast, the C<revision> value
-comes directly from TL and is reliable.
+With I<pkg> given but no I<rev>, list all available backup revisions of
+I<pkg>.
-The former actions C<show> and C<list> are merged into this action,
-but are still supported for backward compatibility.
+When listing available packages tlmgr shows the revision and in
+parenthesis the creation time if available (in format yyyy-mm-dd hh:mm).
+
+With both I<pkg> and I<rev>, tries to restore the package from the
+specified backup.
Options:
=over 4
-=item B<--list>
+=item B<--all>
-If the option C<--list> is given with a package, the list of contained
-files is also shown, including those for platform-specific dependencies.
-When given with schemes and collections, C<--list> outputs their
-dependencies in a similar way.
+Try to restore the latest revision of all package backups found in the
+backup directory. Additional non-option arguments (like I<pkg>) are not
+allowed.
-=item B<--only-installed>
+=item B<--backupdir> I<directory>
-If this options is given, the installation source will
-not be used; only locally installed packages, collections, or schemes
-are listed.
-(Does not work for listing of packages for now)
+Specify the directory where the backups are to be found. If not given it
+will be taken from the configuration setting in the TLPDB.
-=item B<--taxonomy>
+=item B<--dry-run>
-=item B<--keyword>
+Nothing is actually restored; instead, the actions to be performed are
+written to the terminal.
-=item B<--functionality>
+=item B<--force>
-=item B<--characterization>
+Don't ask questions.
-In addition to the normal data displayed, also display information for
-given packages from the corresponding taxonomy (or all of them). See
-L</"TAXONOMIES"> below for details.
+=back
+
+
+=head2 remove [I<option>]... I<pkg>...
+
+Remove each I<pkg> specified. Removing a collection removes all package
+dependencies (unless C<--no-depends> is specified), but not any
+collection dependencies of that collection. However, when removing a
+package, dependencies are never removed. Options:
+
+=over 4
+
+=item B<--no-depends>
+
+Do not remove dependent packages.
+
+=item B<--no-depends-at-all>
+
+See above under B<install> (and beware).
+
+=item B<--force>
+
+By default, removal of a package or collection that is a dependency of
+another collection or scheme is not allowed. With this option, the
+package will be removed unconditionally. Use with care.
+
+A package that has been removed using the C<--force> option because it
+is still listed in an installed collection or scheme will not be
+updated, and will be mentioned as B<forcibly removed> in the output of
+B<tlmgr update --list>.
+
+=item B<--dry-run>
+
+Nothing is actually removed; instead, the actions to be performed are
+written to the terminal.
+
+=back
+
+
+=head2 repository
+
+=over 4
+
+=item B<repository list>
+
+=item B<repository list I<path|tag>>
+
+=item B<repository add I<path> [I<tag>]>
+
+=item B<repository remove I<path|tag>>
+
+=item B<repository set I<path>[#I<tag>] [I<path>[#I<tag>] ...]>
+
+This action manages the list of repositories. See L</"MULTIPLE
+REPOSITORIES"> below for detailed explanations.
+
+The first form (C<list>) lists all configured repositories and the
+respective tags if set. If a path, url, or tag is given after the
+C<list> keyword, it is interpreted as source from where to
+initialize a TeX Live Database and lists the contained packages.
+This can also be an up-to-now not used repository, both locally
+and remote. If one pass in addition C<--with-platforms>, for each
+package the available platforms (if any) are listed, too.
+
+The third form (C<add>) adds a repository
+(optionally attaching a tag) to the list of repositories. The forth
+form (C<remove>) removes a repository, either by full path/url, or by
+tag. The last form (C<set>) sets the list of repositories to the items
+given on the command line, not keeping previous settings
+
+In all cases, one of the repositories must be tagged as C<main>;
+otherwise, all operations will fail!
=back
@@ -6668,261 +6760,198 @@ Search for package names, descriptions, and taxonomies, but not files.
=back
-=head2 dump-tlpdb [--local|--remote]
-
-Dump complete local or remote TLPDB to standard output, as-is. The
-output is analogous to the C<--machine-readable> output; see
-L<MACHINE-READABLE OUTPUT> section.
+=head2 uninstall
-Options:
+Uninstalls the entire TeX Live installation. Options:
=over 4
-=item B<--local>
-
-Dump the local tlpdb.
-
-=item B<--remote>
+=item B<--force>
-Dump the remote tlpdb.
+Do not ask for confirmation, remove immediately.
=back
-Exactly one of C<--local> and C<--remote> must be given.
-
-In either case, the first line of the output specifies the repository
-location, in this format:
-
- "location-url" "\t" location
-
-where C<location-url> is the literal field name, followed by a tab, and
-I<location> is the file or url to the repository.
-
-Line endings may be either LF or CRLF depending on the current platform.
-
-
-=head2 check [I<option>]... [files|depends|executes|runfiles|all]
-
-Executes one (or all) check(s) on the consistency of the installation.
-
-=over 4
-
-=item B<files>
-
-Checks that all files listed in the local TLPDB (C<texlive.tlpdb>) are
-actually present, and lists those missing.
-
-=item B<depends>
-
-Lists those packages which occur as dependencies in an installed collections,
-but are themselves not installed, and those packages that are not
-contained in any collection.
-
-If you call C<tlmgr check collections> this test will be carried out
-instead since former versions for C<tlmgr> called it that way.
-
-=item B<executes>
-
-Check that the files referred to by C<execute> directives in the TeX
-Live Database are present.
-
-=item B<runfiles>
-
-List those filenames that are occurring more than one time in the runfiles.
-=back
+=head2 update [I<option>]... [I<pkg>]...
-Options:
+Updates the packages given as arguments to the latest version available
+at the installation source. Either C<--all> or at least one I<pkg> name
+must be specified. Options:
=over 4
-=item B<--use-svn>
-
-Use the output of C<svn status> instead of listing the files; for
-checking the TL development repository.
-
-=back
-
-
-=head2 path [--w32mode=user|admin] [add|remove]
-
-On Unix, merely adds or removes symlinks for binaries, man pages, and
-info pages in the system directories specified by the respective options
-(see the L<option> description above). Does not change any
-initialization files, either system or personal.
-
-On Windows, the registry part where the binary directory is added or
-removed is determined in the following way:
-
-If the user has admin rights, and the option C<--w32mode> is not given,
-the setting I<w32_multi_user> determines the location (i.e., if it is
-on then the system path, otherwise the user path is changed).
-
-If the user has admin rights, and the option C<--w32mode> is given, this
-option determines the path to be adjusted.
-
-If the user does not have admin rights, and the option C<--w32mode>
-is not given, and the setting I<w32_multi_user> is off, the user path
-is changed, while if the setting I<w32_multi_user> is on, a warning is
-issued that the caller does not have enough privileges.
-
-If the user does not have admin rights, and the option C<--w32mode>
-is given, it must be B<user> and the user path will be adjusted. If a
-user without admin rights uses the option C<--w32mode admin> a warning
-is issued that the caller does not have enough privileges.
+=item B<--all>
+Update all installed packages except for C<tlmgr> itself. Thus, if
+updates to C<tlmgr> itself are present, this will simply give an error,
+unless also the option C<--force> or C<--self> is given. (See below.)
-=cut
+In addition to updating the installed packages, during the update of a
+collection the local installation is (by default) synchronized to the
+status of the collection on the server, for both additions and removals.
-# keep the following on *ONE* line otherwise Losedows perldoc does
-# not show it!!!!
+This means that if a package has been removed on the server (and thus
+has also been removed from the respective collection), C<tlmgr> will
+remove the package in the local installation. This is called
+``auto-remove'' and is announced as such when using the option
+C<--list>. This auto-removal can be suppressed using the option
+C<--no-auto-remove>.
-=pod
+Analogously, if a package has been added to a collection on the server
+that is also installed locally, it will be added to the local
+installation. This is called ``auto-install'' and is announced as such
+when using the option C<--list>. This auto-installation can be
+suppressed using the option C<--no-auto-install>.
-=head2 postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [I<pkg>]...
+An exception to the collection dependency checks (including the
+auto-installation of packages just mentioned) are those that have been
+``forcibly removed'' by you, that is, you called C<tlmgr remove --force>
+on them. (See the C<remove> action documentation.) To reinstall any
+such forcibly removed packages use C<--reinstall-forcibly-removed>.
-Carry out the postaction C<shortcut>, C<fileassoc>, or C<script> given
-as the second required argument in install or remove mode (which is the
-first required argument), for either the packages given on the command
-line, or for all if C<--all> is given.
+If you want to exclude some packages from the current update run (e.g.,
+due to a slow link), see the C<--exclude> option below.
-If the option C<--w32mode> is given the value C<user>, all actions will
-only be carried out in the user-accessible parts of the
-registry/filesystem, while the value C<admin> selects the system-wide
-parts of the registry for the file associations. If you do not have
-enough permissions, using C<--w32mode=admin> will not succeed.
+=item B<--self>
-C<--fileassocmode> specifies the action for file associations. If it is
-set to 1 (the default), only new associations are added; if it is set to
-2, all associations are set to the TeX Live programs. (See also
-C<option fileassocs>.)
+Update C<tlmgr> itself (that is, the infrastructure packages) if updates
+to it are present. On Windows this includes updates to the private Perl
+interpreter shipped inside TeX Live.
+If this option is given together with either C<--all> or a list of
+packages, then C<tlmgr> will be updated first and, if this update
+succeeds, the new version will be restarted to complete the rest of the
+updates.
-=head2 uninstall
+In short:
-Uninstalls the entire TeX Live installation. Options:
+ tlmgr update --self # update infrastructure only
+ tlmgr update --self --all # update infrastructure and all packages
+ tlmgr update --force --all # update all packages but *not* infrastructure
+ # ... this last at your own risk, not recommended!
-=over 4
+=item B<--dry-run>
-=item B<--force>
+Nothing is actually installed; instead, the actions to be performed are
+written to the terminal. This is a more detailed report than C<--list>.
-Do not ask for confirmation, remove immediately.
+=item B<--list> [I<pkg>]
-=back
+Concisely list the packages which would be updated, newly installed, or
+removed, without actually changing anything.
+If C<--all> is also given, all available updates are listed.
+If C<--self> is given, but not C<--all>, only updates to the
+critical packages (tlmgr, texlive infrastructure, perl on Windows, etc.)
+are listed.
+If neither C<--all> nor C<--self> is given, and in addition no I<pkg> is
+given, then C<--all> is assumed (thus, C<tlmgr update --list> is the
+same as C<tlmgr update --list --all>).
+If neither C<--all> nor C<--self> is given, but specific package names are
+given, those packages are checked for updates.
+=item B<--exclude> I<pkg>
-=head2 generate [I<option>]... I<what>
+Exclude I<pkg> from the update process. If this option is given more
+than once, its arguments accumulate.
-=over 4
+An argument I<pkg> excludes both the package I<pkg> itself and all
+its related platform-specific packages I<pkg.ARCH>. For example,
-=item B<generate language>
+ tlmgr update --all --exclude a2ping
-=item B<generate language.dat>
+will not update C<a2ping>, C<a2ping.i386-linux>, or
+any other C<a2ping.>I<ARCH> package.
-=item B<generate language.def>
+If this option specifies a package that would otherwise be a candidate
+for auto-installation, auto-removal, or reinstallation of a forcibly
+removed package, C<tlmgr> quits with an error message. Excludes are not
+supported in these circumstances.
-=item B<generate language.dat.lua>
+=item B<--no-auto-remove> [I<pkg>]...
-=item B<generate fmtutil>
+Under normal circumstances C<tlmgr> tries to remove packages which have
+disappeared on the server, as described above under C<--all>. This
+option prevents any such removals, either for all packages (with
+C<--all>), or the given I<pkg> names.
-=back
+=item B<--no-auto-install> [I<pkg>]...
-The C<generate> action overwrites any manual changes made in the
-respective files: it recreates them from scratch based on the
-information of the installed packages, plus local adaptions.
-The TeX Live installer and C<tlmgr> routinely call C<generate> for
-all of these files.
+Under normal circumstances C<tlmgr> will install packages which are new
+on the server, as described above under C<--all>. This option prevents
+any such automatic installation, either for all packages (with
+C<--all>), or the given I<pkg> names.
-For managing your own fonts, please read the C<updmap --help>
-information and/or L<http://tug.org/fonts/fontinstall.html>.
+Furthermore, after the C<tlmgr> run using this has finished, the
+packages that would have been auto-installed I<will be considered as
+forcibly removed>. So, if C<foobar> is the only new package on the
+server, then
-In more detail: C<generate> remakes any of the configuration files
-C<language.dat>, C<language.def>, C<language.dat.lua>, and
-C<fmtutil.cnf>, from the information present in the local TLPDB, plus
-locally-maintained files.
+ tlmgr update --all --no-auto-install
-The locally-maintained files are C<language-local.dat>,
-C<language-local.def>, C<language-local.dat.lua>, or
-C<fmtutil-local.cnf>, searched for in C<TEXMFLOCAL> in the respective
-directories. If local additions are present, the final file is made by
-starting with the main file, omitting any entries that the local file
-specifies to be disabled, and finally appending the local file.
+is equivalent to
-(Historical note: The formerly supported C<updmap-local.cfg> is no longer
-read, since C<updmap> now supports multiple C<updmap.cfg> files. Thus,
-local additions can and should be put into an C<updmap.cfg> file in
-C<TEXMFLOCAL>. The C<generate updmap> action no longer exists.)
+ tlmgr update --all
+ tlmgr remove --force foobar
-Local files specify entries to be disabled with a comment line, namely
-one of these:
+=item B<--reinstall-forcibly-removed>
- #!NAME
- %!NAME
- --!NAME
+Under normal circumstances C<tlmgr> will not install packages that have
+been forcibly removed by the user; that is, removed with C<remove
+--force>, or whose installation was prohibited by C<--no-auto-install>
+during an earlier update.
-where C<fmtutil.cnf> uses C<#>, C<language.dat> and C<language.def> use
-C<%>, and C<language.dat.lua> use C<-->. In all cases, the I<name> is
-the respective format name or hyphenation pattern identifier.
-Examples:
+This option makes C<tlmgr> ignore the forcible removals and re-install
+all such packages. This can be used to completely synchronize an
+installation with the server's idea of what is available:
- #!pdflatex
- %!german
- --!usenglishmax
+ tlmgr update --reinstall-forcibly-removed --all
-(Of course, you're not likely to actually want to disable those
-particular items. They're just examples.)
+=item B<--backup> and B<--backupdir> I<directory>
-After such a disabling line, the local file can include another entry
-for the same item, if a different definition is desired. In general,
-except for the special disabling lines, the local files follow the same
-syntax as the master files.
+These two options control the creation of backups of packages I<before>
+updating; that is, backup of packages as currently installed. If
+neither of these options are given, no backup package will be saved. If
+C<--backupdir> is given and specifies a writable directory then a backup
+will be made in that location. If only C<--backup> is given, then a
+backup will be made to the directory previously set via the C<option>
+action (see below). If both are given then a backup will be made to the
+specified I<directory>.
-The form C<generate language> recreates all three files C<language.dat>,
-C<language.def>, and C<language.dat.lua>, while the forms with an
-extension recreates only that given language file.
+You can set options via the C<option> action to automatically create
+backups for all packages, and/or keep only a certain number of
+backups. Please see the C<option> action for details.
-Options:
+C<tlmgr> always makes a temporary backup when updating packages, in case
+of download or other failure during an update. In contrast, the purpose
+of this C<--backup> option is to allow you to save a persistent backup
+in case the actual I<content> of the update causes problems, e.g.,
+introduces an incompatibility.
-=over 4
+The C<restore> action explains how to restore from a backup.
-=item B<--dest> I<output_file>
+=item B<--no-depends>
-specifies the output file (defaults to the respective location in
-C<TEXMFSYSVAR>). If C<--dest> is given to C<generate language>, it
-serves as a basename onto which C<.dat> will be appended for the name of
-the C<language.dat> output file, C<.def> will be appended to the value
-for the name of the C<language.def> output file, and C<.dat.lua> to the
-name of the C<language.dat.lua> file. (This is just to avoid
-overwriting; if you want a specific name for each output file, we
-recommend invoking C<tlmgr> twice.)
+If you call for updating a package normally all depending packages
+will also be checked for updates and updated if necessary. This switch
+suppresses this behavior.
-=item B<--localcfg> I<local_conf_file>
+=item B<--no-depends-at-all>
-specifies the (optional) local additions (defaults to the respective
-location in C<TEXMFLOCAL>).
+See above under B<install> (and beware).
-=item B<--rebuild-sys>
+=item B<--force>
-tells tlmgr to run necessary programs after config files have been
-regenerated. These are:
-C<fmtutil-sys --all> after C<generate fmtutil>,
-C<fmtutil-sys --byhyphen .../language.dat> after C<generate language.dat>,
-and
-C<fmtutil-sys --byhyphen .../language.def> after C<generate language.def>.
+Force update of normal packages, without updating C<tlmgr> itself
+(unless the C<--self> option is also given). Not recommended.
-These subsequent calls cause the newly-generated files to actually take
-effect. This is not done by default since those calls are lengthy
-processes and one might want to made several related changes in
-succession before invoking these programs.
+Also, C<update --list> is still performed regardless of this option.
=back
-The respective locations are as follows:
-
- tex/generic/config/language.dat (and language-local.dat);
- tex/generic/config/language.def (and language-local.def);
- tex/generic/config/language.dat.lua (and language-local.dat.lua);
- web2c/fmtutil.cnf (and fmtutil-local.cnf);
+If the package on the server is older than the package already installed
+(e.g., if the selected mirror is out of date), C<tlmgr> does not
+downgrade. Also, packages for uninstalled platforms are not installed.
=head1 TLMGR CONFIGURATION FILE