“/usr”、“/usr/local/”、“/sbin”

“/usr”、“/usr/local/”、“/sbin”

这是新手 Linux 管理员的问题。在过去的 6 个月左右,我最终升级了 Fedora 服务器上的大多数默认安装软件。在过去的几周左右,我意识到这个文件系统上有许多相同软件的实例,有些仍在使用,有些则没有。

例如,我至少升级/重新安装了 MySQL 3 次,一次是从 rpm,两次是从源码包。我刚刚意识到,、、/sbin和中有 mysql 二进制文件。更糟糕的是,命令指向(可能是由于 的写入顺序),但脚本/usr/bin使用,并且所有共享库和标头都来自另一个安装。真是一团糟。/usr/local/bin/usr/local/mysql/binwhich/sbinENVPATHinit.d/usr/local/bin

这与当前安装的 PHP 和 Python 的情况类似。

我的问题是 - 我该如何清理它?我应该:

  1. 选择其中一个安装,将正确的 PATH 指向它,然后删除其余的。如果由于写入了依赖项路径而导致失败,则重新编译指向(现已删除的)其他安装的所有依赖项。
  2. 将所有东西推平,从头开始。

还有其他解决方案吗?感谢您的建议!

答案1

取决于你愿意投入多少时间和精力。如果你有时间和耐心重建一切,全新安装总是最好的。快速解决方案是修改 PATH 以指向你想要的版本。另一个选择是创建符号链接以指向所需的版本。同样,最好的方法是完全全新安装

答案2

坏消息是,没有快速解决办法。

好消息是,MySQL 通常不会太乱,因为它会自行安装。我建议您手动清理它们。首先编译每个安装的列表。以下命令应捕获所有内容:

INSTALL_PATH="/"
find ${INSTALL_PATH}/{bin,sbin,share} -name 'mysql*' -type f
find ${INSTALL_PATH}/{lib,include,share} -name 'mysql' -type d

重复此过程,并INTSTALL_PATH根据需要进行操作。然后开始决定要保留哪些安装以及要删除哪些安装。/usr/usr/local

显然,其中一个安装将来自 RPM,因此您不应手动删除它。请使用包管理器。当然,不要在未先检查其内容的情况下删除任何 data_dir 或日志。

相关内容