![“/usr”、“/usr/local/”、“/sbin”](https://linux22.com/image/489041/%E2%80%9C%2Fusr%E2%80%9D%E3%80%81%E2%80%9C%2Fusr%2Flocal%2F%E2%80%9D%E3%80%81%E2%80%9C%2Fsbin%E2%80%9D.png)
这是新手 Linux 管理员的问题。在过去的 6 个月左右,我最终升级了 Fedora 服务器上的大多数默认安装软件。在过去的几周左右,我意识到这个文件系统上有许多相同软件的实例,有些仍在使用,有些则没有。
例如,我至少升级/重新安装了 MySQL 3 次,一次是从 rpm,两次是从源码包。我刚刚意识到,、、/sbin
和中有 mysql 二进制文件。更糟糕的是,命令指向(可能是由于 的写入顺序),但脚本/usr/bin
使用,并且所有共享库和标头都来自另一个安装。真是一团糟。/usr/local/bin
/usr/local/mysql/bin
which
/sbin
ENV
PATH
init.d
/usr/local/bin
这与当前安装的 PHP 和 Python 的情况类似。
我的问题是 - 我该如何清理它?我应该:
- 选择其中一个安装,将正确的 PATH 指向它,然后删除其余的。如果由于写入了依赖项路径而导致失败,则重新编译指向(现已删除的)其他安装的所有依赖项。
- 将所有东西推平,从头开始。
还有其他解决方案吗?感谢您的建议!
答案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 或日志。