我在本地 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 时,我会“卸载”然后删除整个树。