![如何手动更新 TeX Live 发行版(不使用冻结的 TeX Live 管理器)?](https://linux22.com/image/268299/%E5%A6%82%E4%BD%95%E6%89%8B%E5%8A%A8%E6%9B%B4%E6%96%B0%20TeX%20Live%20%E5%8F%91%E8%A1%8C%E7%89%88%EF%BC%88%E4%B8%8D%E4%BD%BF%E7%94%A8%E5%86%BB%E7%BB%93%E7%9A%84%20TeX%20Live%20%E7%AE%A1%E7%90%86%E5%99%A8%EF%BC%89%EF%BC%9F.png)
举例来说,假设我想将已安装的tcolorbox
包从 CTAN 更新为新的包。
tcolorbox.zip
我从下载了最新的软件包ctan.org/pkg/tcolorbox
。我将其解压,其内容如下所示。我注意到有两个与安装(旧)相关的文件夹,
tcolorbox
如下图所示。
问题:
我如何知道应该将解压文件夹中的哪些文件复制
...\doc\latex
到...\tex\latex
?有没有更方便的方法来做到这一点?
我需要
texhash
在最后调用吗?软件包作者是否应该将主文件与文档文件分开,并在压缩包中使用两个子文件夹来方便手动更新?
答案1
在分发中,文档与运行时文件是分开的,但您不必这样做,因此如果有疑问(或着急),只需将所有文件放在输入路径中的目录中。
之后是否需要运行 texhash 取决于文件存放的位置。有些目录被标记为已散列,因此如果新文件未散列,则无法找到它们;其他目录被标记为未散列,kpse 会搜索文件系统,因此只需将文件放在那里就足够了。(例如,当前目录永远不需要 texhash)
kpsepath tex
会告诉你你的输入路径
我的是
$ kpsepath tex
.:/home/davidc/.texlive2012/texmf-config/tex/kpsewhich//:
/home/davidc/.texlive2012/texmf-var/tex/kpsewhich//:
/home/davidc/texmf/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-config/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-var/tex/kpsewhich//:
!/usr/local/texlive/2012/texmf/tex/kpsewhich//:
!!/usr/local/texlive/2012/../texmf-local/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-dist/tex/kpsewhich//:
/home/davidc/.texlive2012/texmf-config/tex/generic//:
/home/davidc/.texlive2012/texmf-var/tex/generic//:
/home/davidc/texmf/tex/generic//:
!!/usr/local/texlive/2012/texmf-config/tex/generic//:
!!/usr/local/texlive/2012/texmf-var/tex/generic//:
!!/usr/local/texlive/2012/texmf/tex/generic//:
!!/usr/local/texlive/2012/../texmf-local/tex/generic//:
!!/usr/local/texlive/2012/texmf-dist/tex/generic//:
/home/davidc/.texlive2012/texmf-config/tex///:
/home/davidc/.texlive2012/texmf-var/tex///:
/home/davidc/texmf/tex///:
!!/usr/local/texlive/2012/texmf-config/tex///:
!!/usr/local/texlive/2012/texmf-var/tex///:
!!/usr/local/texlive/2012/texmf/tex///:
!!/usr/local/texlive/2012/../texmf-local/tex///:
!!/usr/local/texlive/2012/texmf-dist/tex///
这是一个未经修改的 texlive 2012 设置。
!!
以需要的路径段为前缀的texhash
路径段以//
包含所有子目录结尾直至任意深度。