无sudo权限远程连接Ubuntu服务器安装TeX Live实操记录(适配VS Code+LaTeX Workshop,含路径选择与卸载方案)

在日常科研和文档编写中,LaTeX是必备工具之一。近期需要通过VS Code远程连接无可视化界面的Ubuntu服务器编辑LaTeX文档,且服务器无sudo权限、多人共用一个SSH账号,踩了不少路径配置和环境冲突的坑。特此记录完整实操流程,精准还原每一步终端交互细节,并补充完整卸载方案,供有类似需求的朋友参考。

一、核心背景与需求

  • 服务器环境:Ubuntu系统、无sudo权限、无可视化界面,多人共用一个SSH账号(我的个人专属文件夹为 ~/tp,位于用户主目录下)。

  • 本地工具:VS Code(Visual Studio Code),已提前安装Remote - SSH、LaTeX Workshop两款核心插件。

  • 核心需求:在服务器上安装仅自己可用的LaTeX编译环境,支持VS Code通过LaTeX Workshop点击按钮编译,避免与其他用户的文件、环境变量产生冲突。

二、关键前提:安装路径选择(个人文件夹tp vs 主目录~)

这是多人共用账号场景下的核心问题,直接决定是否会与其他用户产生冲突,先明确核心结论:优先安装到自己的个人专属文件夹(如/tp),而非用户主目录(,原因如下:

  • 主目录(~)是当前SSH账号的全局共享目录,所有共用该账号的用户都能访问、修改其中的文件。若将TeX Live安装到~,可能出现他人误删安装文件、环境变量被覆盖、编译命令冲突等问题。

  • 个人文件夹(如~/tp)是专属私有空间,仅自己可操作,将TeX Live安装在此处,能完全隔离其他用户的环境,避免冲突,且后续卸载、迁移也更便捷,不会影响他人使用。

  • 补充说明:无论安装到tp文件夹还是主目录,核心操作逻辑完全一致,仅需全程统一路径即可(安装路径、环境变量配置、VS Code编译路径三者必须严格对应)。本文以安装到~/tp为例(推荐方案,适配多人共用账号场景);若仅你一人使用该SSH账号和VS Code,无需隔离环境,直接安装到主目录(~)即可,后续会标注主目录安装的路径修改点。

三、完整安装流程(安装到~/tp个人文件夹,完全贴合实操)

全程操作均在远程Ubuntu服务器终端执行(通过VS Code的Remote - SSH插件连接成功后,打开终端即可操作),核心思路:创建目录→下载安装包→私有目录配置安装→环境变量配置→VS Code编译路径适配→测试验证。

步骤1:创建专属目录并下载TeX Live安装包

先进入个人tp文件夹,创建临时安装目录,避免文件混乱,同时确保所有操作都在个人私有空间内进行:

bash 复制代码
# 1. 进入用户主目录,创建并进入个人tp文件夹(若tp文件夹已存在,直接进入)
cd ~
mkdir -p tp && cd tp

# 2. 创建临时安装目录texlive_install(用于存放安装包和解压文件)并进入
mkdir -p texlive_install && cd texlive_install

# 3. 下载TeX Live安装包(国内服务器优先选择清华源,下载速度更快)
wget https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz
# 国外服务器可使用官方源(速度较慢,按需选择):
# wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

# 4. 解压安装包(解压后会生成以install-tl-开头的目录,目录名含版本信息)
tar -xzf install-tl-unx.tar.gz

# 5. 进入解压后的安装目录(用通配符匹配,无需手动输入完整目录名)
cd install-tl-*

步骤2:交互式配置并安装TeX Live(核心步骤,精准还原终端交互)

执行安装脚本进入交互式配置界面,核心是修改核心安装目录(TEXDIR)为~/tp/texlive(默认系统目录无写入权限,且会影响其他用户,必须修改),全程按以下步骤逐行操作:

bash 复制代码
# 执行安装脚本,进入TeX Live主配置菜单(终端会显示完整的配置界面)
./install-tl

进入主配置菜单后,按以下顺序操作(输入数字/大写字母,每步操作后按回车确认,完全对应终端界面):

  1. 输入D:进入「目录配置子界面」(对应主菜单中的<D> set directories选项),这是修改核心安装路径的唯一正确入口。

  2. 进入目录配置子界面后,终端会显示各目录配置项(核心关注<1> TEXDIR),此时输入1:选中<1> TEXDIR(核心安装目录,默认路径为/usr/local/texlive/2025,该路径无写入权限,且为系统公共目录,必须修改)。

  3. 输入1后,终端会立即提示:New value for TEXDIR [/usr/local/texlive/2025]:(括号内为默认路径,无需删除或修改默认路径文本),直接输入个人私有安装路径~/tp/texlive,按回车确认。

  4. 路径确认后,终端会自动刷新目录配置界面,此时<1> TEXDIR对应的路径会更新为/home/ubuntu/tp/texlive(系统已自动将~/tp/texlive解析为完整绝对路径),同时<2>-<4>(TEXMFLOCAL、TEXMFSYSVAR、TEXMFSYSCONFIG)会同步适配为TEXDIR下的子目录,完整界面如下(与实际终端完全一致):

plain 复制代码
===============================================================================
Directories customization:

 <1> TEXDIR:         /home/ubuntu/tp/texlive
     main tree:      /home/ubuntu/tp/texlive/texmf-dist

 <2> TEXMFLOCAL:     /home/ubuntu/tp/texlive/texmf-local
 <3> TEXMFSYSVAR:    /home/ubuntu/tp/texlive/texmf-var
 <4> TEXMFSYSCONFIG: /home/ubuntu/tp/texlive/texmf-config

 <5> TEXMFVAR:       ~/.texlive2025/texmf-var
 <6> TEXMFCONFIG:    ~/.texlive2025/texmf-config
 <7> TEXMFHOME:      ~/texmf

 Note: ~ will expand to $HOME (or to %USERPROFILE% on Windows)

Actions:
 <R> return to main menu
 <Q> quit

Enter command: 
===============================================================================

确认路径无误即可(无需关注<2>-<7>其他目录,系统已自动完成适配)。

  1. 路径确认无误后,终端底部会显示Enter command: 提示,此时输入R并回车,从目录配置子界面返回「主配置菜单」。返回后主菜单会完整显示所有配置项(含已适配的私有路径),界面如下(与实际终端完全一致):
plain 复制代码
======================> TeX Live installation procedure <=====================

======>   Letters/digits in <angle brackets> indicate   <=======
======>   menu items for actions or customizations      <=======
= help>   https://tug.org/texlive/doc/install-tl.html   <=======

 Detected platform: GNU/Linux on x86_64
 
 <B> set binary platforms: 1 out of 15

 <S> set installation scheme: scheme-full

 <C> set installation collections:
     40 collections out of 41, disk space required: 9354 MB (free: 3926383 MB)

 <D> set directories:
   TEXDIR (the main TeX directory):
     /home/ubuntu/tp/texlive
   TEXMFLOCAL (directory for site-wide local files):
     /home/ubuntu/tp/texlive/texmf-local
   TEXMFSYSVAR (directory for variable and automatically generated data):
     /home/ubuntu/tp/texlive/texmf-var
   TEXMFSYSCONFIG (directory for local config):
     /home/ubuntu/tp/texlive/texmf-config
   TEXMFVAR (personal directory for variable and automatically generated data):
     ~/.texlive2025/texmf-var
   TEXMFCONFIG (personal directory for local config):
     ~/.texlive2025/texmf-config
   TEXMFHOME (directory for user-specific files):
     ~/texmf

 <O> options:
   [ ] use letter size instead of A4 by default
   [X] allow execution of restricted list of programs via \write18
   [X] create all format files
   [X] install macro/font doc tree
   [X] install macro/font source tree
   [ ] create symlinks to standard directories

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <P> save installation profile to 'texlive.profile' and exit
 <Q> quit

Enter command: 
===============================================================================

此时可见 directories下的路径已全部适配私有目录,无需任何手动修改,直接进行后续操作即可。

  1. 主菜单底部显示Enter command: 提示,此时输入S并回车,进入「安装方案选择界面」(对应主菜单中的<S> set installation scheme选项),界面如下(与实际终端完全一致):
plain 复制代码
===============================================================================
Select scheme:

 a [X] full scheme (everything)
 b [ ] medium scheme (small + more packages and languages)
 c [ ] small scheme (basic + xetex, metapost, a few languages)
 d [ ] basic scheme (plain and latex)
 e [ ] minimal scheme (plain only)
 f [ ] infrastructure-only scheme (no TeX at all)
 g [ ] book publishing scheme (core LaTeX and add-ons)
 h [ ] ConTeXt scheme
 i [ ] GUST TeX Live scheme
 j [ ] teTeX scheme (more than medium, but nowhere near full)
 k [ ] custom selection of collections

Actions: (disk space required: 9354 MB)
 <R> return to main menu
 <Q> quit

Enter letter to select scheme: 
===============================================================================

界面中默认选中a [X] full scheme(完整版,约9G),可根据需求选择对应方案:输入方案前的字母(如a/b/c/d等)并回车,选中后输入R并回车,返回主配置菜单。

  1. 返回主菜单后,终端底部仍显示Enter command: 提示,此时输入I并回车,开始安装(对应主菜单中的<I> start installation to hard disk选项),耐心等待安装完成。

安装进度说明:

  • 基础版(scheme-basic):约10-30分钟,终端会实时打印安装进度(如下载进度、解压进度),无需额外操作。

  • 完整版(scheme-full):约1-2小时,期间终端会持续输出安装日志,保持终端连接正常即可,无需干预。

  • 安装成功标识:终端最终提示TeX Live installation complete,说明安装已全部完成。

步骤3:配置环境变量(让系统识别LaTeX命令)

安装完成后,需要配置环境变量,让当前用户能直接在终端调用pdflatex、xelatex等LaTeX编译命令(路径必须与步骤2中设置的安装路径严格一致):

bash 复制代码
# 编辑环境变量配置文件(bash终端默认使用~/.bashrc,zsh终端使用~/.zshrc,根据自己的终端类型选择)
nano ~/.bashrc

打开配置文件后,将光标移动到文件末尾(按键盘向下箭头即可),粘贴以下内容(路径务必对应~/tp/texlive,不可写错):

bash 复制代码
# TeX Live 环境变量(安装在~/tp个人文件夹内,适配Ubuntu服务器)
export PATH="$HOME/tp/texlive/bin/x86_64-linux:$PATH"
export MANPATH="$HOME/tp/texlive/texmf-dist/doc/man:$MANPATH"
export INFOPATH="$HOME/tp/texlive/texmf-dist/doc/info:$INFOPATH"

保存并退出编辑(nano编辑器操作):

  • Ctrl+O(触发保存操作)→ 按回车(确认保存,无需修改文件名)→ 按Ctrl+X(退出编辑器)。

让环境变量立即生效(无需重启终端,执行以下命令即可):

bash 复制代码
source ~/.bashrc

验证环境变量配置是否成功(执行以下命令,若输出版本信息,说明配置成功):

bash 复制代码
pdflatex --version
xelatex --version

异常处理:若执行命令后提示"command not found",大概率是路径错误。解决方案:进入~/tp/texlive/bin目录(执行cd ~/tp/texlive/bin),查看该目录下的架构目录名称(如arm64架构服务器可能是aarch64-linux),将环境变量配置中的"x86_64-linux"替换为实际的架构目录名称,重新执行source ~/.bashrc即可。

步骤4:适配VS Code+LaTeX Workshop(支持点击按钮编译)

核心是在VS Code中配置LaTeX Workshop插件,明确指定TeX Live编译命令的完整路径(避免依赖系统环境变量,防止与其他用户环境冲突),配置步骤如下:

  1. 在VS Code远程窗口中,按Ctrl+,(快捷键)打开设置界面。

  2. 在设置搜索框中输入"LaTeX Workshop: Latex Tools",找到该选项后,点击右侧的「编辑 in settings.json」(进入JSON配置文件编辑界面)。

  3. 在settings.json文件中,找到"latex-workshop.latex.tools"配置项,修改其中的command字段,填写~/tp/texlive路径下的完整编译命令(核心配置片段如下,其他配置项可保留默认或按需调整):

json 复制代码
{
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "$HOME/tp/texlive/bin/x86_64-linux/xelatex", // 核心路径,与安装路径一致
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "$HOME/tp/texlive/bin/x86_64-linux/pdflatex", // 核心路径,与安装路径一致
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
            "name": "bibtex",
            "command": "$HOME/tp/texlive/bin/x86_64-linux/bibtex", // 核心路径,与安装路径一致
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    // 可选配置:开启保存自动编译(无需手动点击编译按钮)
    "latex-workshop.latex.autoBuild.run": "onSave",
    // 可选配置:配置本地预览PDF(适配Ubuntu服务器无可视化界面的场景)
    "latex-workshop.view.pdf.external.enable": true,
    "latex-workshop.view.pdf.external.command": {
        "command": "open", // Windows系统替换为"cmd.exe",Linux本地替换为"xdg-open"
        "args": ["%PDF%"]
    }
}

配置保存:按Ctrl+S保存settings.json文件,配置立即生效,无需重启VS Code。

步骤5:测试验证(点击按钮编译,确认功能正常)

在VS Code远程窗口中,通过以下步骤验证编译功能是否正常:

  1. 在左侧文件管理器中,打开~/tp文件夹(个人私有目录)。

  2. 右键点击空白处,选择「新建文件」,命名为test.tex(LaTeX测试文件)。

  3. 打开test.tex文件,粘贴以下测试代码(含中文支持,适配日常使用场景):

latex 复制代码
\documentclass{article}
\usepackage{ctex} % 中文支持包(基础版已默认安装)
\title{TeX Live安装测试(个人文件夹tp)}
\author{远程Ubuntu服务器编译测试}
\date{\today}
\begin{document}
\maketitle
这是无sudo权限下,远程连接Ubuntu服务器安装到~/tp个人文件夹的TeX Live测试文档。
支持VS Code通过LaTeX Workshop点击按钮编译,本地预览PDF文件,中文显示正常。
\end{document}

编译测试:

  • 点击VS Code编辑器右上角的「▶️」(运行按钮),在弹出的菜单中选择「XeLaTeX」(适配中文编译)。

  • 编译成功标识:底部状态栏显示"Build successful",同时在~/tp文件夹下生成test.pdf文件。

  • 本地预览:点击左侧LaTeX Workshop面板(图标为📄)中的「View PDF」,即可调用本地PDF阅读器打开预览,支持代码与PDF内容跳转。

补充:单人使用场景(安装到主目录~)的路径修改点

若仅你一人使用该SSH账号和VS Code,无需考虑环境冲突,可直接安装到主目录(~),操作更简洁,仅需修改以下3处路径(其他操作步骤与上述完全一致):

  1. 步骤1中临时目录路径:无需进入tp文件夹,直接在主目录创建临时目录,命令修改为:mkdir -p texlive_install && cd texlive_install

  2. 步骤2中TEXDIR路径:输入~/texlive(替换原有的~/tp/texlive)。

  3. 步骤3和步骤4中的路径:环境变量配置、VS Code配置中的路径均替换为$HOME/texlive/bin/x86_64-linux/xxx(xxx代表具体编译命令,如xelatex、pdflatex)。

四、完整卸载方案(适配个人文件夹安装,无残留不影响他人)

若后续需要卸载TeX Live(如迁移安装路径、重装版本、不再使用),仅需3步操作,全程无残留,且不会影响其他用户和服务器全局配置:

步骤1:删除TeX Live核心安装目录

删除核心安装目录(执行rm -rf ~/tp/texlive)是重新安装的必要步骤,为确保重装无残留、不出现异常,需按以下步骤完成前置清理操作:

bash 复制代码
# 步骤1:删除核心安装目录(已执行,必做)
rm -rf ~/tp/texlive

步骤2:删除临时安装目录(可选,清理磁盘空间)

若安装完成后未清理临时目录(texlive_install),可执行以下命令删除(节省磁盘空间):

bash 复制代码
rm -rf ~/tp/texlive_install

步骤3:删除环境变量配置(避免残留影响)

  1. 编辑环境变量配置文件,命令如下:
bash 复制代码
nano ~/.bashrc
  1. 在文件中找到之前添加的TeX Live环境变量内容(如下所示),将其删除(或在每行前加#注释掉):
bash 复制代码
# TeX Live 环境变量(安装在~/tp个人文件夹内,适配Ubuntu服务器)
export PATH="$HOME/tp/texlive/bin/x86_64-linux:$PATH"
export MANPATH="$HOME/tp/texlive/texmf-dist/doc/man:$MANPATH"
export INFOPATH="$HOME/tp/texlive/texmf-dist/doc/info:$INFOPATH"
  1. 保存并退出编辑器(按Ctrl+O→回车→Ctrl+X)。

  2. 更新环境变量,让修改生效:

bash 复制代码
source ~/.bashrc

验证卸载是否成功:执行pdflatex --version,若终端提示"command not found",说明卸载已完全成功。

五、常见问题与注意事项

1. 编译报错"command not found"

核心原因:安装路径、环境变量配置、VS Code编译路径三者不一致(最常见问题),或架构目录名称填写错误。

解决方案:

  • 执行which pdflatex(或对应报错命令),查看系统当前识别的编译命令路径;

  • 确保该路径与VS Code配置中command字段的路径完全一致,不一致则修改settings.json;

  • 若执行命令无输出,说明环境变量配置错误,重新检查~/.bashrc中的路径,确保与安装路径一致。

2. 多人共用账号的环境冲突

预防方案:

  • 严格将TeX Live安装到个人专属文件夹(如~/tp),不修改主目录和其他用户的文件;

  • VS Code配置中务必指定完整的编译命令路径(如$HOME/tp/texlive/...),不依赖系统环境变量,避免被其他用户的环境覆盖。

3. 中文编译乱码

解决方案:

  • 编译方式选择XeLaTeX(不要选择PDFLaTeX,PDFLaTeX对中文支持较差);

  • 在LaTeX文件中引入中文支持包:\usepackage{ctex}

  • 若仍乱码,执行tlmgr install ctex(无需sudo),安装完整中文支持包,重新编译即可。

4. VS Code与Cursor的兼容性说明

补充说明:Cursor是基于VS Code内核开发的AI原生编辑器,二者在核心功能(尤其是扩展兼容性、远程连接、LaTeX Workshop适配)上完全一致。本文所有操作流程(安装、配置、编译、卸载)同样适用于Cursor,仅需注意:二者均需安装Remote - SSH、LaTeX Workshop插件,配置逻辑完全相同,可根据个人是否需要AI辅助功能选择使用。

5. 安装过程中终端断开连接

解决方案:重新通过VS Code连接服务器,进入之前的临时安装目录(cd ~/tp/texlive_install/install-tl-*),重新执行./install-tl,按照步骤2重新配置路径并安装即可(已安装的文件不会重复下载,会继续后续安装流程)。

六、总结

按照上述步骤操作,即可实现VS Code(或Cursor)远程连接Ubuntu服务器点击编译LaTeX文档,体验与本地安装完全一致,完美适配无sudo、多人共用账号的Ubuntu远程使用场景。

相关推荐
我送炭你添花2 小时前
树莓派 3B+ 部署 TR-069 ACS(自动配置服务器)GenieACS 实录
运维·服务器·网络协议
扫地生大鹏2 小时前
阿里云大模型服务器安装SNMP包启发
运维·服务器
有梦想的攻城狮2 小时前
maven中的os-maven-plugin插件的使用
java·maven·maven插件·os-maven-plugin·classifer
2601_949613022 小时前
flutter_for_openharmony家庭药箱管理app实战+用药提醒列表实现
服务器·前端·flutter
小白郭莫搞科技2 小时前
鸿蒙跨端框架Flutter学习:ListView卡片样式详解
linux·服务器·windows
Carry灭霸2 小时前
【BUG】Redisson Connection refused 127.0.0.1
java·redis
消失的旧时光-19432 小时前
第九课实战版:异常与日志体系 —— 后端稳定性的第一道防线
java·后端
钦拆大仁2 小时前
Java设计模式-状态模式
java·设计模式·状态模式
人道领域2 小时前
javaWeb从入门到进阶(SpringBoot基础案例2)
java·开发语言·mybatis