3

I am planning to integrate a full installation of Vanilla TeX Live 2021 with my Debian platform.

On the website of the TeX Users Group I read the instructions for integrating vanilla TeX Live with Debian.


Item 2 of these instructions says:

Ensure that the only Debian TeX Live packages installed are tex-common, texinfo, and perhaps lmodern.

This instruction indicates that—when installing vanilla TeX Live via install-tl—a subset of Debian-packages needs to be removed from the Debian installation if present, namely those Debian packages that make up the set of Debian TeX Live packages but do not belong to the package-set {tex-common, texinfo, lmodern}.

The crucial question with this instruction is:

Question 1:

How can I find out with a Debian-distribution which Debian-packages make up the set of Debian TeX Live packages?


Item 4 of these instructions is about creating a dummy-package for "telling" Debian's package-management about the packages provided due to installing vanilla TeX Live.
There is a link to a file debian-equivs-2021-ex.txt.

The purpose of this file is to provide the content of the control-file by means of which the equivs-tool creates the package file/the "dummy"-.deb-file which in turn can be installed via dpkg.

Despite the actual purpose of this file you find the list of packages provided by the vanilla TeX Live 2021 installation in this file.

Question 2:

Is it sufficient to check one's Debian installation for the packages mentioned in that list being installed and—if so—having them removed?
(This seems not sufficient in case with Debian's own TeX Live packaging packages being named differently. But I don't know if this is the case.)


Question 3:

What am I supposed to do regarding dummy-packages in case I wish to have several releases of vanilla TeX Live installed in parallel, e.g., 2020 and 2021? With each of them the corresponding dummy-package linked at https://www.tug.org/texlive/debian.html#vanilla provides the same set of packages, only the Version differs.


The mentioned file debian-equivs-2021-ex.txt looks like this:

Section: misc
Priority: optional
Standards-Version: 4.1.4
Package: texlive-local
Version: 2021.99999999-1
Maintainer: you <[email protected]>
Provides: chktex, biblatex, biblatex-dw, cm-super, cm-super-minimal, context, 
 dvidvi, dvipng, feynmf, fragmaster, jadetex, lacheck, latex-beamer, 
 latex-cjk-all, latex-cjk-chinese, latex-cjk-chinese-arphic-bkai00mp, 
 latex-cjk-chinese-arphic-bsmi00lp, latex-cjk-chinese-arphic-gbsn00lp, 
 latex-cjk-chinese-arphic-gkai00mp, latex-cjk-common, latex-cjk-japanese, 
 latex-cjk-japanese-wadalab, latex-cjk-korean, latex-cjk-thai, latexdiff, 
 latexmk, latex-sanskrit, latex-xcolor, lcdf-typetools, lmodern, luatex, 
 musixtex, passivetex, pgf, preview-latex-style, prosper, ps2eps, psutils, 
 purifyeps, t1utils, tex4ht, tex4ht-common, tex-gyre, texlive, texlive-base, 
 texlive-bibtex-extra, texlive-binaries, texlive-common, texlive-extra-utils,
 texlive-fonts-extra, texlive-fonts-extra-doc, texlive-fonts-recommended,
 texlive-fonts-recommended-doc, texlive-font-utils, texlive-formats-extra,
 texlive-games, texlive-generic-extra, texlive-generic-recommended,
 texlive-humanities, texlive-humanities-doc, texlive-lang-african,
 texlive-lang-all, texlive-lang-arabic, texlive-lang-cjk, texlive-lang-cyrillic,
 texlive-lang-czechslovak, texlive-lang-english, texlive-lang-european,
 texlive-lang-japanese, texlive-lang-chinese, texlive-lang-korean,
 texlive-lang-french, texlive-lang-german, texlive-lang-greek, 
 texlive-lang-indic, texlive-lang-italian, texlive-lang-other, 
 texlive-lang-polish, texlive-lang-portuguese, texlive-lang-spanish,
 texlive-latex-base, texlive-latex-base-doc, texlive-latex-extra, 
 texlive-latex-extra-doc, texlive-latex-recommended, 
 texlive-latex-recommended-doc, texlive-luatex, texlive-math-extra, 
 texlive-metapost, texlive-metapost-doc, texlive-music,
 texlive-omega, texlive-pictures, texlive-pictures-doc, texlive-plain-extra,
 texlive-plain-generic,
 texlive-pstricks, texlive-pstricks-doc, texlive-publishers,
 texlive-publishers-doc, texlive-science, texlive-science-doc, texlive-xetex,
 thailatex, tipa, tipa-doc, xindy, xindy-rules, xmltex, asymptote, texinfo
Depends: freeglut3
Architecture: all
Description: My local installation of TeX Live 2021.
 A full "vanilla" TeX Live 2021
 https://www.tug.org/texlive/debian#vanilla

Question 4:

In the Description-field you find the url:
http://tug.org/texlive/debian#vanilla
Shouldn't this be:
https://www.tug.org/texlive/debian.html#vanilla ?
(".html" behind "debian" is missing.)

Question 5:

The field "Standards-Version: 4.1.4" indicates that the control file complies to the Debian Policy Manual 4.1.4.<whatsoever>. (<whatsoever> is that part of the release-number that gets increased in case of "cosmetic" changes, e.g., in case of rectifying a typo.)

On the web I could only find the more recent Debian Policy Manual version 4.5.1.0, released on 2020-11-17.

Where can I find releases of the Debian Policy Manual prior to 4.5.1.0, especially release 4.1.4?

Question 6:

Section "5.6.12. Version" of Debian Policy Manual version 4.5.1.0, indicates that in the version-field "Version: 2021.99999999-1" the string "2021.99999999" denotes the upstream-version which comes from the maintainer of the dummy-package (and the string "-1" denotes the debian-revision).

The debian package-search reveals that with regular Debian-texlive-packages the upstream-version, which comes from the developers of TeX Live, seems to be of a specific of a specific pattern.
E.g, with Debian-buster (stable) the upstream-version of the package texlive is "2018.20190227" (and the debian-revision is "2").

What is the pattern of these upstream-version-numbers?
"2018" seems to denote a year. What year?
"20190227" seems to denote a date. What date?
Does "2018" denote TeX Live 2018? Does "20190227" the date when the repository was synchronized/rsynced with the TeX-Live-repository on the CTAN-master server for creating the Debian-package?

Question 7:

Why do you find the packages "texinfo" and "lmodern" in the "Provides"-field although the instructions advise to ensure that these packages are already installed?
Shouldn't they (together with "tex-common" and "freeglut") be listed in the "Depends"-field instead?


In item 2 of the above-mentioned instructions you are advised to "ensure that the only Debian TeX Live packages installed are tex-common, texinfo, and perhaps lmodern".

Question 8:

What is the phrase "perhaps" before "lmodern" intended to indicate?
That one shall keep Debian's lmodern-package only in case one does not integrate the lmodern-fonts coming with the TeX Live distribution system-wide?

Question 9:

Ad ensuring "that the only Debian TeX Live packages installed are tex-common, texinfo, and perhaps lmodern":

Shouldn't the dummy-package be installed before uninstalling any Debian-packages?

Otherwise Debian packages might be uninstalled as well which do not belong to Debian TeX Live but do depend on (Debian) TeX Live.

(Probably one could adapt the dummy-package's control file to remove any already existing Debian TeX Live installation via "Conflicts:"- and "Replaces:"-directives as described at https://www.debian.org/doc/debian-policy/ch-relationships.html#overwriting-files-and-replacing-packages-replaces and then install the dummy-package before running install-tl..., this way combining the step of ensuring "that the only Debian TeX Live packages installed are tex-common, texinfo, and perhaps lmodern" with the step of installing the dummy-package.
Yet another idea could be having the dummy-package execute a script at installation for downloading and installing full TeX Live and changing environment variables and at removal execute a script for carrying out the command sudo tlmgr remove --all and undoing changes of environment variables, but I did not yet sufficiently delve into the process of creating Debian packages for accomplishing this—if I get around to it, and am successful, and then someone is interested, then maybe I can report back.)

2 Answers 2

1

Is it sufficient to check one's Debian installation for the packages mentioned in that list being installed and - if so - having them removed?

Technically yes (see below).

How can I find out with a Debian-distribution which Debian-packages make up the set of Debian TeX Live packages?

You probably want something like apt rdepends texlive-full or friends ...

But given that there seems to be some communication or even overlap between the Debian packagers and the TeXlive folks, I would suggest that the given list of packages and version ranges for each respective equivs file is exhaustive.

What am I supposed to do regarding dummy-packages in case I wish to have several releases of vanilla TeX Live installed in parallel, e.g., 2020 and 2021? With each of them the dummy-package provides the same set of packages, only the Version differs.

If you wanted to integrate several TeXlive versions concurrently you'd have to create an equivs file which covers a superset of both their corresponding packages (and version ranges). What you want is somewhat unusual and so you have to adjust the provided suggestions to those unusual requirements.

Technically there is nothing wrong with simply removing the mentioned packages from your installation. However, the idea of the equivs file covers two aspects, basically:

  • Provides: describe which packages your local TeXlive allegedly provides
  • Depends: describe what package prerequisites TeXlive requires to be installed

Removing what's in Provides: and installing what's in Depends: is technically sufficient. However, by installing the created dummy package you make the package manager aware of this local installation which is outside of its control.

And so the benefit is in future that having the equivs package installed, your package manager will know better how to resolve potential conflicts. Doing these steps manually bereaves the package manager of that ability.

So in conclusion: you can manually install (Depends: items) and remove (Provides: items) stuff as declared in the equivs file, but it won't be future-proof. It's a best practice on Debian to use equivs files exactly for that purpose. But no one is going to arrest you for not following this best practice.

NB: your other question 2.) appears to be more of a defect report than a question. Since one of the URLs is dead and the other contains the content one would expect from the (now?) dead URL, it stands to reason that this is simply negligence. With some luck one of the maintainers will read here and fix it.


For my systems I have even extended the equivs file to include some font packages (in Depends:) I would like to use from LaTeX, so that's to say nobody is keeping you from modifying the template equivs file or merging the equivs files suggested for two different TeXlive releases.

1

Here is an answer which is not really an answer to all your questions.

Personally, I install one or more vanilla versions of TeXLive (in /usr/local/texlive) and modify (or create) the /etc/environment file to define a PATH there where the commands of one of the vanilla version of TeXLive are in first place:

PATH="/usr/local/texlive/2021/bin/x86_64-linux:..."

And since I don't run out of disk space on most of my computers, I let Debian/Ubuntu install its own packages.

It's simpler and it works very well.

2
  • It's simpler but more prone to breakage unfortunately. Especially if you happen to install a package or packages that would otherwise be blocked by the equivs package. Sure, this can work, but it's not robust. Example: you install vanilla TL (any version) as you describe, but also install some related packages via package manager. However, since you opted not to install the full TL now you run an environment which mixes (older) packaged programs+date with (newer) vanilla TL programs+data, despite TL taking precedence in the PATH. May 11 at 21:56
  • 1
    @0xC0000022L In theory you are right. In practice, in my institution, for more than 10 years and for many users, this method works very well. May 12 at 6:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .