news 2026/7/19 3:08:55

TeX Live 安装报错:为什么修改 TEMP 和 TMP 后就能正常安装?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TeX Live 安装报错:为什么修改 TEMP 和 TMP 后就能正常安装?

一、问题背景

在 Windows 系统中安装 TeX Live 2026 时,我最开始将 TeX Live 安装到:

D:\latex

但是安装过程中仍然出现了下面的错误:

open(>C:\Users\D\x{00a1}\x{00c7}\x{00c7}\AppData\Local\Temp\ jAwfJF6xdB\XJVidyEL9z\a2ping.windows.r65891.tar.xz) failed: No such file or directory

报错发生在安装软件包时:

Installing [0005/4980]: a2ping.windows

刚开始我以为是 TeX Live 的安装位置有问题,因此尝试把安装目录从 D 盘改到 C 盘:

C:\texlive\2026

但安装时依然出现相同错误。

后来发现,问题并不在 TeX Live 最终安装到 C 盘还是 D 盘,而是出在 Windows 的临时文件目录上。


二、TeX Live 安装时涉及哪些路径?

安装 TeX Live 时,实际上至少会使用三类路径。

1. 安装源目录

这是 TeX Live 安装文件所在的位置,例如:

D:\texlive2026

该目录中包含:

archive source texlive-doc tlpkg install-tl install-tl-windows.bat

其中:

install-tl-windows.bat

是 Windows 系统下用于启动 TeX Live 安装程序的批处理文件。

2. 最终安装目录

这是 TeX Live 安装完成后的存放位置,例如:

D:\latex\2026

安装完成后,XeLaTeX、PDFLaTeX、LuaLaTeX 等程序会位于:

D:\latex\2026\bin\windows

3. 临时文件目录

这是本次问题的关键。

TeX Live 在安装过程中,并不是直接把所有文件写入最终安装目录。安装程序通常会先把软件包读取或复制到 Windows 临时目录中,再进行校验、解压和安装。

Windows 默认的临时目录通常是:

C:\Users\用户名\AppData\Local\Temp

例如:

C:\Users\张三\AppData\Local\Temp

即使最终安装位置设置成:

D:\latex\2026

安装程序仍然可能先使用:

C:\Users\张三\AppData\Local\Temp

因此,只修改 TeX Live 的最终安装目录,并不能改变其临时文件路径。


三、为什么安装到 C 盘还是会报错?

原始报错中最值得注意的不是:

Installing to: C:/texlive/2026

而是下面这一段:

C:\Users\D\x{00a1}\x{00c7}\x{00c7}\AppData\Local\Temp

正常情况下,这里应该显示一个完整、可识别的 Windows 用户名。

但是日志中却出现了:

\x{00a1} \x{00c7}

这通常说明安装程序在处理用户目录中的中文字符、特殊字符或字符编码时发生了异常。

也就是说,实际用户目录可能类似:

C:\Users\某个中文用户名\AppData\Local\Temp

但是 TeX Live 安装程序内部的 Perl 程序没有正确识别这些字符,于是将其显示为:

\x{00a1} \x{00c7}

接下来,安装程序尝试打开临时软件包:

a2ping.windows.r65891.tar.xz

由于路径中的字符已经被错误解析,程序找不到该文件,于是报错:

No such file or directory

因此,这个报错并不是说a2ping.windows软件包本身不存在,而是安装程序根据错误编码后的路径找不到它。


四、为什么修改 TEMP 和 TMP 就能解决?

Windows 程序通常通过以下环境变量确定临时目录:

TEMP TMP

部分程序还可能读取:

TMPDIR

Windows 默认情况下,这些环境变量通常指向:

C:\Users\用户名\AppData\Local\Temp

我们可以在安装 TeX Live 之前,临时将这些变量修改为一个不含中文和特殊字符的目录,例如:

D:\tl-temp

执行:

set "TEMP=D:\tl-temp" set "TMP=D:\tl-temp" set "TMPDIR=D:\tl-temp"

之后,在同一个 CMD 窗口中启动 TeX Live 安装程序。

此时,安装程序会读取到新的临时目录:

D:\tl-temp

而不再使用:

C:\Users\中文用户名\AppData\Local\Temp

由于新路径全部由英文字母、冒号、反斜杠和连字符组成,不存在中文字符编码问题,因此安装程序能够正常读取、解压和安装软件包。

整个安装流程可以理解为:

TeX Live 安装源 D:\texlive2026 ↓ 临时读取和解压目录 D:\tl-temp ↓ 最终安装目录 D:\latex\2026

三个路径都是纯英文路径,因此安装可以顺利完成。


五、完整解决步骤

第一步:准备安装源

将 TeX Live ISO 文件解压或挂载,并确认安装源位于:

D:\texlive2026

该目录中应当能够看到:

install-tl-windows.bat

第二步:准备最终安装目录

创建目录:

D:\latex

建议最终将 TeX Live 安装到:

D:\latex\2026

按年份建立目录,可以避免不同版本之间相互覆盖。

第三步:创建纯英文临时目录

在 D 盘创建:

D:\tl-temp

目录结构可以整理为:

D:\ ├─ latex ├─ tl-temp └─ texlive2026

第四步:以管理员身份打开 CMD

在 Windows 开始菜单搜索:

cmd

右键“命令提示符”,选择:

以管理员身份运行

然后执行:

mkdir D:\tl-temp set "TEMP=D:\tl-temp" set "TMP=D:\tl-temp" set "TMPDIR=D:\tl-temp"

可以使用下面的命令检查是否修改成功:

echo %TEMP% echo %TMP% echo %TMPDIR%

正常情况下,三条命令都应该输出:

D:\tl-temp

第五步:在同一个 CMD 中启动安装程序

继续在当前 CMD 窗口中执行:

cd /d D:\texlive2026 call install-tl-windows.bat

也可以直接执行:

call D:\texlive2026\install-tl-windows.bat

随后会打开 TeX Live 图形安装界面。

在安装界面中,将安装根目录设置为:

D:/latex/2026

然后开始安装即可。


六、为什么必须在同一个 CMD 窗口中启动?

这是整个解决方案中最容易忽略的一点。

下面的命令:

set "TEMP=D:\tl-temp" set "TMP=D:\tl-temp"

只会修改当前 CMD 进程中的环境变量。

它不会永久修改整个 Windows 系统,也不会自动影响已经打开的资源管理器。

可以把进程之间的关系理解为:

当前 CMD ├─ TEMP=D:\tl-temp ├─ TMP=D:\tl-temp └─ 启动 TeX Live 安装程序 ↓ 继承当前 CMD 的环境变量

在同一个 CMD 中执行:

call install-tl-windows.bat

TeX Live 安装程序是由当前 CMD 启动的,因此它会继承:

TEMP=D:\tl-temp TMP=D:\tl-temp

但是,如果设置完环境变量后关闭 CMD,再到资源管理器中双击:

install-tl-windows.bat

那么安装程序就不是由刚才的 CMD 启动,而是由 Windows 资源管理器启动。

此时进程关系变成:

Windows 资源管理器 ↓ 启动 TeX Live 安装程序 ↓ 使用系统原来的 TEMP 和 TMP

安装程序又会使用:

C:\Users\中文用户名\AppData\Local\Temp

于是原来的乱码路径问题可能再次出现。

所以,最关键的操作不是简单地执行set TEMP,而是:

在设置 TEMP 和 TMP 的同一个 CMD 窗口中启动 TeX Live 安装程序。


七、call命令有什么作用?

启动批处理文件时使用了:

call install-tl-windows.bat

call的作用是从当前批处理或命令环境中调用另一个批处理文件,并在其执行结束后返回当前命令环境。

在本次安装中,使用call可以明确保证:

  1. install-tl-windows.bat从当前 CMD 环境启动;
  2. 安装程序继承当前设置的TEMPTMPTMPDIR
  3. 批处理执行后,CMD 窗口仍然保持可用;
  4. 便于查看安装程序启动过程中输出的错误信息。

直接执行下面的命令通常也可以启动:

install-tl-windows.bat

但是使用call更明确,也更适合批处理文件调用场景。


八、为什么不需要永久修改系统环境变量?

本次问题只需要在安装 TeX Live 时避开带有中文字符的临时目录,因此没有必要永久修改 Windows 的系统环境变量。

使用:

set "TEMP=D:\tl-temp"

只对当前 CMD 窗口和由它启动的程序有效。

关闭这个 CMD 后,Windows 原来的临时目录设置仍然保留,不会影响其他软件。

这种方式的优点是:

  • 不会修改系统全局配置;
  • 不会影响其他程序;
  • 操作风险较小;
  • 安装完成后不需要恢复;
  • 关闭 CMD 后自动失效。

如果以后重新安装或更新 TeX Live 时再次遇到类似问题,可以重新执行相同命令。


九、如何判断问题是否真正解决?

重新运行安装程序后,可以观察安装日志中的临时路径。

错误情况下可能显示:

C:\Users\某中文用户名\AppData\Local\Temp\随机目录

或者显示无法识别的字符:

C:\Users\D\x{00a1}\x{00c7}\x{00c7}\AppData\Local\Temp

正确设置后,临时路径应当变成类似:

D:\tl-temp\jAwfJF6xdB\XJVidyEL9z

同时安装目标应当显示:

Installing to: D:/latex/2026

只要日志中不再出现原来的用户临时目录,并且软件包能够继续安装,就说明问题已经解决。


十、常见错误操作

1. 只修改最终安装目录

例如将:

C:\texlive\2026

修改为:

D:\latex\2026

这只能改变最终安装位置,不能改变临时目录,因此无法解决用户目录编码问题。

2. 设置 TEMP 后关闭 CMD

执行:

set "TEMP=D:\tl-temp"

然后关闭 CMD,再双击安装程序,这样设置不会传递给安装程序。

3. 临时目录仍然含有中文

不建议使用:

D:\软件\临时目录

建议使用:

D:\tl-temp

4. 安装源路径含有中文或空格

虽然部分程序能够处理空格,但为了减少兼容性问题,建议安装源也使用简短的纯英文路径:

D:\texlive2026

而不是:

D:\我的软件\TeX Live 2026安装文件

5. 误以为是安装包损坏

报错中虽然出现:

a2ping.windows.r65891.tar.xz

但这不一定表示该压缩包损坏或缺失。

因为真正的错误是:

open(...) failed: No such file or directory

结合异常编码路径来看,更可能是安装程序找错了位置,而不是安装源中没有这个软件包。


十一、可直接使用的一组命令

假设:

  • 安装源为D:\texlive2026
  • 临时目录为D:\tl-temp
  • 最终安装目录准备设置为D:\latex\2026

以管理员身份打开 CMD 后,依次执行:

mkdir D:\tl-temp set "TEMP=D:\tl-temp" set "TMP=D:\tl-temp" set "TMPDIR=D:\tl-temp" echo %TEMP% echo %TMP% echo %TMPDIR% cd /d D:\texlive2026 call install-tl-windows.bat

随后在弹出的安装界面中,将 TeX Live 安装目录设置为:

D:/latex/2026

即可正常安装。


十二、总结

本次 TeX Live 安装失败的根本原因,不是 TeX Live 安装在 C 盘还是 D 盘,也不是D:\latex目录存在问题,而是安装程序仍然使用了 Windows 默认临时目录:

C:\Users\用户名\AppData\Local\Temp

当用户目录中包含中文或特殊字符时,TeX Live 安装程序内部的 Perl 组件可能无法正确解析路径,从而出现:

\x{00a1} \x{00c7}

等异常字符,最终导致:

No such file or directory

解决方法是提前创建一个纯英文临时目录:

D:\tl-temp

然后在管理员 CMD 中临时修改:

set "TEMP=D:\tl-temp" set "TMP=D:\tl-temp" set "TMPDIR=D:\tl-temp"

最后在同一个 CMD 窗口中运行:

cd /d D:\texlive2026 call install-tl-windows.bat

这样,TeX Live 安装程序就会继承当前 CMD 的环境变量,绕开存在字符编码问题的用户临时目录,从而顺利完成安装。

一句话概括:

TeX Live 不是因为安装到了 D 盘才成功,而是因为它的临时解压路径从含有中文字符的用户目录,切换成了纯英文目录D:\tl-temp

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 3:08:47

C#开发PC-DMIS文件解析与自动化测量

1. PC-DMIS文件解析需求背景PC-DMIS作为工业测量领域的专业软件,其生成的.prg程序文件包含了三坐标测量机的完整检测逻辑。在智能制造场景中,企业常需要将这些测量程序集成到MES系统或质量分析平台中。通过C#进行二次开发可以实现:测量结果的…

作者头像 李华
网站建设 2026/7/19 3:08:45

GPT-5.6 Sol:多模态大模型在数学推理与视觉理解的技术突破

这次我们来关注一个近期在技术社区引发热议的话题——GPT-5.6 Sol。从名称上看,这似乎是OpenAI GPT系列的一个新版本,特别强调了其在数学(Sol)和视觉能力方面的突破。不过需要明确的是,目前OpenAI官方并未发布名为&quo…

作者头像 李华
网站建设 2026/7/19 3:08:19

【无标题】vmware虚拟机无法勾选**将主机虚拟适配器连接到此网络** /没有网络(不显示网络图标)的解决方法

先使用ccleaner修复无法勾选将主机虚拟适配器连接到此网络但是虚拟机无法显示网络图标,如下操作后修复。 虚拟机终端执行命令 # 只删除状态文件不会删除已保存的 WiFi 密码、有线配置,只会重置服务运行状态,不会丢失网络配置。 # 停止系统自带…

作者头像 李华
网站建设 2026/7/19 3:08:03

LLM交互设计:从提示词工程到认知对齐的实战方法论

1. 这不是“调用API”——而是重建人与智能体的对话契约“Mastering LLM Interactions”这个标题,乍看像一本技术手册的副标题,但在我过去三年带团队落地27个LLM应用项目、亲手打磨过412版提示词、在客服、法务、教育、医疗四个强约束场景反复踩坑之后&a…

作者头像 李华
网站建设 2026/7/19 3:07:25

Python流程控制语句详解:从基础到高级应用

1. Python流程控制语句概述在Python编程中,流程控制语句是构建程序逻辑的基础工具。它们决定了代码的执行顺序和条件分支,就像交通信号灯指挥车辆行驶方向一样重要。掌握这些语句能让你从简单的脚本编写者成长为能够解决复杂问题的开发者。Python提供了多…

作者头像 李华
网站建设 2026/7/19 3:05:56

动态职业规划:四步法打造抗风险能力体系

1. 职业规划的本质与常见误区职业规划这件事,大多数人都做错了。我们常被教导要"设定五年目标"、"制定发展路径",但现实是,80%的职业转折点都源于计划外的机遇。真正的职业规划不是画路线图,而是培养应对变化…

作者头像 李华