从以前的安装中删除 /usr/local/bin 中的符号链接

从以前的安装中删除 /usr/local/bin 中的符号链接

/usr/local/binTeXLive 安装程序为类 Unix 系统(我使用 Debian Stable)上的用户提供了直接为 TeX 可执行文件(tex、、、以及许多pdflatex其他文件)安装符号链接的选项。pdfcropcweave

这样做的好处是用户无需更改任何环境变量即可运行 TeX,因为/usr/local/bin已经在系统的搜索路径中。缺点是这需要以 root 身份安装,这可能会产生安全问题并使调整发行版变得更加困难;并且它将文件放在重要的系统目录中,而不是将发行版包含在 中/usr/local/texlive

当我安装新年的发行版时,我不想再次使用符号链接;现在手动添加路径似乎更简单。

那么,我怎样才能删除仍然存在的来自前一年安装的符号链接/usr/local/bin我可以通过去年的安装程序来做到这一点吗?

(我也非常欣赏关于使用符号链接的好处或问题的评论,尽管我知道这只是基于个人观点。另外,我意识到问题的技术内容可能更适合 Unix-Linux Stackexchange,但在我看来,这个问题应该出现在这个网站上,因为许多 TeX 用户可能会遇到它。)

答案1

针对 TL2017 进行了更新,以防您过快地执行 grep 命令(但这并没有发生在我身上)。


感谢@cfr 向我展示如何使用grep选择符号链接文件,然后sed从目录列表中提取文件名。

在运行 Bash shell 的终端中,以下命令提取文件名列表,其中/usr/local/bin包含指向bin包含去年 TeXLive 发行版中的文件夹在继续下一步之前,请检查此文件。

(cd /usr/local/bin; ls -l) | grep '^l.*/usr/local/texlive/2017/bin/' | sed 's/^.* \([a-zA-Z0-9\+\.\_\CHAR-]*\) \->.*$/\1/' > /tmp/texlinks.txt

此命令遍历列表并永久删除文件,并在删除每个文件之前检查权限:

sudo xargs -rd '\n' --arg-file=/tmp/texlinks.txt rm -i --

现在您还需要删除man页面和info页面。它们位于/usr/local/man/usr/local/info。在我的特定情况下,这些文件夹的全部内容都是指向旧 TeXLive 发行版文件的符号链接,因此我只需执行以下操作即可。请注意:请先检查这些目录的内容!( ls -l)

sudo rm -ri /usr/local/man/*
sudo rm -ri /usr/local/info/*

注销并重新登录后,旧分布的所有痕迹均消失了。

任何遵循这些说明的人都要自担风险。你自己的设置可能与我的不同,所以要小心。

下次,安装时不要创建符号链接!

答案2

sudo tlmgr path remove
# or use this, change the path of tlmgr accordingly
sudo /usr/local/texlive/2021/bin/x86_64-linux/tlmgr path remove

请参阅tlmgr 手册了解更多信息。

相关内容