Sharelatex本地部署指南
2023-10-19发布于服务部署指南 | 最后更新于2023-10-19 16:10:00
前期准备
开启Windows的WSL2
控制面板->程序和功能->启用或关闭Windows功能:开启“虚拟机平台”与“适用于Linux的Windows子系统”。另外,要成功开启“虚拟机平台”的功能,需要在BIOS中开启CPU的虚拟化功能。
开启这两个功能并点击确定后,等待加载完成,加载完成后重启电脑。
为了确保WSL2开启和加载,再开启上述功能并重启后,按照微软官方的WSL升级指南进行如下操作:
-
以管理员身份打开PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令启用WSL:
dism.exe /online /enable-feature / featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
启用虚拟化功能,同样以管理员身份运行Powershell并执行以下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all / norestart
-
在WSL升级指南的第四步中,下载“适用于x64计算机的WSL2 Linux内核更新包”,下载完成后双击安装即可。
-
最后,在管理员身份运行的Powershell中运行以下命令,以设置默认使用WSL2:
wsl --set-default-version 2
重启计算机。
安装WSL的Ubuntu
此处安装Ubuntu20.04,此处有两种方式:
- Windows自带的Microsoft Store中搜索Ubuntu,点击安装Ubuntu20.04即可。由于网络问题,很可能无法安装,此时应使用第二种方法。
- 从微软官网的发行版列表中下载Ubuntu20.04LTS的AppBundle,下载完成后双击安装即可。
- 安装完成后,系统中就会有一个Ubuntu的应用,打开后是Ubuntu的命令行界面。另外,在powershell中执行
wsl -l -v
查看已安装的Ubuntu及其Version,版本为2说明使用的确实是WSL2,此时请再次重启电脑。
下载Docker image并拉起container
Overleaf官方提供的安装脚本中并没有Windows的版本,但是由于其本质上使用的是Docker,因此在Windows上也是可以安装的,本文根据官方提供的Linux版本下的配置方法与配置脚本给出了一种在Windows上的安装方案。
安装与配置Docker Desktop
在Docker官网下载页下载Docker Desktop的Windows安装包,安装时第一个配置必须勾选,第二个根据需要勾选。安装可能需要好一会儿,请耐心等待。
接下来开启Docker Desktop,蓝色小鲸鱼会建议你登录,直接点击“Continue without signing in”,然后小鲸鱼还会问你是做什么工作的,也直接选择“Skip”跳过即可。
接下来需要确认与调整几项配置:
- 右键右下角托盘处的小鲸鱼,确保使用的是Linux Containers,即显示的是“Switch to Windows containers”
- 开启使用刚刚安装过的Ubuntu
拉取镜像并运行容器
下载compose配置文件:docker-compose.yml
打开该文件(可用任何文本编辑器,包括记事本),进行修改。需要修改四处(有三处需要确保填入数据存储路径,必须都是当前已存在的文件夹,建议分别为这三处数据存储创建新的文件夹):
-
sharelatex的对外映射端口。将6600改成一个你自己喜欢的端口号,用于后面在浏览器中访问使用。
-
sharelatex的数据存储位置。将/path/to/sharelatex/data改为一个你自己电脑上的文件夹的路径,例如
D:/Program Files/sharelatex/data
- mongo的数据存储位置。将/path/to/mongo/data改为一个你自己电脑上的文件夹的路径,例如
D:/Program Files/sharelatex/mongo_data
- redis的存储位置。将/path/to/redis/data改为一个你自己电脑上的文件夹的路径,例如
D:/Program Files/sharelatex/redis_data
保存好compose文件后,开启powershell,进入到compose文件所在文件夹,执行下面的命令:
docker compose up
此时查看Docker Desktop,会发现出现了三个容器,点击mongo,选择exec,执行下面两条命令(第一条命令执行完成后等待约10秒再执行第二条):
bash
mongo --eval "rs.initiate({ _id: \"overleaf\", members: [ { _id: 0, host: \"mongo:27017\" } ] })"
执行完之后看到"ok": 1
,说明成功了。
sharelatex配置
初始化sharelatex
打开浏览器,输入网址:http://localhost:6600/launchpad
,其中6600需要换成刚刚自己设置的端口号。输入用户名密码并点击注册,此账号将作为超级管理员账号。注册后进行登录,并选择开始使用overleaf
创建示例项目并进入,编译完成后右边出现pdf预览,说明基础配置完成。
中文配置
Docker Desktop中进入sharelatex,逐条执行以下命令,安装ctex中文包,第四条命令下载安装中文包需要一些时间,请耐心等待。
bash
cd
tlmgr option repository https://mirrors.aliyun.com/CTAN/systems/texlive/tlnet
tlmgr install ctex
tlmgr path add
重启整个compose,点击重启后请等待30秒左右。
再次在浏览器中进入应用,进入项目后点击左上角的Menu,选择编译器为XeLaTex。
在左侧粘贴下面这段中文测试文章,再按下保存ctrl+S
,或者点击右侧窗口的recompile重新编译。
\documentclass{ctexart}
\begin{document}
\tableofcontents
\begin{abstract}
这是简介及摘要。
\end{abstract}
\section{前言}
\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.
這是繁體中文。
\end{document}
可以发现中文也已经正确显示了。
开启与关闭
要关闭sharelatex,在Docker Desktop中直接将整个compose stop即可,点击停止后需要等待一段时间,直到下面的三个容器的状态均显示为Exited。开启也是一样地,点击compose的小三角start即可。
请注意,点击Docker Desktop应用程序右上角的叉不会真正关闭Docker,在关机前,请确保右下角托盘中没有小鲸鱼,若有,请右键小鲸鱼并选择“Quit Docker Desktop”以真正停止Docker Engine