我遇到了类似的问题这个。
我正在运行 Arch Linux,并从其存储库安装了 TexLive。我注意到我有一些配置文件(texmf.cnf 和 updmap.cfg)需要更新,因此我对它们进行了比较并更新了相关部分。对于 updmap,它只是向文件中添加了一些汉字字体映射。
然后,我认为我应该运行 updmap,因为我更改了配置。我得到了这个:
$ updmap
Can't locate TeXLive/TLUtils.pm in @INC (@INC contains: /tlpkg /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl .) at /usr/bin/updmap line 18.
BEGIN failed--compilation aborted at /usr/bin/updmap line 18.
我检查了 TLUtils.pm 并发现了它:
$ locate TLUtils.pm
/usr/share/tlpkg/TeXLive/TLUtils.pm
/var/lib/texmf/arch/tlpkg/TeXLive/TLUtils.pm
我不知道@INC
(听起来像 TL 路径?)在哪里定义,因此不知道在哪里被告知在哪里寻找 TLUtils.pm。
引用的第 18 行是这样的:
use TeXLive::TLUtils qw(mkdirhier mktexupd win32);
我猜有些东西在某次更新期间被移动了,也许有些路径仍然引用着一些现在已不存在的位置。我该如何纠正这个问题?
答案1
好的,听了你的回答后我明白发生了什么。
TL 二进制文件使用它们的位置来搜索它们的库。如果您在 中安装了 TL /usr/local/texlive
,它们位于 中/usr/local/texlive/YEAR/bin/ARCH
,并在诸如 等位置查找它们的库../../tlpkg
。但是,您的updmap
是从系统供应商安装的(或者您可能将其复制到那里而不是符号链接),并且它的位置是/usr/bin/
,因此../../tlpkg
给出了未找到任何内容的目录。
在中添加 TL2011 二进制文件的路径头搜索路径,如export PATH=/usr/local/texlive/2011/bin/i386-linux:$PATH
。或者仅将新二进制文件符号链接到/usr/local/bin
:通常在 之前搜索此目录/usr/bin
。