本地部署 ShareLatex

看别人用 ShareLatex 很是方便,于是就想本地部署一个试试。

为啥要本地部署?速度快啊!

在最前面提醒一句,如果自己 VPS 内存不够大,例如没有个 4G 内存的话,千万别瞎折腾。

Docker 环境安装

我们使用官方脚本来一键安装 Docker(懒):

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

记得顺便安装一个 Docker Composer:

sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

注意上面的链接可能不是最新的。需要到官方手册页面查看最新版本。

最后为了不需要每次都敲 sudo,我们需要把 docker 用户加入到当前用户组:

sudo adduser $USER docker

部署 ShareLatex

下载这个示例,然后别忙着运行。

打开文件,在 sharelatex 的 environment 里面加上一行

PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/texlive/2018/bin/x86_64-linux

然后改一下映射路径,甚至端口号。之后使用

docker-compose up -d

启动全部东西。

配置 ShareLatex

由于我们部署的是免费版的 ShareLatex,我们需要手动下载 TexLive 套件才能愉快地进行编译。

如果直接照着官方教程来做,会报个错:

tlmgr: Remote repository is newer than local (2017 < 2018)
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
Please see https://tug.org/texlive/upgrade.html for details.

原因是 ShareLatex 里面带的套件版本太低了,不兼容 2018 版的套件。所以需要动手升级一下。

  1. ​ 使用
    docker exec -it sharelatex bash 

    进入容器内

  2. 复制 2017 到 2018
    cd /usr/local/texlive cp -a 2017 2018  
  3. 下载并运行升级脚本
    wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade 
  4. 可选:在国内的话建议换源

    阿里源:

    tlmgr option repository http://mirrors.aliyun.com/CTAN/systems/texlive/tlnet/ 
    清华源:

    tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/ 
  5. 升级 tlmgr
    tlmgr update --self --all 
  6. 更新字体缓存(我没成功)
    luaotfload-tool -fu 
  7. 安装完整 TexLive
    tlmgr install scheme-full 

差不多就这样了。时间会非常长……非常长……

啥?你说还有中文的问题?我还没有试过。等遇到再来填坑。

使用

到浏览器里面访问/launchpad,创建 Admin 用户,之后为所欲为,为所欲为。

最后需要注意的是,由于是免费版,里面不含用户管理功能。也就是说,一旦用户忘了密码,管理员是不能给 ta 重置密码的,再加上这东西发密码找回邮件的功能也有问题,die。In short, forget password = die. 内网用的话,Admin 一定要提醒各个用户,用最常用的密码,最简单的密码,最容易猜到的密码。——如果谁能把发送邮件这个东西给配置好了,记得留言说一声啊~

参考资料

留下评论