在虚拟机上架设主机能通过web服务访问的私有Overleaf仓库

注意,由于ShareLatex的Github项目目前已被归档,因此此安装方法已失效.

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: - 80:2333

启动配置脚本

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)资料:

VirtualBox主机和虚拟机互相通信 

overleaf本地部署

 

posted @ 2022-09-26 22:25  Isakovsky  阅读(347)  评论(0编辑  收藏  举报