今天我的 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 Start
docfile 标签中的双引号没有被正确转义。
修复已上传至 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 用户在遇到问题时应该
启动 TeX Live Utility 并重新安装
tlmgr
:菜单“操作 > 重新安装 TeX Live Manager”重新启动 TeX Live Utility
执行基础设施更新
更新所有 TeX Live 软件包
在完整更新之前,可能无法在包列表选项卡上进行访问,因为错误的pythontex
条目会挂起 TeX Live Utility 使用的 Python 脚本。
GNU/Linux 系统
在 GNU/Linux 系统上运行 vanilla TeX Live 的用户应该
http://mirror/ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
使用wget
或下载curl -O
获取超级用户权限并运行
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(如127939G
OP 的情况;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 在评论中所建议的,但这或多或少可以起到防假的作用。