TeX Live Manager 因“未知的 docfile 标签”而崩溃

TeX Live Manager 因“未知的 docfile 标签”而崩溃

今天我的 TeX Live 2013 停止更新软件包。我用它tlmgr来更新软件包,但它崩溃了,并出现以下错误:

$ sudo tlmgr update
Unknown docfile tag:  texmf-dist/doc/latex/pythontex/pythontex_quickstart.pdf details=""Quick start" documentation" at /usr/local/texlive/2013/tlpkg/TeXLive/TLPOBJ.pm line 127, <TMP> line 127939.

命令

 sudo tlmgr update --self --all --reinstall-forcibly-removed

没有修复它。

答案1

由于某些原因(似乎是 Perl 脚本中的一个错误),Quick Startdocfile 标签中的双引号没有被正确转义。

修复已上传至 TeX Live 存储库(请参阅这里差异或这里用于下载新版本的 Perl 模块)。

在新版本tlmgr传播之前,最简单的修复方法是从位于以下位置的文件中删除有问题的引号

/usr/local/texlive/2013/tlpkg/texlive.tlpdb

所以线变成

texmf-dist/doc/latex/pythontex/pythontex_quickstart.pdf details="Quick start documentation"

收到的错误消息显示行号,行号可能因多种因素而异:您的情况是第 127939 行,而我的系统上是不同的行号(128963)。在标准 TeX Live 安装中,编辑文件需要超级用户权限。

更新

截至 2013 年 9 月 18 日,似乎所有不良引文的痕迹都已从目录中消失。因此,过去几天没有更新 TeX Live 的人应该不会遇到任何问题,并且更新 TeX Live 应该不会出现任何问题。

如果最近几天的更新触发了“错误引用”错误,请按照以下步骤进行操作。

麦金塔电脑

尝试此问题的 MacTeX 用户在遇到问题时应该

  1. 启动 TeX Live Utility 并重新安装tlmgr:菜单“操作 > 重新安装 TeX Live Manager”

  2. 重新启动 TeX Live Utility

  3. 执行基础设施更新

  4. 更新所有 TeX Live 软件包

在完整更新之前,可能无法在包列表选项卡上进行访问,因为错误的pythontex条目会挂起 TeX Live Utility 使用的 Python 脚本。

GNU/Linux 系统

在 GNU/Linux 系统上运行 vanilla TeX Live 的用户应该

  1. http://mirror/ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh使用wget或下载curl -O

  2. 获取超级用户权限并运行sh update-tlmgr-latest.sh,确保 TeX Live 二进制目录位于root用户PATH变量中的第一个;例如(假设一个 Bash shell)

    sudo su
    export PATH=/opt/texbin:${PATH}
    sh update-tlmgr-latest.sh
    tlmgr update --self
    tlmgr update --all
    exit
    

    应该/opt/texbin用 TeX Live 二进制文件的实际路径或指向它的符号链接替换(在我的 GNU/Linux 系统上,我总是定义一个符号链接/opt/texbin)。

答案2

以下是我针对 Mac OS X 的解决方案:

cd /usr/local/texlive/2013/tlpkg/TeXLive/
mv TLPOBJ.pm TLPOBJ-31644.pm
curl http://tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/TLPOBJ.pm?view=co -o TLPOBJ.pm

然后你可以运行:

sudo tlmgr update

请注意,最好删除不需要的备份文件:

rm /usr/local/texlive/2013/tlpkg/TeXLive/TLPOBJ-31644.pm

答案3

可能有几个文件包含此错误,如果在尝试 egreg 的解决方案后仍然出现此错误,您可以尝试搜索/usr/local/texlive/2013/tlpkg/tlpobj/pythontex.tlpobj""Quick start" documentation"删除多余的引号。

如果仍然出现错误,您可以尝试运行grep -nr '"Quick start"' /usr/local/texlive/2013/tlpkg。这应该会列出更多带有有问题的引号的文件。请注意,此命令列出的某些文件可能是早期文件的备份,但如果您也更改这些文件,则可能影响不大。

如何使用vim来纠正错误

如果您不确定如何编辑文件,请尝试:

sudo vim /path/to/file

然后输入行号,然后按 G(如127939GOP 的情况;grep如果需要,该工具会告诉您任何额外副本的行号)。接下来,输入i,然后使用箭头键导航到有问题的引号并使用退格键将其删除。最后,按 Esc 键,输入:x,然后按 Enter。

如果什么都不起作用(最后的手段)

首先,您应该尝试等待新的 tlmgr 更新过滤,以便在接下来的几天内提供一个简单的修复。

否则,要手动卸载 TeXLive,请尝试以下操作(确保这是它在您的机器上的安装方式):

sudo rm -Rf /usr/local/texlive/2013
sudo rm -Rf /usr/local/texlive/texmf-local

这应该允许您重新安装。但请注意,当您重新安装 TeXLive 时(取决于您下载的版本),您可能会""Quick start" documentation"再次安装该错误!

注意:我的提示假设您在 *nix 系统(UNIX、Linux、OS X 等)上运行它。

答案4

这行代码应该可以解决问题(这假设全局安装到 /usr/local/,因此修改目标以适合您的安装,sudo如果是单用户安装则跳过)

sudo wget http://mirrors.ctan.org/systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm -O /usr/local/texlive/2013/tlpkg/TeXLive/TLPOBJ.pm

这是 seeberg 在评论中所建议的,但这或多或少可以起到防假的作用。

相关内容