news 2026/10/5 11:04:11

TeX Live 安装全攻略:从镜像源选择到环境配置的常见坑与解法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TeX Live 安装全攻略:从镜像源选择到环境配置的常见坑与解法

TeX Live 的安装问题,说到底是三个层面的问题叠在一起:版本选错、下载源不对、装完之后环境没配对。上周我远程帮一个朋友排查安装失败,从晚上九点折腾到十一点,最后看到终端里出现Welcome to TeX Live那一刻,我长出一口气。这篇文章就把这次"已解决"的完整过程拆开写,顺便把我这些年踩过的 Texlive 安装相关的坑一并清点一遍。

1. 装 Texlive 之前,先把版本、镜像和磁盘这三件事定下来

1.1 版本选择:网络安装版、DVD 版还是 TinyTeX

很多人在装 TeX Live 的第一步就走错了,他们直接去官网首页找链接,下载了一个不知道是"网络安装器"还是"完整镜像"的包。官网上的下载链接看起来都一样,实际差得远。

目前常用的安装来源有三种,我标个对比:

安装方式体积适合场景主要坑点
install-tl.zip网络安装版3MB 左右启动器,安装时按需下载绝大多数人的最佳选择安装时网络不稳会导致各种奇怪报错
install-tl.iso全量镜像单张 DVD 约 4-5GB无网络环境、离线安装下载慢;挂载解压后容易遇到文件路径问题
TinyTeX 引导版很小,按需拉取宏包对磁盘空间敏感、只想用基础功能后续要自己手动补宏包,不适合完整工作流

我的建议很直接:优先选网络安装版install-tl.zip。它不是一个完整的发行版,而是一个引导程序,你运行它之后,它会根据你选的 scheme(方案)从仓库拉取对应宏包和工具。装完节省了大量本地空间,而且以后想补包直接用tlmgr拉。官方提供的完整 ISO 文件虽然可以离线用,但你要等一个 4GB 的下载,装的时候全量展开还特别慢,普通用户完全没必要。

1.2 镜像源和校验:最容易被忽略的两步

很多人把install-tl.zip下载下来就迫不及待双击运行,结果在安装进行到一半被各种问题卡住。这里有两个细节,我每次重装都会执行:

第一,不要直接使用官网默认仓库地址。官方提供的 CTAN 网络仓库在高峰期非常不稳定,尤其你在校园网或者公司内网里,连接很容易中断。我一般固定用清华 TUNA 镜像或者中科大 USTC 镜像,选一个稳定的镜像能省掉一半麻烦。下面是两个常用源,替换<repository-path>时直接用即可:

  • 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/
  • 中科大镜像:https://mirrors.ustc.edu.cn/CTAN/systems/texlive/tlnet/

第二,下载完install-tl.zip先校验压缩包完整性,不要直接解压。压缩包如果在下到一半断了但浏览器仍显示成功,解压时会出现缺失文件,安装时必然报错。Windows 上可以用 PowerShell 跑校验,Linux 用sha256sum。官网或者镜像站会提供对应的哈希值,先对比再动它。

另外,安装前检查一下磁盘空间。全量安装scheme-full会占用 8GB 以上,基础方案scheme-small也要 2GB 左右。我当时帮朋友排查时,第一眼看到的就是他 C 盘剩余空间只有 800MB,装到中途直接提示No space left on device,我让他清理完临时文件再重来,问题就没了。可以先执行df -h(Linux/macOS)或者看系统盘的剩余空间,确认足够再开始。

2. 实测踩坑:一次完整安装的排查链路(已解决)

2.1 坑一:install-tl.zip解压正常,终端却说脚本无效

朋友那晚遇到的第一个报错就是,他用 Windows 自带解压工具解压了install-tl.zip,然后双击install-tl.bat,弹出一个窗口三秒就消失,什么都没发生。这个问题我遇到太多次,根子通常不在 Texlive,而在解压环节。

Windows 自带的资源管理器解压对符号链接和脚本权限的支持很弱,Texlive 安装包内部有一些 perl 脚本和符号链接,解压不完整后脚本就无法执行。我让他换用 7-Zip 重新解压到D:\texlive-src这样的路径(不要在路径里带中文和空格),然后再从命令行进入该目录,执行:

install-tl-2025\install-tl.bat

如果你看到窗口还是一闪而过,可以按住Shift + 右键选择"在终端中打开",改成在 PowerShell 里运行:

.\install-tl-2025\install-tl.bat

这样就算报错,也能看到具体的错误信息,而不是一闪而过的黑窗口。

第二个隐藏问题是杀毒软件拦截。我朋友的 Windows Defender 实时保护会把install-tl.bat里调用 perl 创建大量小文件的行为当成可疑操作,导致脚本在中途被静默终止。我让他把整个D:\texlive-src目录加入白名单,再执行一次,速度肉眼可见地快了很多。

2.2 坑二:安装进度停在某个 collection,反复重试还是中断

在我帮他换了解压方式、绕过杀毒拦截后,安装终于跑起来了。但好景不长,进度条走到了某个collection,然后一直显示类似downloading ... timeout或者cannot resolve host,卡在那里不动。

这就是典型的网络仓库不稳定导致的问题。安装器使用的默认仓库是官方源,而我们的网络环境访问它并不稳定。虽然安装器本身支持断点续传,但如果仓库连接反复超时,重试几十次也照样失败。

解决办法是在启动安装器时显式指定稳定的镜像源:

perl install-tl --repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

在 Windows 上只需要打开 PowerShell,进入解压目录后执行:

.\install-tl-2025\install-tl-windows.bat --repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

如果你不想敲命令,也可以直接打开刚生成的texlive.profile配置文件,把repository的值改成上面的镜像地址,然后再执行安装。

注意一点,尽量保持网络的干净和稳定。如果你电脑上还跑着多个占用带宽的软件,或者挂了很多学习资料下载任务,安装器几十个线程同时拉包,很容易中途超时。我一般会在安装期间把不相关的联网软件关掉,只保留下载进程,再配合镜像源,基本一次过。

2.3 坑三:Linux 下提示缺少 perl 模块

后来朋友换了一台 Ubuntu 机器重新安装,报错又变了,弹出来类似perl: command not found,或者Can't locate Tk.pm in @INC。这里说明一下:TeX Live 的安装器本质上是一组 perl 脚本,如果你的 Linux 发行版里 perl 不完整,或者根本没装,安装流程就没法启动。

Linux 下大多发行版默认都有 perl 环境,但有些精简版系统只装了最基础的 perl,缺少额外的模块。比如 Debian/Ubuntu 官方源里的install-tl会依赖perl-tk用于图形界面安装,如果你在无桌面环境下跑install-tl,它会提示缺perl-tk,但这其实不影响命令行安装,你可以忽略图形界面直接选择命令行模式。

我踩过更典型的坑是:系统本身没有 perl,我又用sudo执行安装脚本,导致环境变量和用户环境不匹配,报错定位起来特别困难。正确做法是先检查 perl 是否正常:

perl -v

如果没有输出,就先补装:

# Debian/Ubuntu sudo apt update && sudo apt install perl perl-tk perl-doc

装完 perl 再重新跑安装器。还有一个小技巧:使用install-tl的-gui text参数强制走纯文本界面,能避开因为缺少图形库引发的报错。

perl install-tl -gui text --repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

2.4 坑四:装完编译一个最小文档,xelatex 找不到

安装脚本终于走完,终端显示安装成功,但当我敲下xelatex --version时,系统直接回复command not found。这个问题几乎是所有新手都会遇到的坎:TeX Live 安装完成 ≠ 系统能直接用。

原因是安装器默认不会自动把可执行文件目录加进系统 PATH。TeX Live 的二进制目录在 Linux 上通常是:

/usr/local/texlive/2025/bin/x86_64-linux

在 Windows 上是:

C:\texlive\2025\bin\windows

你需要手动把这个目录加到环境变量。Linux 下如果你用 bash,可以在~/.bashrc里加:

export PATH=/usr/local/texlive/2025/bin/x86_64-linux:$PATH

Windows 下则通过"系统属性 → 环境变量 → 用户变量 → PATH"里新增上述路径。

我当时帮朋友排查时,发现他把路径写成了C:\texlive\2025\bin,漏了windows子目录,这导致一切都不生效。所以这里再多说一句:先看一眼安装目录下到底有没有bin\windows或bin/x86_64-linux,别猜路径。

3. 收尾配置:安装成功只算完成了六成

3.1 tlmgr 的使用逻辑:别一上来就update --all

能在终端敲出xelatex --version看到大段版本信息之后,只说明安装基本成功。还剩下最容易被忽略的一步:使用包管理器tlmgr确认宏包的完整性。

很多人装完就急着写论文,等编译时提示缺少某个.sty文件,比如经典的File 'comment.sty' not found,又回来折腾。正确的收尾动作是:

先更新包管理器自身:

tlmgr update --self

然后按需安装你需要的宏包,不建议直接全量更新。全量更新会把仓库里的所有宏包拉一遍,费时费力,而且有些宏包的新版本在几天内可能有兼容性问题,反而让你刚配好的环境变得不稳定。

我在每个新项目开始前,会先确认latexmk、xelatex、bibtex这三个工具能够正常调用。这三个覆盖了大多数中文论文和报告的工作流需求。如果需要某个具体宏包,再执行:

tlmgr install 宏包名

比如缺少comment.sty,就是:

tlmgr install comment

3.2 中文支持:CTeX 宏包和字体是两个独立问题

TeX Live 安装完成后,中文文档编译始终是高频问题。很多人更新宏包之后还是编译不了中文文档,问题往往出在字体层。

在 Windows 上,系统自带中文字体,一般可以直接跑:

\documentclass[UTF8]{ctexart} \begin{document} 你好,世界。 \end{document}

在 Linux 上就不一样了,即使装了ctex宏包,系统里没有可用的中文字体,编译也会失败。所以我建议在 Linux 桌面环境下额外安装 Noto CJK 字体:

# Debian/Ubuntu sudo apt install fonts-noto-cjk # CentOS/RHEL sudo yum install google-noto-sans-cjk-fonts

字体层搞定后,善待用xelatex编译,而不是pdflatex。ctex宏包配合xelatex是最省心的中文方案,底层直接走系统字体接口,不需要自己指定字体路径。

3.3 工作流验证:一份带参考文献的最小文档

我习惯安装后的最后一件事,是建一个临时目录,编写一份包含中文、引用和图片的最小文档,从零编译一遍,确认整条工作流已经打通。下面这个例子我测过无数次,可以直接拿去跑:

\documentclass[UTF8,a4paper]{ctexart} \usepackage{graphicx} \title{TeX Live 安装验证} \author{Me} \begin{document} \maketitle \section{概述} 这里是一段中文测试内容,验证 xelatex 下 ctex 宏包工作正常。 \section{引用测试} 这句引用自文献 \cite{key2024}。 \begin{thebibliography}{9} \bibitem{key2024} 作者. 标题[M]. 出版社, 2024. \end{thebibliography} \end{document}

编译命令顺序是有讲究的,尤其是带参考文献的文档,一次xelatex没办法把所有引用关系都解析出来。我通常跑四遍:

xelatex main.tex bibtex main xelatex main.tex xelatex main.tex

很多人只知道一条xelatex main.tex,结果参考文献区域变成问号,就以为是宏包问题。再强调一次:第一次xelatex生成.aux文件,bibtex读取.aux并提供参考文献数据,最后再做两次xelatex完整解析引用关系。跑完这套流程,PDF 页码和参考文献都能正常显示。

4. 其他零碎问题与最终建议

4.1 安装器里的 scheme 选择:全量还是精简

在安装器里你会看到一个关键选项:scheme(安装方案)。默认的全量方案是scheme-full,也就是把所有宏包都装进去,体积巨大且耗时;但如果你用scheme-basic,又能省到连常见文档类都没有。

我给出的选择逻辑很简单:

你的使用场景推荐 scheme
学生写论文、日常排版scheme-medium(中等方案),安装后按需补包
专业 LaTeX 重度用户scheme-full(全量方案),一劳永逸
只想写最简单的文档scheme-small,之后按需用 tlmgr 补

我自己现在固定用scheme-medium再配合tlmgr install补包。理由很简单:全量装的 90% 宏包我这辈子都用不上,而等论文 deadline 逼近时,从tlmgr里单独拉一个几十 KB 的宏包,比当初多花半小时装全量要划算得多。

安装器还提供collection级别的细粒度选择,比如文档类合集、图片工具合集、数学工具合集。如果你发现某个功能缺失,直接用tlmgr collection install <收藏集名>补装即可。

4.2 系统环境牵扯的问题:一是别误判,二是分清排查范围

扩展说一个容易让人困惑的情况。搜索引擎里"Texlive 安装问题"的相关联想词里有不少其他软件的安装词,比如 OnlyOffice、Cherry 之类的安装报错,甚至还有关于关闭主板超线程、开启 VT-x 这类系统级配置的讨论。这些内容乍看和 TeX Live 没关系,但实际上它们反映了一个共性问题:当系统里同时存在多个大型开发环境时,安装任何软件都可能触发环境冲突。

我遇到过一位做工业控制的同学,他电脑里装了基于 Windows 实时内核的工控软件,后来装 TeX Live 时老出现莫名的卡死,一开始他以为是 TeX Live 安装包坏了。查到最后发现是主板 BIOS 里虚拟化相关的设置被改过,导致实时内核与普通应用的内存调度产生冲突。这种问题和 TeX Live 本身没有任何关系,但因为它发生在"安装 Texlive 的过程中",很容易让人误判成"Texlive 没装好"。

我只提醒一句:出现非常规的系统级异常时,先分清问题归属,别在 TeX Live 的安装参数上反复折腾。CPU 超线程、虚拟化这类系统级配置确实会影响某些工业软件和虚拟机环境,但对 TeX Live 的编译和安装不产生决定性作用。排查优先级应该是:网络仓库问题 → 解压问题 → 路径问题 → 系统环境冲突,由简到难逐步推进。

4.3 我这些年积累的三个"早知道就好了"的习惯

我在反复安装 Texlive 若干次之后,沉淀了三个特别基础但特别救命的小习惯,分享给你:

第一,安装前先做一个系统还原点(Windows)或快照(Linux)。Texlive 安装过程会写入大量文件到系统目录,如果你后续误操作删了关键文件,还原点能让你十分钟回到安全状态,省掉一晚上的重装时间。

第二,保留安装日志。Texlive 安装器在执行时会把详细过程写到 install-tl.log 文件里,很多人不看它。实际上,报错的最终原因往往埋在日志的最后一百行里。排查时先打开日志,按ERROR、Warning过滤,再定位问题,比空想强得多。

第三,独立建一个工作目录用来做编译验证。我从来不在.bashrc里测试文档,而是在/tmp或者一个临时文件夹里测试编译。这样做的好处是:如果配置有问题,也不会污染你的正式论文目录。

写在结尾:那次"已解决"的复盘

回到开头那次排查。朋友最终在 11 点 14 分编译出了第一份中文 PDF,他在电话里明显松了一口气。复盘整个过程,问题根本不在 TeX Live 本身,而在三个叠加的环境因素:解压工具破坏了安装器脚本、杀毒软件拦截了批量文件创建、默认官方仓库连接超时。每一条单独拿出来都不算难题,但叠在一起就会让人产生"这软件是不是有毛病"的绝望感。

如果你现在正卡在某个安装报错前,我的建议是:把报错信息完整读一遍,它是你排查的起点;然后按"镜像源、磁盘空间、解压完整性、PATH 路径"这四个步骤逐层排查,不要图快。TeX Live 已经是所有主流发行版里安装逻辑非常标准的软件了,只要环境干净、步骤正确,一次装通并不是什么难事。

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

CNN花卉识别实战:数据集构建、网络设计与调参全流程解析

简介&#xff1a;该PDF文档是围绕基于卷积神经网络的花朵品种识别问题的学术论文&#xff0c;适合深度学习、机器学习与图像识别方向的学习者&#xff0c;以及需要参考图像分类项目设计思路的研究人员。文档从数据来源与预处理、CNN模型构建到BP参数优化展开&#xff0c;采用Re…

作者头像 李华
网站建设 2026/10/5 11:04:01

Android Compose布局间距全解析:从Modifier.padding到Arrangement

Android Compose的布局间距确实是个容易让人迷糊的地方。很多从传统View体系转过来的朋友&#xff0c;第一反应是找layout_margin和layout_padding的替代品&#xff0c;然后就会被Modifier.padding、Arrangement.spacedBy、Spacer这些概念搞得头大。刚上手时我也一样&#xff0…

作者头像 李华
网站建设 2026/10/5 11:03:13

Python微信小程序车辆违章停放执法移动端设计与实现全解析

每年毕业设计都会看到一大堆“XX管理系统”和“XX商城”&#xff0c;真正有点业务深度、又能把新技术串起来的题目反而不多。所以当我看到“Python微信小程序车辆违章停放执法移动APP”这个课题时&#xff0c;第一反应是&#xff1a;这个选题有得写。它不只是一个简单的增删改查…

作者头像 李华
网站建设 2026/10/5 11:03:13

Python+Flask+ECharts京东手机数据可视化分析实战

简介&#xff1a;基于Python与ECharts的京东手机销售数据分析与可视化技术论文PDF&#xff0c;面向电商从业者、数据分析人员及计算机专业学生与研究人员。论文完整介绍从京东官网爬取手机销售数据&#xff08;含参数与用户评价&#xff09;&#xff0c;利用Pandas进行清洗去重…

作者头像 李华
网站建设 2026/10/5 11:03:01

MicroLogix1400实战指南:RSLogix500与RSLinx Lite直连调试

1. 这不是“软件安装教程”&#xff0c;而是真实产线工程师的MicroLogix1400上手实录 MicroLogix1400——这个在2008年就停产、2017年正式终止技术支持的PLC型号&#xff0c;今天依然稳稳趴在华东某食品包装厂的灌装线上&#xff0c;控制着三台伺服电机同步推瓶、两组气动夹爪精…

作者头像 李华
网站建设 2026/10/5 11:01:40

RC电路设计失效真相:时间常数稳定性与高频寄生效应实战解析

1. 为什么一个看似简单的RC电路&#xff0c;总在实际设计中“不听话”你有没有遇到过这样的情况&#xff1a;照着教科书画了个RC低通滤波器&#xff0c;截止频率标称1kHz&#xff0c;结果实测下来——3dB点偏移到了700Hz&#xff0c;相位响应歪得不像样&#xff1b;或者用RC给运…

作者头像 李华