You are not logged in.

#1 2023-01-01 07:34:38

Firestar
Member
From: Beijing, China
Registered: 2021-07-19
Posts: 116
Website

TeXLive tlmgr: Can't locate TeXLive/TLConfig.pm in @INC (you may need

[firestar @ ArchLinux ~] (20:52:04)
$ tlmgr update --self
bash: /home/firestar/.texlive/2022/texmf-dist/scripts/texlive/tlmgr.pl: No such file or directory

[firestar @ ArchLinux ~] (20:52:07)
$ sudo tlmgr update --self
Can't locate TeXLive/TLConfig.pm in @INC (you may need to install the TeXLive::TLConfig module)
(@INC contains: /usr/texmf-dist/scripts/texlive /usr/tlpkg /usr/lib/perl5/5.36/site_perl
/usr/share/perl5/site_perl /usr/lib/perl5/5.36/vendor_perl /usr/share/perl5/vendor_perl
/usr/lib/perl5/5.36/core_perl /usr/share/perl5/core_perl) at /usr/local/bin/tlmgr line 91.
BEGIN failed--compilation aborted at /usr/local/bin/tlmgr line 91.

I installed texlive from ISO (not from pacman) and I use the clean, default install:

 <D> set directories:
   TEXDIR (the main TeX directory):
     /usr/local/texlive/2022
   TEXMFLOCAL (directory for site-wide local files):
     /usr/local/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /usr/local/texlive/2022/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /usr/local/texlive/2022/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2022/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2022/texmf-config
   TEXMFHOME (directory for user-specific files):
     ~/texmf

New value for binary directory [/usr/local/bin]: 
New value for man directory    [/usr/local/man]: 
New value for info directory   [/usr/local/info]: 
texconfig conf

=========================== kpathsea variables ===========================
TEXMFMAIN=/usr/texmf-dist
TEXMFDIST=/usr/texmf-dist
TEXMFLOCAL=//texmf-local
TEXMFSYSVAR=/usr/texmf-var
TEXMFSYSCONFIG=/usr/texmf-config
TEXMFVAR=/home/firestar/.texlive2022/texmf-var
TEXMFCONFIG=/home/firestar/.texlive2022/texmf-config
TEXMFHOME=/home/firestar/texmf
VARTEXFONTS=/home/firestar/.texlive2022/texmf-var/fonts
TEXMF={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}
SYSTEXMF=/usr/texmf-var://texmf-local:/usr/texmf-dist
TEXMFDBS={!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}
WEB2C={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/web2c
TEXPSHEADERS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/{dvips,fonts/{enc,type1,type42,type3}}//
TEXCONFIG={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/dvips//
ENCFONTS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/fonts/enc//
TEXFONTMAPS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/fonts/map/{kpsewhich,pdftex,dvips,}//

`kpsewhich -var-value=TEXMFDIST` gives `/usr/texmf-dist` too

This did not happen before last month, I think it is related to the difference between Archlinux perl and TeXLive perl

I read the ArchWiki: https://wiki.archlinux.org/title/TeX_Live

but the solution do not work for me.

Last edited by Firestar (2023-01-01 12:57:42)


Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.

Offline

#2 2023-01-01 12:49:29

Firestar
Member
From: Beijing, China
Registered: 2021-07-19
Posts: 116
Website

Re: TeXLive tlmgr: Can't locate TeXLive/TLConfig.pm in @INC (you may need

The most weird thing is, although `texconfig` and `kpathsea` gives `TEXMFDIST=/usr/texmf-dist`

I do not have that folder at all

$ ls /usr
bin  etc  include  lib  lib32  lib64  local  sbin  share  src

$ ls /usr/share/t*
/usr/share/tabset:
std  stdcrt  vt100  vt300

/usr/share/tc:
experimental.dist  normal.dist  pareto.dist  paretonormal.dist

/usr/share/terminfo:
1  3  5  7  9  A  c  e  f  h  j  l  m  n  o  P  Q  s  u  w  X
2  4  6  8  a  b  d  E  g  i  k  L  M  N  p  q  r  t  v  x  z

/usr/share/texinfo:
DebugTexinfo  ext  htmlxref.cnf  init  js  lib  Pod-Simple-Texinfo  texindex.awk  Texinfo  texinfo.dtd

/usr/share/themes:
Breeze  Breeze-Dark  Default  Emacs

/usr/share/thumbnailers:
gdk-pixbuf-thumbnailer.thumbnailer  librsvg.thumbnailer

/usr/share/tracker3:
ontologies  stop-words

Last edited by Firestar (2023-01-01 13:04:44)


Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.

Offline

#3 2023-01-02 12:26:38

Stefan Husmann
Member
From: Germany
Registered: 2007-08-07
Posts: 1,391

Re: TeXLive tlmgr: Can't locate TeXLive/TLConfig.pm in @INC (you may need

You need to run tlmgr as root if you want to update your system wide installation, and you need to set the environment variables correctly. It seems, you have a mixture between repo-packages and your ISO-packages.
I have

$ cat /etc/profile.d/texlive.sh
export MANPATH=/usr/local/texlive/2022/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2022/texmf-dist/doc/info:$INFOPATH
export PATH=/usr/local/texlive/2022/bin/x86_64-linux:$PATH

I can recomment texlive-full from AUR.

Offline

#4 2023-01-03 05:35:38

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,178

Re: TeXLive tlmgr: Can't locate TeXLive/TLConfig.pm in @INC (you may need

It looks as if you've installed TeX Live from upstream, which is the way I do it. That's why you've got stuff in /usr/local. My recommendation (and upstream's recommendation) is not to do the installation as root. Many people do, but it would be safer not to.

Either way, you do not want to run tlmgr update in user mode ever. It will lead to lots of problems. Unless you have no choice, only ever run tlmgr in system mode. In particular, you really, really don't want to do font configuration for TeX Live at the user level.

Your configuration variables are entirely messed up, as you noted. What does

$ ls -R ~/.texlive2022
$ echo $PATH

give?

For reference, texconfig conf should give something like the following

=========================== version information ==========================
TeX Live (https://tug.org/texlive) version 2022

==================== binaries found by searching $PATH ===================
PATH=/usr/local/texlive/2022/bin/x86_64-linux:/usr/local/texlive/2022/bin/x86_64-linux:/usr/local/texlive/2022/bin/x86_64-linux:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/jvm/default/bin:/home/firestar/bin
kpsewhich: /usr/local/texlive/2022/bin/x86_64-linux/kpsewhich
updmap: /usr/local/texlive/2022/bin/x86_64-linux/updmap
fmtutil: /usr/local/texlive/2022/bin/x86_64-linux/fmtutil
texconfig: /usr/local/texlive/2022/bin/x86_64-linux/texconfig
tex: /usr/local/texlive/2022/bin/x86_64-linux/tex
pdftex: /usr/local/texlive/2022/bin/x86_64-linux/pdftex
mktexpk: /usr/local/texlive/2022/bin/x86_64-linux/mktexpk
dvips: /usr/local/texlive/2022/bin/x86_64-linux/dvips
dvipdfmx: /usr/local/texlive/2022/bin/x86_64-linux/dvipdfmx

=========================== active config files ==========================
/usr/local/texlive/2022/texmf-config/web2c/updmap.cfg
/usr/local/texlive/2022/texmf-dist/dvips/config/config.ps
/usr/local/texlive/2022/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex
/usr/local/texlive/2022/texmf-dist/web2c/fmtutil.cnf
/usr/local/texlive/2022/texmf-dist/web2c/mktex.cnf
/usr/local/texlive/2022/texmf-dist/xdvi/XDvi
/usr/local/texlive/2022/texmf.cnf

============================= font map files =============================
psfonts.map: /usr/local/texlive/2022/texmf-var/fonts/map/dvips/updmap/psfonts.map
pdftex.map: /usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map
ps2pk.map: /usr/local/texlive/2022/texmf-var/fonts/map/dvips/updmap/ps2pk.map

=========================== kpathsea variables ===========================
TEXMFMAIN=/usr/local/texlive/2022/texmf-dist
TEXMFDIST=/usr/local/texlive/2022/texmf-dist
TEXMFLOCAL=/usr/local/texlive/texmf-local
TEXMFSYSVAR=/usr/local/texlive/2022/texmf-var
TEXMFSYSCONFIG=/usr/local/texlive/2022/texmf-config
TEXMFVAR=/home/firestar/.texlive2022/texmf-var
TEXMFCONFIG=/home/firestar/.texlive2022/texmf-config
TEXMFHOME=/home/firestar/texmf
VARTEXFONTS=/home/firestar/.texlive2022/texmf-var/fonts
TEXMF={/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}
SYSTEXMF=/usr/local/texlive/2022/texmf-var:/usr/local/texlive/texmf-local:/usr/local/texlive/2022/texmf-dist
TEXMFDBS={!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}
WEB2C={/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}/web2c
TEXPSHEADERS=.:{/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}/{dvips,fonts/{enc,type1,type42,type3}}//
TEXCONFIG={/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}/dvips//
ENCFONTS=.:{/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}/fonts/enc//
TEXFONTMAPS=.:{/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!/usr/local/texlive/2022/texmf-config,!!/usr/local/texlive/2022/texmf-var,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2022/texmf-dist,/usr/share/texmf}/fonts/map/{kpsewhich,pdftex,dvips,}//

==== kpathsea variables from environment only (ok if no output here) ====

Except that you may not have any /usr/share/  bits in there, because those are not part of a vanilla configuration.
But the configuration files under ~/.texlive2022 should generally not exist.

Note that there is no TeX Live perl. TeX Live uses Arch's perl. The problem is that you have an Arch-style custom configuration which does not correspond to your installation of TeX Live. Something is writing those configuration variables (probably something in ~/.texlive2022 though it could be something system-wide if you've also installed conflicting Arch packages).

Edit: Note that to maintain a vanilla TeX Live install, you probably want to install dummy packages to keep pacman happy. Otherwise, you will end up with conflicts if something pulls Arch's texlive packages in as dependencies. For example, this will happen if you try to install a TeX editor or similar. You can also use pacman's configuration to ignore packages, but the dummy packaging has the advantage of letting you install stuff which depends on TeX. For example, I used the following PKGBUILD:

pkgname=texlive-dummy-cfr
pkgver=1.0
pkgrel=1
pkgdesc="TeX typesetting program"
arch=(i686 x86_64)
license=('custom')
provides=('tetex' 'texlive-bin' 'texlive-core' 'texinfo')
conflicts=('tetex' 'texlive-bin' 'texlive-core')
build() {
/bin/true
}

and the following in /etc/pacman.conf

IgnorePkg   = texlive-bin
IgnoreGroup = texlive-most texlive-lang

Once this is setup, you can forget about it, but if you'd rather not deal with this kind of complication, then I'd recommend using Arch's texlive packages instead. That may create more complications in the end, but it is certainly more straightforward at the installation stage.

Before you do anything like this, look at pacman's log and check if you've installed conflicting texlive packages already. If so, you should either remove those or abandon your upstream installation.

Edit 2: /etc/profile.d/firestar_texlive.sh

if [ $UID != 0 ]
then
        [ -d "/usr/local/texlive/2022/bin/x86_64-linux" ] && export PATH="/usr/local/texlive/2022/bin/x86_64-linux:${PATH}"
# need to add to INFOPATH but this seems not to be set and I'm not sure how to handle that...
        [ -d "/usr/local/texlive/2022/texmf-dist/doc/info" ] && export INFOPATH="${INFOPATH}:/usr/local/texlive/2022/texmf-dist/doc/info"
fi

It is best not to alter MANPATH which is empty by default as the information can be derived from PATH, but you might need to add a line to /etc/man_db.conf to create the appropriate mapping.

Last edited by cfr (2023-01-03 05:58:05)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#5 2023-01-07 02:59:19

Firestar
Member
From: Beijing, China
Registered: 2021-07-19
Posts: 116
Website

Re: TeXLive tlmgr: Can't locate TeXLive/TLConfig.pm in @INC (you may need

I tried installing texlive as user (non-root), it can also Create symlinks in standard directories but I  do need to edit the PATH myself.

Now tlmgr can be executed as user and no error ocurred.

Last edited by Firestar (2023-01-10 03:08:40)


Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.

Offline

Board footer

Powered by FluxBB