我在 OS X 上使用 BasicTeX 发行版,最近从 2011 版升级到 2012 版。这迫使我将我随着时间的推移添加的软件包添加到 BasixTeX 2011 安装中,方法是使用 从在线存储库中提取它们tlmgr
。有没有好的方法列出这些不属于 BasicTeX 但属于完整 TeXLive 的软件包?
答案1
感谢 David Carlisle 的建议。下面是 Bash 中的一行,用于查找所有仅存在于旧安装中而不存在于新安装中的软件包:
comm -23 <(/path/to/old/tlmgr list --only-installed | sed 's/:.*$//') <(/path/to/new/tlmgr list --only-installed | sed 's/:.*$//')
comm(1) 命令获取两个已排序的文件并查找共同点。该标志-23
会抑制仅在新安装和两个安装中找到的行的输出,而只保留在旧安装中找到的行。我使用 sed(1) 删除软件包描述,因为这些描述可能已更改。
这适用于任何 TeXLive 安装,但对于完整安装可能不太有用。
在典型安装中,路径为tlmgr
:/usr/local/texlive/2015basic/bin/universal-darwin/tlmgr
。