Ubuntu 18.04简单部署ShareLaTeX

参考

依赖安装

Docker-ce and Docker-compose

参见Docker-ceDocker-compose

无需使用apt安装,运行sharelatex自带的.yml文件即可自动配置。

Redis and Mongodb

$ sudo apt install redis-server
$ sudo apt install mongodb

安装ShareLaTeX

sharelatex

使用Docker安装sharelatextex编译环境默认为2017版本,后续将介绍如何更新。

$ docker pull sharelatex/sharelatex

Using a compose file

$ curl -O https://github.com/sharelatex/sharelatex/raw/master/docker-compose.yml

此时需要修改docker-compose.yml文件,配置文件信息。如果80端口已经被占用,需要修改如下选项,其中XX为使用的端口

services:
    sharelatex:
        ports:
            - XX:80

进行下一步,部署sharelatex,并且添加管理员用户,邮箱需要自己修改,输入后会有链接显示在命令行,需要打开修改账户密码。

$ sudo docker-compose up

$ docker exec sharelatex /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email joe@example.com"

如此,就可以在特定的端口访问到sharelatex主页了。

登陆container的shell

$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                  NAMES
056c250ddb2a        sharelatex/sharelatex   "/sbin/my_init"          15 hours ago        Up 15 hours         0.0.0.0:1024->80/tcp   sharelatex
8234a9e397e1        mongo                   "docker-entrypoint.s…"   17 hours ago        Up 15 hours         27017/tcp              mongo
79eb20131893        redis                   "docker-entrypoint.s…"   17 hours ago        Up 15 hours         6379/tcp               redis

sharelatex的container ID是056c250ddb2a,再执行

$ docker inspect -f  056c250ddb2a
14510

看到PID是14510,最后使用root登陆到sharelatex的shell了。

$ sudo nsenter --target 14510 --mount --uts --ipc --net --pid
root@056c250ddb2a:/#

TeXLive Update

升级TeXLive

docker exec sharelatex tlmgr install scheme-full

使用tlmgr升级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.

根据提示去寻找update-tlmgr-latest.sh进行配置。

root@056c250ddb2a:/# wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
root@056c250ddb2a:/# sh update-tlmgr-latest.sh

最后更新tlmgr,接下来的任务就是等待了。

root@056c250ddb2a:/# tlmgr option repository http://mirrors.ustc.edu.cn/CTAN/systems/texlive/tlnet
root@056c250ddb2a:/# tlmgr install scheme-full

配置中文字体

参考ArchLinux 部署ShareLaTex并且配置中文支持,方法适用。

成果


Iydon