[Tex/LaTex] tlmgr shows wrong package installation status

packagestexlivetlmgr

I am using a portable XeTeX installation installed via TexLive parallel with a normal PdfLaTeX installation. I do not want to mix them up. I wanted to install some more packages for XeTeX which did not work.

When I run the command

tlmgr show <package>

tlmgr tells me that this package is installed. It returns something like

package:     ctex
category:    Package
shortdesc:   LaTeX classes and packages for Chinese typesetting
longdesc:    ctex is a collection of macro packages and document classes for LaTeX Chinese typesetting.
installed:   Yes
revision:    47595
sizes:       src: 457k, doc: 1141k, run: 717k
relocatable: Yes
cat-version: 2.4.14
cat-date:    2018-05-02 16:00:12 +0200
cat-license: lppl1.3c
cat-topics:  chinese book-pub class
collection:  collection-langchinese
Included files, by type:
run files:
  RELOC/tex/generic/ctex/ctexmakespa.tex
  ...

tlmgr sais that this package is installed. The problem is that I know for sure that this package is not installed. In fact tlmgr tells me that I have installed every single package which is not true. This may be true for my other installation.

Deleting the packages does not work. Also I tried the commands tlmgr update --self, tlmgr update --self --all and tlmgr init-usertree. I also re-downloaded the database file texlive.tlpdb from CTAN which didn't help too.

I am using windows so I also removed the normal PDFLaTeX installation from the PATH variable on my machine and I added the portable installation (which is stupid because this was the reason why I used the portable installation: Not to change the PATH). This still shows me that I have installed every package.

tlmgr conf does only show the paths of the portable installation. I checked the texmf.cnf which also contains the correct paths. When I run kpsewhich.exe -var-value=TEXMFSYSVAR or kpsewhich.exe -var-value=TEXMFLOCAL I always get the correct portable XeTeX paths. I don't know why tlmgr is always reading the wrong TeX-directory.

So my questions are:

  1. How does tlmgr decide whether a package is installed or not?
  2. Where is RELOC?

Note: I always called /path/to/the/portable/xetex/installation/bin/win32/tlmgr.bat to make sure that I am using the correct tlmgr of the portable XeTeX.

Best Answer

It is working now. For everyone else who has a similar problem. I did the following things, I don't exactly know what fixed my problem:

  1. I removed my other latex installation completely (which was something I really didn't want to do. I think this is not necessary but it's too late for me to test it).
  2. I changed the TEXMFLOCAL in my texmf.cnf from ./texmf-local to $SELFAUTOPARENT/texmf-local. (I think this is the important thing).
  3. I ran tlmgr update --self again.
  4. Also there is a so called "user mode". This allows to change the installation/sources of the packages for tlmgr. Maybe this may help you. You can change the path to the path where your packages actually are. I also didn't test this.

I don't know the exact reason why this was happening or how I actually fixed it. I think something with the wrong paths as @KJO mentioned.

If you have a better solution or a real explanation feel free to comment. I am still interested in what I did wrong and not too happy with my "scrappy" solution.

Related Question