Overleaf是个非常强的Latex编辑解决方案,它能够做到即时编译,所见即所得,并且省去了配置环境的步骤,开箱即用(众所周知Texlive的安装和配置坑真的是多,Windows上尤其是,再加上要支持Unicode编码,那真的是一步一个坑)
可惜的是,overleaf的官方网站在境内没有服务器,时常掉线,非常的麻烦,所以有必要把Overleaf的服务部署在本地.幸运的是,Overleaf部分开放了源代码.
更妙的是,有人将Overleaf的代码打包成了Docker镜像并编写了一键部署脚本,这使得我们可以轻松地完成这件事.
这个教程在你需要架设一些基于web的服务,但你没有独立的服务器的时候也能够帮助你.
步骤1:安装一台能让主机进行网络访问的虚拟机
下载VirtualBox,Ubuntu安装镜像,作为非专业人士我用不惯命令行,要是习惯的话安装没有图形界面的服务器版倒是可以大大节省空间
在VirtualBox中新建一台虚拟机,为了运行流畅,建议存储空间至少分配4096MB,虚拟硬盘至少创建25GB
然后运行新创建的虚拟机,选择下载好的iso文件作为安装介质,按向导一步一步安装,安装类别选择最小安装即可
安装完毕后,打开设置->网络
查看当前的网络设置
这个虚拟的网络设备是虚拟机中默认配置的,他的功能是以NAT方式,直接与Internet相连,在逻辑上它与主机的网络设备是不连通的,可以尝试拿主机Ping一下这个地址,是Ping不通的
(Ping IPv4地址可能是能Ping通的,那是因为你Ping的是某个和这个地址一样的远端设备,看一下回传数据包时间,如果不是0ms,那就说明Ping的肯定不是本地的虚拟设备,Ping一下v6试试)
给这个虚拟设备改个名,免得一会混淆
关闭虚拟机(注意不是休眠,休眠状态无法更改系统设置),进入VirtualBox中,对这个虚拟机的的设置界面,网络选项卡,选择网卡2并启用,连接方式选择仅主机
重新打开虚拟机,进入设置->网络,会发现网络设备多了一个,这就是我们刚刚启用的与主机相连的网卡
在主机上Ping一下这个地址,是能Ping通的,而且时间数据包回传时间是0ms
步骤2:在虚拟机上架设Overleaf的Docker服务
打开终端,安装必要的包
sudo apt install docker docker.io docker-compose
将当前用户添加到Docker权限用户组中
sudo groupadd docker sudo gpasswd -a $USER docker newgrp docker docker ps
如果成功地显示了设备中现有的容器列表(正常情况下啥也没有,就是个表头),就说明用户组添加成功
下载容器镜像
docker pull sharelatex/sharelatex
下载安装脚本
wget https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml
备用地址
wget https://gitee.com/mirrors/sharelatex/blob/main/docker-compose.yml
由于80端口可能被其他服务占用,修改配置文件,将Overleaf服务映射到别的端口
sudo nano docker-compose.yml
(每日diss vim这个反人类编辑器,nano大法好,sudo apt remove vim保平安)
ports : - 80:80 意思是将容器中的80端口映射到主机中的80端口,换个端口,比如 ports: - 2333:80
启动配置脚本
docker-compose up -d
如果前面的步骤一切顺利,在虚拟机的浏览器中打开https://localhost:2333/这个网页就能看到Overleaf的界面了,也可以注册账号,建立工程,但编译不了,因为Latex还没安
在这之前,先用主机访问一下虚拟机上Host-only网卡的地址的2333端口,如果能看到Overleaf的界面说明虚拟机与主机的连接也是成功的
接下来回到终端,为Docker安装TexLive
docker exec -it sharelatex bash tlmgr update --self --all tlmgr install scheme-full &
然后耐心等待安装完成
主要参(feng)考(he)资料:
标签:web,Overleaf,主机,虚拟机,Ping,docker,安装 From: https://www.cnblogs.com/isakovsky/p/16732779.html