在 @INC 中找不到 TeXLive/TLConfig.pm

在 @INC 中找不到 TeXLive/TLConfig.pm

当调用时tlgmr,尤其是在分发升级的过程中,它会很早就失败,并出现 PERL 错误,后跟以下形式Can't locate TeXLive/TLConfig.pm in @INC的列表:等等。@INC@INC contains: /2020/texmf-dist/scripts/texlive /2020/tlpkg

设置PERL5LIB到适当的文件夹可以得到更进一步的结果,但仍然失败

kpathsea: configuration file texmf.cnf not found in these directories: /2020/bin/x86_64-linuxETC。

答案1

tlmgr当通过指定不以 开头的相对路径来调用时,就会发生这种情况./,例如user@machine:/opt/texlive$ 2020/bin/x86_64-linux/tlmgr update --self --all

由于某些(与 PERL 相关?)原因,这会使 tlmgr 搜索下的内容/2020/

改用user@machine:/opt/texlive$ ./2020/bin/x86_64-linux/tlmgr update --self --all

答案2

根据TeX Live 的 Arch Wiki,TEXMFDIST 中的 tlmgr 脚本已损坏。修复方法是编辑TEXMFDIST/scripts/texlive/tlmgr.pl并替换$Master = "$Master/../..";$Master = "${Master}/../../..";。或者对于基于 Arch 的 Linux 发行版用户,使用本地管理器反而。

答案3

我正在使用 fish shell,但我无法正确配置 PATH,
但要配置tlmgr,现在我尝试这个解决方案:

  • linux 找不到 tmlgr:
# try to search it in this directory
# /usr/share/texmf-dist/scripts/texlive/
# /opt/texlive/2021/texmf-dist/scripts/texlive/
# ...
  • tmlgr 找不到目录:TeXLIVE?
    在 @INC 中找不到 TeXLive/TLConfig.pm
$ /usr/share/texmf-dist/scripts/texlive/
|-- TeXLive
|   |-- TLConfFile.pm
|   |-- TLUtils.pm
....
|-- tlmgr.pl
|-- tlmgrgui.pl
  • 如果你没有所有*.pm需要的tlmgr,你可以从谷歌下载手册,就像我一样,我使用wget http://tug.ctan.org/systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -O /usr/share/texmf-dist/scripts/texlive/TeXLive
  • 如果tlmgr找不到该目录TeXLive
    您必须在 .bashrc 中使用全局变量。但我fishshell现在无法使用它,所以我通过从我的原始路径到 /texmf-dist,或在 ~/perl 中...来link让它为人所知pathtlmgr
$ sudo ln -s /usr/share/texmf-dist/ /
  • 如果你需要这个文件,/tlpkg/installer/config.guess请从下载github并将其放入tlpkg/installer/
  • 有时你需要tlmgr在 usermod 中使用:
$ alias tlmgr='/usr/share/texmf-dist/scripts/texlive/tlmgr.pl --usermode'

答案4

我认为,问题与 Perl 有关。TeXLive 要求系统中存在某些 Perl 库。重新安装 Perl 后,这些库丢失了。我不得不重新安装 TeXLive(通过 Homebrew),问题就消失了。

相关内容