如何删除本地安装的 pgf 版本?

如何删除本地安装的 pgf 版本?

我在本地 texmf 树中安装了本地版本pgf。现在我的 tex 发行版终于跟上了,包管理器中的 pfg 版本比我本地安装的版本更新。我该如何删除本地版本?

答案1

您必须手动删除所有相关文件,然后刷新文件名数据库 (FNDB)。此过程的详细信息取决于您的操作系统。

答案2

要找出哪些文件,您可以获取您获取的原始档案pgf并列出文件,然后您可以使用该列表删除正确的文件。

我在 Linux 机器上使用zsh,并将pgf树下载到我的Desktop文件夹中,因此在我的texmf目录中,我可以执行以下操作:

for f in $(unzip -ql ~/Desktop/pgf_2.10.tds.zip); do
[[ -e $f && -f $f ]] && rm $f
done

要删除所有空目录,你可以这样做

for f in $(unzip -ql ~/Desktop/pgf_2.10.tds.zip); do
[[ -e $f && -d $f ]] && rmdir -p $f
done

请注意,这rmdir只会删除空目录,因此是安全的。您必须在之后执行此操作,并且必须指定-p(删除父目录),因为目录往往会列出第一的在档案中,因此在档案中你可能有:

a
a/b
a/b/c.txt

但删除的时候需要按照相反的顺序删除。

(我想你可以修改原始脚本来反转顺序:

for f in $(unzip -ql ~/Desktop/pgf_2.10.tds.zip | tac); do
[[ -e $f && -f $f ]] && rm $f
[[ -e $f && -d $f ]] && rmdir $f
done

如果你真的想要的话)

您也可以直接将它们移开,而不是删除它们。我建议您备份您的texmf这样做是为了防止您意外删除不应该删除的文件。

答案3

Thorsten 和 Andrew 的回答非常出色,并且适用于您本地安装的任何现在需要删除的包。但是,可能有一种更简单的方法。似乎 pgf 包包含的所有文件(至少在 2.10 版中)都包含在以下目录之一中:

doc/generic/pgf/
scripts/pgf/
source/latex/pgf/
tex/context/third/pgf/
tex/latex/pgf/
tex/plain/pgf/
tex/generic/pgf/

除了位于README档案根目录中的文件。据我所知,没有其他软件包应该将任何内容放在这些目录中,因此删除这 7 个目录及其内容并刷新文件名数据库应该可以完成这项工作。

答案4

在 miktex 中,我不会在“本地”texmf 树中安装本地 pgf。我将所有 pgf 文件放入一个仅用于 pgf 的新 texmf 树中(例如,称为 testpgf),然后在 miktex 设置中将此树“挂载”为新的本地 texmf 树。当我不再需要此 pgf 时,我会“卸载”然后删除整个树。

相关内容