“/ usr”,“/ usr / local /”,“/ sbin”

新手Linuxpipe理员问题在这里。 在过去的6个月左右,我已经升级了Fedora服务器上的大部分默认安装软件。 过去几个星期左右,我意识到在这个文件系统上有很多同样的软件实例,有些还在使用,有些则没有。

例如,我已经升级/重新安装MySQL至less3次,一次从rpm,两次从源代码tarball。 我刚刚意识到在/sbin/usr/bin/usr/local/bin/usr/local/mysql/bin中有mysql二进制文件。 更糟糕的是, which命令指向/sbin ,(感谢命令ENVPATH被写入,可能是),但init.d脚本使用/usr/local/bin ,以及所有的共享库和头文件来自另一个安装。 一团糟。

这与目前安装PHP和Python的情况相似。

我的问题是这个 – 我怎样清理这个? 我是否:

  1. select一个安装,指向适当的path,并删除其余的。 重新编译指向(现在删除的)其他安装的所有依赖项,如果它们因为它们的依赖path被写入而失败。
  2. 平衡一切,从头开始。

还有其他解决scheme吗? 谢谢你的build议!

取决于您希望投入多less时间和精力。 如果你有足够的时间和耐心来重build所有东西,干净的安装总是最好的。 快速的解决scheme是修改你的PATH指向你想要的版本。 另一种select是创build符号链接指向所需的版本。 最好的方法是完全干净的安装

坏消息是没有一个快速的解决办法。

好消息是MySQL通常不会太麻烦, 我build议你手工清理它们。 首先编译每个安装的列表。 下面的命令应该会抓住一切:

 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,所以你不应该手动删除。 使用包pipe理器。 当然,不要删除任何data_dir或日志而不先检查它们的内容。