热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker安装overleaf并升级texlive

202303210.引言

20230321

0. 引言

之前在虚拟机安装了overleaf,应该是两年前的事情了,本来是想尝试一下overleaf更新了什么功能,但是没想到浪费了这么多时间。当时安装的还是2.5的版本,现在已经是3.5了。

在这个过程中,有几个地方需要注意:

  • docker的拉取镜像的代理
  • 容器内部的代理
  • texlive版本问题

代理问题是为了在安装镜像或者包的时候能够快一点;版本问题是因为默认安装的是最小版本,而使用tlmgr去安装包,直接报错无法安装,因为版本不一致。所以这个过程也是浪费了非常多的时间。

1. 安装过程

1.1 安装镜像

首先要做的就是安装三个镜像,sharelate、redis、mongo。overleaf提供了一个toolkit工具,也可以直接使用;不过我还是乐意直接就使用docker-compose来进行安装。

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

在安装镜像的时候,要看一下怎么来配置docker拉取镜像的代理;这种命令在网上一大堆,这里不在赘述。

1.2 更新texlive版本

由于sharelatex他提供的tex版本非常精简,那么需要安装包的时候,需要使用tlmgr,他的toolkit也说明了这个事情,但是关键问题在于,使用tlmgr的时候,他会报错说版本不一致,例如现在是2023年,实际上镜像里面tex还是2022的版本,但是tlmgr那边已经说到2023了。。所以只能更新。

按照提示来到了网站[1],但是他会告诉你不如直接安装。。然后又来到了[2],可以按照他的介绍来进行安装。注意,这里安装的时候,一定要设置终端的代理,这个代理,相比于docker的就比较容易,直接export环境变量即可。虽然可以使用国内镜像源,但是简单看了两个个。。都没有文档;还是踏踏实实先按照官网说法来执行。

这里我使用的方法是,在perl ./install-tl --no-interaction命令后面加上了--scheme=small,毕竟完整安装太慢了,当然挂上代理其实也还好。如果速度开,直接全安装也还好。

1.3 替换命令

这个时候,在sharelatex镜像中,/usr/local/texlive/中可以看到两个两个版本,一个是2023,一个是2022,可以直接把2022删除。但是这个时候/usr/local/bin里面的命令链接全都失效了[3]。

此时需要把这些新命令都全部链接到新的文件,进入到新版本的bin/xxx/中,xxx是下载的架构;然后执行./tlmgr path add。链接都生效了。

1.4 安装库

但是这个时候,进入sharelatex执行,却发现根本编译不了,只说报错了。
这个时候比较尴尬,比原来仅仅说缺失包还恶心。

这个时候只能去镜像里面查看,/var/log/sharelatex里面可以看,然后发现是命令latexmk失效,这个缺失可以在/usr/local/bin里面看到,安装这个只需要执行tlmgr install latexmk即可。

此时在sharelatex的网页新建一些简单的文档是可以编译的。还是一些比较复杂的文档就不行了,那么就需要安装一些库。

他的报错信息例如:makecell.sty找不到,那就是库不存在,此时一般来说,进入到镜像里面然后安装tlmgr install xxx即可,但是也有一些不行,例如authblk,在ctan官网查找包,可以看到其实这个命令是在preprint包里面的,所以直接安装preprint即可。

但是说实话,缺的包多了之后,属实顶不住。所以想图方便的话,还是把前面安装的时候那个small给去掉。

参考

[1]Upgrade from TeX Live 2022 to 2023
[2]TeX Live - Quick install for Unix
[3]After a completed TeX Live installation on Linux: how can I run just the “Create symlinks to standard directories” option?


推荐阅读
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
author-avatar
l87653644
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有