Docker部署Overleaf包含中文字体与全套texlive镜像

2023-11-10

在这里插入图片描述

如今Overleaf已推出国内域名访问,速度较之前有很大的提升。但考虑到有些同学为了私密与方便性,因此有了自己搭建开源Overleaf服务的打算。请注意开源项目Overleaf不支持开放注册(需管理员账号来申请注册issue#461)与跟踪评论功能。该项目支持Docker容器化部署,安装过程比较容易。本文记录了在实验室内网环境下利用官方提供的Overleaf Toolkit的docker-compose搭建Overleaf服务的过程,同时采用了基于官方开源搭建的镜像,包含了中文字体与全套texlive软件系统该文章最后更新为2023年1月5日,请注意技术文章的时效性。

准备工作

Overleaf 依赖于以下程序:

  • docker
  • docker-compose

建议安装最新版本的 docker 和 docker-compose。

Docker环境的安装详见官方文档进行安装,然后继续安装compose安装文档安装docker-compose组件,这里不再赘述。1

安装并配置 Overleaf

Overleaf Toolkit 部署

拉取Overleaf Toolkit 工具包

首先,将这个工具包 git 存储库克隆到你的主机上(以下命令已重命名为overleaf-toolkit文件夹):

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit

接下来,让我们进入此目录:

cd ./overleaf-toolkit

对于本文章的其余部分,我们将假定你将从此目录运行所有后续命令。2

初始化配置

通过运行以下命令创建本地配置:

bin/init

bin是该工具包提供的一组脚本,这些脚本封装起来,并为你处理大部分的细节。

查看配置目录下的内容config/

ls config

config目录下会生成以下三个文件:
overleaf.rc
variables.env
version

三个配置文件的作用:

  • overleaf.rc:顶级配置文件
  • variables.env:加载到 docker 容器中的环境变量
  • version:使用的 docker 镜像版本

配置内容可根据后续需求修改

其中需要注意的是在overleaf.rc 文件中,可以修改其服务端口:

# Sharelatex container
SHARELATEX_DATA_PATH=data/sharelatex
SERVER_PRO=false
SHARELATEX_LISTEN_IP=127.0.0.1
SHARELATEX_PORT=9000 #将该行修改为你所需服务端口,默认为80端口

variables.env 可以自定义邮件服务

# SHARELATEX_EMAIL_SMTP_HOST=smtp.qq.com
# SHARELATEX_EMAIL_SMTP_PORT=587
# SHARELATEX_EMAIL_SMTP_SECURE=false
# SHARELATEX_EMAIL_SMTP_USER=wrm244@qq.com
# SHARELATEX_EMAIL_SMTP_PASS=hizmpfrpvmdkbbae

修改启动镜像

考虑到官方提供的镜像是不完全texlive程序及不支持中文字体,在这里我基于官方开源的 overleaf 镜像搭建了自己的镜像,wrm244/sharelatex:with-texlive-full,如果对 docker 比较熟悉的同学可以跳过该步骤自行拉取官方镜像然后再进行配置,当然官方镜像不包含中文字体支持,可参考文章配置。

进入overleaf-toolkit文件夹下的 lib 目录

cd lib

修改docker-compose.base.yml文件以下内容

vim docker-compose.base.yml

将源文件的image: "${IMAGE}" 改为 image: wrm244/sharelatex:with-texlive-full 改这一行即可,以下为修改后文件内容

---
version: '2.2'
services:

    sharelatex:
        restart: always
        image: wrm244/sharelatex:with-texlive-full
        container_name: sharelatex
        volumes:
            - "${SHARELATEX_DATA_PATH}:/var/lib/sharelatex"
        ports:
            - "${SHARELATEX_LISTEN_IP:-127.0.0.1}:${SHARELATEX_PORT:-80}:80"
        environment:
          SHARELATEX_MONGO_URL: "${MONGO_URL}"
          SHARELATEX_REDIS_HOST: "${REDIS_HOST}"
          REDIS_HOST: "${REDIS_HOST}"
        env_file: ../config/variables.env

保存退出该文件,重新回到上一级overleaf-toolkit目录

cd ..

也可以修改config目录下overleaf.rc配置文件赋值为SHARELATEX_IMAGE=wrm244/sharelatex:with-texlive-full

启动服务

让我们启动 docker 服务:

bin/up

bin是该工具包提供的一组脚本,这些脚本封装起来,并为你处理大部分的细节。

现在会看到来自 docker 容器的一些日志输出,表示正在拉取镜像,后续会自动运行容器。如果在终端上按下Ctrl+c,服务将关闭。您可以通过命令bin/start来重新启动它们(不附加到日志输出)。

创建管理员帐户

在浏览器中,打开 http://localhost:服务端口/launchpad 后会看到注册界面。 使用要用作管理员帐户的凭据填写,然后点击“注册”。

服务端口默认为80,即http://localhost/launchpad 缺省条件下即可访问。当然你也可以在./config目录下overleaf.rc文件中修改所需端口。

然后单击链接以转到登录页面(http://localhost:服务端口/login)。 登录后,你将被带到欢迎页面。

单击页面底部的绿色按钮以开始使用 Overleaf。
实验室客制化设置Overleaf
overleaf编辑

注意:在Overleaf实现中文输出需采用XeLaTex编译,在页面右上角可进行设置

反向代理域名服务

有些同学有域名访问需求,在overleaf-toolkit工具包中自然提供nginx服务,默认是关闭的。可访问该指导文档进行配置。当然你也可以自行搭建代理服务,这里不再赘述。

迁移与备份

如果是采用overleaf-toolkit工具包进行部署服务的话,在该overleaf-toolkit目录下的data文件夹会映射docker容器的文件,包括sharelatex redis mongo 文件夹,备份这几个文件夹即可,在迁移的时候,启动容器前先把文件复制到data目录下即可恢复数据。

更多

文章采用的docker镜像:wrm244/sharelatex:with-texlive-full包含了以下中文字体,具体在路径/usr/share/fonts/chinese

AGENCYB.TTF                  FRAMDCN.TTF                        PER_____.TTF
AGENCYR.TTF                  framdit.ttf                        phagspab.ttf
ALGER.TTF                    framd.ttf                          phagspa.ttf
ANTQUABI.TTF                 FrederickatheGreat-Regular.ttf     PLAYBILL.TTF
ANTQUAB.TTF                  FredokaOne-Regular.ttf             PoiretOne-Regular.ttf
ANTQUAI.TTF                  FREESCPT.TTF                       POORICH.TTF
arialbd.ttf                  FRSCRIPT.TTF                       PRISTINA.TTF
arialbi.ttf                  FTLTLT.TTF                         RAGE.TTF
ariali.ttf                   FZSTK.TTF                          Raleway-Bold.ttf
ARIALNBI.TTF                 FZXBSJW.TTF                        Raleway-Regular.ttf
ARIALNB.TTF                  FZYTK.TTF                          RAVIE.TTF
ARIALNI.TTF                  Gabriola.ttf                       REFSAN.TTF
ARIALN.TTF                   gadugib.ttf                        REFSPCL.TTF
arial.ttf                    gadugi.ttf                         Roboto-BoldItalic.ttf
ariblk.ttf                   GARABD.TTF                         Roboto-Bold.ttf
ARLRDBD.TTF                  GARAIT.TTF                         RobotoCondensed-BoldItalic.ttf
Arvo-BoldItalic.ttf          GARA.TTF                           RobotoCondensed-Bold.ttf
Arvo-Bold.ttf                georgiab.ttf                       RobotoCondensed-Italic.ttf
Arvo-Italic.ttf              georgiai.ttf                       RobotoCondensed-Regular.ttf
Arvo-Regular.ttf             georgia.ttf                        Roboto-Italic.ttf
bahnschrift.ttf              georgiaz.ttf                       Roboto-Regular.ttf
BarlowCondensed-Regular.ttf  GIGI.TTF                           RobotoSlab-Bold.ttf
Barrio-Regular.ttf           GILBI___.TTF                       RobotoSlab-Regular.ttf
BASKVILL.TTF                 GILB____.TTF                       ROCCB___.TTF
BAUHS93.TTF                  GILC____.TTF                       ROCC____.TTF
BELLB.TTF                    GILI____.TTF                       ROCKBI.TTF
BELLI.TTF                    GILLUBCD.TTF                       ROCKB.TTF
BELL.TTF                     GILSANUB.TTF                       ROCKEB.TTF
BERNHC.TTF                   GIL_____.TTF                       ROCKI.TTF
BKANT.TTF                    GLECB.TTF                          ROCK.TTF
BOD_BI.TTF                   GlobalMonospace.CompositeFont      sarasa-mono-k-bolditalic.ttf
BOD_BLAI.TTF                 GlobalSansSerif.CompositeFont      sarasa-mono-k-bold.ttf
BOD_BLAR.TTF                 GlobalSerif.CompositeFont          sarasa-mono-k-extralightitalic.ttf
BOD_B.TTF                    GlobalUserInterface.CompositeFont  sarasa-mono-k-extralight.ttf
BOD_CBI.TTF                  GLSNECB.TTF                        sarasa-mono-k-italic.ttf
BOD_CB.TTF                   GOTHICBI.TTF                       sarasa-mono-k-lightitalic.ttf
BOD_CI.TTF                   GOTHICB.TTF                        sarasa-mono-k-light.ttf
BOD_CR.TTF                   GOTHICI.TTF                        sarasa-mono-k-regular.ttf
BOD_I.TTF                    GOTHIC.TTF                         sarasa-mono-k-semibolditalic.ttf
BOD_PSTC.TTF                 GOUDOSB.TTF                        sarasa-mono-k-semibold.ttf
BOD_R.TTF                    GOUDOSI.TTF                        SCHLBKBI.TTF
BOOKOSBI.TTF                 GOUDOS.TTF                         SCHLBKB.TTF
BOOKOSB.TTF                  GOUDYSTO.TTF                       SCHLBKI.TTF
BOOKOSI.TTF                  HARLOWSI.TTF                       SCRIPTBL.TTF
BOOKOS.TTF                   HARNGTON.TTF                       segmdl2.ttf
BRADHITC.TTF                 HATTEN.TTF                         segoeprb.ttf
BRITANIC.TTF                 himalaya.ttf                       segoepr.ttf
BRLNSB.TTF                   holomdl2.ttf                       segoescb.ttf
BRLNSDB.TTF                  HTOWERTI.TTF                       segoesc.ttf
BRLNSR.TTF                   HTOWERT.TTF                        segoeuib.ttf
BROADW.TTF                   impact.ttf                         segoeuii.ttf
BRUSHSCI.TTF                 IMPRISHA.TTF                       segoeuil.ttf
BSSYM7.TTF                   IndieFlower.ttf                    segoeuisl.ttf
BubblegumSans-Regular.ttf    INFROMAN.TTF                       segoeui.ttf
CabinSketch-Bold.ttf         Inkfree.ttf                        segoeuiz.ttf
CabinSketch-Regular.ttf      ITCBLKAD.TTF                       seguibli.ttf
calibrib.ttf                 ITCEDSCR.TTF                       seguibl.ttf
calibrii.ttf                 ITCKRIST.TTF                       seguiemj.ttf
calibrili.ttf                javatext.ttf                       seguihis.ttf
calibril.ttf                 JOKERMAN.TTF                       seguili.ttf
calibri.ttf                  JUICE___.TTF                       seguisbi.ttf
calibriz.ttf                 JuliusSansOne-Regular.ttf          seguisb.ttf
CALIFB.TTF                   KUNSTLER.TTF                       seguisli.ttf
CALIFI.TTF                   l_10646.ttf                        seguisym.ttf
CALIFR.TTF                   LATINWD.TTF                        ShadowsIntoLight.ttf
CALISTBI.TTF                 LBRITEDI.TTF                       SHOWG.TTF
CALISTB.TTF                  LBRITED.TTF                        simfang.ttf
CALISTI.TTF                  LBRITEI.TTF                        simhei.ttf
CALIST.TTF                   LBRITE.TTF                         simkai.ttf
cambriab.ttf                 LCALLIG.TTF                        SIMLI.TTF
cambriai.ttf                 LeelaUIb.ttf                       simsunb.ttf
cambria.ttc                  LEELAWAD.TTF                       simsun.ttc
cambriaz.ttf                 LEELAWDB.TTF                       SIMYOU.TTF
Candarab.ttf                 LeelawUI.ttf                       SitkaB.ttc
Candarai.ttf                 LeelUIsl.ttf                       SitkaI.ttc
Candarali.ttf                LFAXDI.TTF                         Sitka.ttc
Candaral.ttf                 LFAXD.TTF                          SitkaZ.ttc
Candara.ttf                  LFAXI.TTF                          SNAP____.TTF
Candaraz.ttf                 LFAX.TTF                           StaticCache.dat
CASTELAR.TTF                 LHANDW.TTF                         STCAIYUN.TTF
CENSCBK.TTF                  Lobster-Regular.ttf                STENCIL.TTF
CENTAUR.TTF                  LSANSDI.TTF                        STFANGSO.TTF
CENTURY.TTF                  LSANSD.TTF                         STHUPO.TTF
CHILLER.TTF                  LSANSI.TTF                         STKAITI.TTF
COLONNA.TTF                  LSANS.TTF                          STLITI.TTF
Comfortaa-Bold.ttf           LTYPEBO.TTF                        STSONG.TTF
Comfortaa-Regular.ttf        LTYPEB.TTF                         STXIHEI.TTF
comicbd.ttf                  LTYPEO.TTF                         STXINGKA.TTF
comici.ttf                   LTYPE.TTF                          STXINWEI.TTF
comic.ttf                    lucon.ttf                          STZHONGS.TTF
comicz.ttf                   MAGNETOB.TTF                       Swkeys1.ttf
consolab.ttf                 MAIAN.TTF                          sylfaen.ttf
consolai.ttf                 malgunbd.ttf                       symbol.ttf
consola.ttf                  malgunsl.ttf                       tahomabd.ttf
consolaz.ttf                 malgun.ttf                         tahoma.ttf
constanb.ttf                 marlett.ttf                        taileb.ttf
constani.ttf                 MATURASC.TTF                       taile.ttf
constan.ttf                  Megrim.ttf                         TCBI____.TTF
constanz.ttf                 micross.ttf                        TCB_____.TTF
COOPBL.TTF                   mingliub.ttc                       TCCB____.TTF
COPRGTB.TTF                  MISTRAL.TTF                        TCCEB.TTF
COPRGTL.TTF                  mmrtextb.ttf                       TCCM____.TTF
corbelb.ttf                  mmrtext.ttf                        TCMI____.TTF
corbeli.ttf                  MOD20.TTF                          TCM_____.TTF
corbelli.ttf                 monbaiti.ttf                       TEMPSITC.TTF
corbell.ttf                  Monoton-Regular.ttf                timesbd.ttf
corbel.ttf                   msgothic.ttc                       timesbi.ttf
corbelz.ttf                  msjhbd.ttc                         timesi.ttf
courbd.ttf                   msjhl.ttc                          times.ttf
courbi.ttf                   msjh.ttc                           trebucbd.ttf
couri.ttf                    MSUIGHUB.TTF                       trebucbi.ttf
cour.ttf                     MSUIGHUR.TTF                       trebucit.ttf
CURLZ___.TTF                 msyhbd.ttc                         trebuc.ttf
Delius-Regular.ttf           msyhl.ttc                          VastShadow-Regular.ttf
Dengb.ttf                    msyh.ttc                           verdanab.ttf
Dengl.ttf                    msyi.ttf                           verdanai.ttf
Deng.ttf                     MTCORSVA.TTF                       verdana.ttf
desktop.ini                  MTEXTRA.TTF                        verdanaz.ttf
Dosis-Regular.ttf            mvboli.ttf                         VINERITC.TTF
DroidSerif-BoldItalic.ttf    NanumPenScript-Regular.ttf         VIVALDII.TTF
DroidSerif-Bold.ttf          NIAGENG.TTF                        VLADIMIR.TTF
DroidSerif-Italic.ttf        NIAGSOL.TTF                        webdings.ttf
DroidSerif.ttf               NirmalaB.ttf                       wingding.ttf
DShirgy4.ttc                 NirmalaS.ttf                       WINGDNG2.TTF
DUBAI-BOLD.TTF               Nirmala.ttf                        WINGDNG3.TTF
DUBAI-LIGHT.TTF              ntailub.ttf                        YuGothB.ttc
DUBAI-MEDIUM.TTF             ntailu.ttf                         YuGothL.ttc
DUBAI-REGULAR.TTF            OCRAEXT.TTF                        YuGothM.ttc
ebrimabd.ttf                 OLDENGL.TTF                        YuGothR.ttc
ebrima.ttf                   ONYX.TTF                           ZillaSlab-Bold.ttf
ELEPHNTI.TTF                 OpenSans-BoldItalic.ttf            ZillaSlab-Regular.ttf
ELEPHNT.TTF                  OpenSans-Bold.ttf                  书法家行楷体.TTF
ENGR.TTF                     OpenSans-Italic.ttf                仿宋_GB2312.ttf
ERASBD.TTF                   OpenSans-Regular.ttf               南构周洋字体.ttf
ERASDEMI.TTF                 OpenSans-Semibold.ttf              南构无边.ttf
ERASLGHT.TTF                 OUTLOOK.TTF                        南构日系楷行.ttf
ERASMD.TTF                   palabi.ttf                         南构玄道硬笔.ttf
FELIXTI.TTF                  palab.ttf                          南构诗韵新隶.ttf
fms_metadata.xml             palai.ttf                          南构邱见行书.ttf
fonts.dir                    pala.ttf                           南构钟声行书.ttf
fonts.scale                  PALSCRI.TTF                        方正小标宋简体_0.ttf
FORTE.TTF                    Pangolin-Regular.ttf               日文毛笔行书.ttf
FRABKIT.TTF                  PAPYRUS.TTF                        楷体_GB2312_0.ttf
FRABK.TTF                    PARCHM.TTF                         楷体_GB2312.ttf
FRADMCN.TTF                  PERBI___.TTF                       特太行書.ttc
FRADMIT.TTF                  PERB____.TTF                       蒙纳简行书.otf
FRADM.TTF                    PERI____.TTF                       蒙纳简行楷.otf
FRAHVIT.TTF                  PERTIBD.TTF
FRAHV.TTF                    PERTILI.TTF

  1. Get Docker ↩︎

  2. overleaf-toolkit-quick-start-guide ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker部署Overleaf包含中文字体与全套texlive镜像 的相关文章

  • 使用 Nginx 在 Docker 容器内部署带有路由器的 Angular2

    我正在尝试部署一个使用框架的路由器功能的 Angular 2 但在 docker 容器内使用 nginx 为其提供服务时遇到一些问题 由 angular cli 构建的 Angular 应用程序具有如下文件结构 dist 08c42df75
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • 上下文更改后 Docker“协议不可用”

    我改变了我的码头环境 现在 当我运行任何 docker 命令时 我得到protocol not available 如果无法运行任何 docker 命令 如何更改回上下文 基本上我做了以下事情 I ran docker context li
  • Docker EXPOSE 使用运行时环境变量

    我的 Dockerfile 设置了一些环境变量的默认值 然后公开了两个应该是提供的环境变量的端口 FROM python 3 6 5 stretch ENV MY SERVICE PORT 8080 ENV MY SERVICE PORT
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • docker中CREATED容器是什么意思?

    我有点困惑docker容器的状态 尤其是与状态为已创建 我知道当容器正在运行状态如下所示 root labadmin VirtualBox RAGHU DOCKER docker ps CONTAINER ID IMAGE COMMAND
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 在docker容器中运行Jenkins有什么优势

    我发现了很多关于如何运行你的博客Jenkins in Docker但没有人真正解释这样做的好处 这是我发现的唯一原因 使用 Docker 的理由 https twasink net 2016 08 01 setting up a jenki
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • 如何删除 GitHub markdown 项目符号/列表上的额外行空间?

    GitHub 的 Markdown 代码 1 First item subitem 1 Second item 之间产生很大的空间First Second和subitem 如何制作subitem靠近第一个项目 而不是正好在它们的中间 这是我
  • 将主机中的空文件夹挂载到 Docker 中的非空文件夹

    我正在使用的工具是在 Docker 映像中提供的 由于安装该工具非常复杂 存在大量依赖项 因此我想使用 IDE 在主机上工作 但在容器上运行它 因此 下载并加载图像后 我运行 sudo docker run it v home myself
  • 无法连接到 macOS 上的 Docker 守护进程

    我通常更喜欢使用brew 来管理我的OSX 上的应用程序 我能够安装 docker docker compose 和 docker machine docker version Docker version 17 05 0 ce build
  • NSQ Docker Swarm

    我尝试在 Docker Swarm 中使用 NSQ 但没有成功 mhlg rpi nsq 是为 Raspberry Pi ARM7 板构建的 Docker 映像 如果作为普通 Docker 容器运行 我可以确认其工作正常 在 Docker
  • Docker Compose 保持容器运行

    我想使用 docker compose 启动一个服务并保持容器运行 这样我就可以通过 docker检查 获取它的IP地址 然而 容器总是在启动后立即退出 我尝试将 command sleep 60 和其他内容添加到 docker compo
  • github - 启用分支锁

    作为 GitHub 管理员 我想为所有用户锁定 GitHub 中的特定分支 例如如果我不希望任何人推送到主 生产或项目分支 我该怎么做 有没有办法直接锁定 GitHub 服务器上的分支 而不是使用任何客户端挂钩 是否有任何第三方工具 API
  • Docker 教程入门第 4 部分连接被拒绝

    我不明白我错过了什么 docker compose yml version 3 services web replace username repo tag with your name and image details image sv
  • docker 容器是否即时获取代码更改?

    我已经启动并运行了我的 docker 容器 有一个容器运行一些 python 代码 我发现它导致了一些错误 我想将一些代码行 主要是更多日志 添加到该特定容器内的 python 脚本中 我想进入容器docker exec ti contai
  • FreeBSD 可以在 Docker 中运行吗?

    我一直在寻找一个Docker的图像FreeBSD但找不到 FreeBSD可以在docker中运行吗 如果没有 为什么不呢 从未来编辑 不 你不能 以下项目都没有超越原型 从技术上讲是可以的 但是你需要一个 FreeBSD 主机来完成它 而
  • 如何管理AWS ECS中docker镜像的版本?

    AWS ECS 服务指向一个任务定义 其中包含 docker 镜像的名称 包括标签 因此 当我创建新版本的 docker 映像时 我有两种可能性 将任务定义更新到新版本 然后更新服务以指向任务定义的新版本 使用一些标签指向最后一个版本 假设
  • (wxMaxima:表达式幂的文本

    我用过texput设置tex1的输出log x to be ln x with texput log lambda e a args e printf false ln a tex1 a 我想知道是否也可以设置类似的输出 log x n 我

随机推荐

  • 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java制造类企业erp23725

    面对老师五花八门的设计要求 首先自己要明确好自己的题目方向 并且与老师多多沟通 用什么编程语言 使用到什么数据库 确定好了 在开始着手毕业设计 1 选择课题的第一选择就是尽量选择指导老师擅长的课题 其实说白一点 你们的指导老师每年都是那几个
  • C3P0连接池参数配置

  • Linux系统wget unable to resolve host address解决办法

    Linux系统运行yum安装rpm包的时候提示wget unable to resolve host addresswget 无法解析主机地址 这就能看出是DNS解析的问题 错误提示 wget unable to resolve host
  • 用于CTF(MISC)的kali虚拟机更改过程记录

    Kali更改记录 安装pip2 太多工具需要python2了 安装setuptools 18 5 wget https pypi python org packages source s setuptools setuptools 18 5
  • 面向对象的编程思想和Python的继承和多态,特殊方法,引用计数

    面向对象的编程思想和Python的类 访问和属性 继承 在上一文中我们了解到了 私有的属性的访问方式 实例名 类名 私有属性名 一 私有的属性如何对外提供公有的取值和赋值方法呢 提供公有的方法作为接口进行取值 例如 class Avg Sc
  • 思科路由器NAT配置详解(转)

    思科路由器NAT配置详解 转 网络技术 2010 07 11 17 48 14 阅读104 评论0 字号 大中小 订阅
  • ubuntu安装vscode_vscode远程开发配置

    Remote development是一个支持vscode远程开发的插件 非常方便在windows下调试远程linux系统上的代码 使用配置方式如下 首先windows和远端服务器都要安装ssh windows上启用ssh服务即可 linu
  • RBAC权限管理

    RBAC权限管理 RBAC应用最为广泛的权限管理模型 核心的三要素是 用户 角色 权限 但并不仅仅局限于这三个核心要素 基于企业规模 用户规模 运维复杂度 RBCA其实是有很多的变种 从理论角度 有所谓的RBAC0 RBAC1 RBAC2
  • python opencv cv2在图片中画mask掩码/掩膜

    python opencv cv2在图片中画mask掩膜 import cv2 import numpy as np from PIL import Image import matplotlib pyplot as plt mask th
  • 年度最火的AOA蓝牙室内定位原理

    AOA 定位方法 AOA 定位方法 主要是测量信号移动台和基站之间的到达角度 以基站为起点形成的射线必经过移动台 两条射线的交点即为移动台的位置 该方法只需两个基站就可以确定 MS 的估计位置 其定位示意图如图所示
  • 语音转文字,视频转文字的新大陆!--飞书(好用记得点个赞)

    语音转文字 视频转文字的新大陆 飞书 1 选择自己对应的系统 下载飞书 飞书是字节跳动于2016年自研的新一代一站式协作平台 网址 https www feishu cn 2 下载安装之后 使用手机号 邮箱等注册登录 点击会议 点击进入子菜
  • 现代框架背后的概念

    很多初学者问 我应该学哪个框架 和 学一个框架之前需要学多少JS或TS 无数自以为是的文章都在宣传作者首选框架或库的优势 而不是向读者展示其背后的概念以做出明智的决定 那么让我们先解决第二个问题 学一个框架之前要学多少JS TS 尽可能多地
  • python调用c++动态库_使用python 调用 pybind11封装的 cuda C++ 动态链接库

    使用python 调用 pybind11封装的 cuda C 动态链接库 pybind11是可以使C 和python程序间互相调用的轻量头文件库 它可以将C 代码编译成python可调用的动态链接库 pybind11可以自动实现C 中vec
  • SpringMVC总结

    SpringMVC总结 一 配置 1 SpringMVC xml配置文件
  • 三相半控整流电路仿真-- (Matlab仿真1)

    这学期的现控 自控 电力电子技术需要我学学Matlab进行仿真 利用软件仿真本身也是需要我们掌握的很重要的一种技能 我想在学习理论的的过程借助他的帮助来使我更好的理解某些东西 而matlab其功能之强大毋庸置疑 甚至有玩笑说 matlab除
  • Python:使用循环语句for 做一个九九乘法表

    学会了循环语句后 就能做很多小程序了 在这里演示几种九九乘法表的编程方法 首先使用for循环来进行编程 for hang in range 1 10 定义行为hang 行数为9 for lie in range 1 hang 1 定义列为l
  • 反向代理与正向代理之间差异分析

    在网络世界中 爬虫ip是我们常用工具之一 但你是否了解反向爬虫ip和正向爬虫ip之间的区别呢 本文将向你分享反向爬虫ip与正向爬虫ip的差异分析 帮助你更好地选择适合的爬虫ip方式 提升爬虫项目的实际操作价值 首先我们来了解一下 反向爬虫i
  • 干了六年Android开发现在裸辞失业了,再过2个月就30了,该怎么继续生活

    由于这几年公司也在转型 工作经历大概可以分为 3 个阶段 第一阶段是从进公司开始做 android app 开发 无论是外包或者公司的主力产品都做过 第二阶段是做 ROM 开发 由于公司规模不大 除了硬件和底层的东西外 基本上是一个人负责了
  • 事件分发机制

    http www jianshu com p 86e7cd8bc73f View的事件分发 View的事件分发在Android中很重要 很重要 很重要 1 为什么会有事件分发机制 我们知道 android的布局结构是树形结构 这就会导致一些
  • Docker部署Overleaf包含中文字体与全套texlive镜像

    如今Overleaf已推出国内域名访问 速度较之前有很大的提升 但考虑到有些同学为了私密与方便性 因此有了自己搭建开源Overleaf服务的打算 请注意开源项目Overleaf不支持开放注册 需管理员账号来申请注册issue 461 与跟踪