首页
/ Overleaf/ShareLaTeX 升级 TeX Live 2024 的解决方案

Overleaf/ShareLaTeX 升级 TeX Live 2024 的解决方案

2025-05-15 16:42:12作者:侯霆垣

在 Overleaf/ShareLaTeX 项目中,当用户尝试安装完整的 TeX Live 套件(scheme-full)时,可能会遇到版本不兼容的问题。本文将详细解释这一问题的成因,并提供完整的解决方案。

问题背景

当在 Overleaf/ShareLaTeX 环境中执行 docker exec sharelatex tlmgr install scheme-full 命令时,系统会报错提示本地 TeX Live 版本(2023)比远程仓库版本(2024)旧,无法直接进行跨版本更新。

根本原因

TeX Live 的版本更新机制要求用户必须使用专门的升级脚本进行跨版本更新,而不能直接通过 tlmgr 命令完成。这是 TeX Live 项目设计的安全机制,防止意外的大版本升级导致系统不稳定。

解决方案

1. 获取升级脚本

首先需要下载官方的升级脚本:

wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
chmod +x update-tlmgr-latest.sh

2. 执行升级

运行以下命令完成升级:

./update-tlmgr-latest.sh -- --update

3. 进入 Docker 容器

对于不熟悉 Docker 的用户,需要先进入容器内部:

docker exec -it sharelatex bash

然后在容器内执行上述升级命令。

4. 持久化升级

升级完成后,为了确保容器重启后不丢失更新,需要提交容器更改:

docker commit sharelatex sharelatex/sharelatex:<自定义标签>

然后在 docker-compose.yml 中更新镜像引用:

services:
    sharelatex:
        image: sharelatex/sharelatex:<自定义标签>

最新版本支持

在 Overleaf Server Pro 5.1 及更高版本中,这一问题已得到修复,用户可以直接安装 scheme-full 而无需手动升级。

技术建议

  1. 定期检查 TeX Live 版本更新
  2. 对于生产环境,建议在测试环境中先验证升级
  3. 考虑使用版本控制管理 Docker 镜像变更
  4. 备份重要数据后再进行大版本升级

通过以上步骤,用户可以顺利完成 TeX Live 从 2023 到 2024 版本的升级,并安装完整的 TeX Live 套件。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
27
11
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
470
3.48 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
10
1
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
65
19
flutter_flutterflutter_flutter
暂无简介
Dart
718
172
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
209
84
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.27 K
695
rainbondrainbond
无需学习 Kubernetes 的容器平台,在 Kubernetes 上构建、部署、组装和管理应用,无需 K8s 专业知识,全流程图形化管理
Go
15
1
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
1