我在 Windows XP 机器上同时安装了 TL 2008、TL 2010 和 TL 2011。然而,安装 TL 2011 后,我发现无法运行 2008 版 TeXLive 管理器。TL 2008 管理器的路径仍然正确:
C:\>"C:\Program Files\texlive\2008\bin\win32\tlmgr.bat" gui
弹出一个 DOS 窗口并显示以下消息:
Loading local TeX Live Database
This may take some time, please wait!
TeXLive::TLUtils::setup_programs (w32) failed at C:/texlive/2011/tlpkg/TeXLive/TLUtils.pm line 2192.
C:\texlive\2011\tlpkg\installer\wget\wget.exe --version failed (status 256):
Output is:
wget: WGETRC points to C:/texlive/2011/tlpkg/installer/wgetrc, which doesn't exist.
Couldn't set up the necessary programs.
Installation of packages is not supported.
Please report to [email protected].
Continuing anyway ...
Completed.
关于如何纠正这种行为有什么建议吗?
更新:tlmgr.bat 的内容
@echo off
rem tl-w32-starter.bat
rem universal script starter, batch file part
rem this program calls the tl-w32-wrapper.texlua
setlocal
set ownpath=%~dp0%
texlua "%ownpath%tl-w32-wrapper.texlua" "%~dpn0" %*
endlocal
答案1
由于您正在运行多个版本的 TeXLive,因此将默认使用最新安装版本的可执行文件。提供特定 TeX Live 发行版的绝对路径应该可以解决您的问题。也就是说,直接texlua
实际使用
目录:\Program Files\texlive\2008\bin\win32\texlua
在您的tlmgr.bat
TeX Live 2008 中。
答案2
从错误消息中可以明显看出,您的系统设置为使用 TL'11 而不是 TL'08。另一个答案中给出的tlmgr.bat
通过使用绝对路径进行“修复”的建议并texlua
没有真正解决问题——tlmgr
可能仍然需要一些其他实用程序(例如kpsewhich
),并且最终仍会使用错误的实用程序。看到这样的建议被接受让我很痛苦。更改原始文件永远不是一个好主意,除非作为最后的手段,否则不应鼓励这样做。
正确的解决方案是设置PATH
变量,以便找到正确的 TL 实用程序。您可以在系统范围内、每个命令解释器 ( cmd.exe
) 会话或使用一些包装器执行此操作,或者以最适合您的方式执行此操作。假设希望管理多个 TL 版本的用户已经足够了解他们的平台,能够在不同 TL 版本之间正确切换。