你如何在 *nix 中卸载?

Posted

技术标签:

【中文标题】你如何在 *nix 中卸载?【英文标题】:How do you uninstall in *nix? 【发布时间】:2010-10-01 10:01:13 【问题描述】:

我仍然无法理解的一件事是在 *nix 环境中卸载程序的经验法则。大多数时候,我很乐意让睡狗躺着,而不是卸载我不再需要的软件。但有时我会遇到几个 Apaches、svn 等。

到目前为止,我知道如何处理这个问题:

1) 如果您使用 apt-get 或 yum 安装,则有一个卸载命令。应用文件夹中很少有卸载脚本,例如uninstall.sh

2) 要确定从命令行调用哪个特定安装,请使用“type -a”命令

3) 使用“sudo find / | grep”来查找其他可能安装的东西(据我了解,type 只查找 PATH 变量中的东西)

4) 在 PATH 中添加/更改事物的顺序以使所需版本的应用程序排在第一位,或者为 .bashrc 添加别名

5) 删除我不再需要的东西。如果应用程序仅安装在一个文件夹中,这很容易,但如果有多个文件夹,则很棘手。我听说过的一个技巧是运行具有时间范围的查找,以查找在安装发生时发生更改的所有文件 - 这大致显示了更改和添加的内容。

你有什么要补充/更正的吗?

【问题讨论】:

【参考方案1】:

如果您没有使用包管理器(rpm、apt 等),那么您可能是从源代码安装的。要安装,您按照 ./configure && make && make install 执行了一个过程。如果应用程序表现良好,那么“安装”make 目标应该与“卸载”目标相结合。所以再次提取源,再次配置(使用相同的路径),然后卸载。

【讨论】:

如果 ./configure && make uninstall 返回 make: *** 没有规则可以使目标“卸载”。停止。 ?【参考方案2】:

通常,如果您从源代码编译某些内容,则该过程将是

$ make
$ su
# make install

在这种情况下,绝大多数程序都会有一个卸载目标,这将使您可以逆转安装过程中发生的步骤

$ su
# make uninstall

与往常一样,请阅读程序的 README 或 INSTALL 文件以确定可用的内容。在大多数情况下,您要么通过包管理器安装某些东西(它也将处理卸载),要么您将调用某种手动过程(它应该带有解释如何卸载它的自述文件)。

【讨论】:

你永远不应该这样使用 su。如果您想以超级用户身份运行任何内容,请使用 sudo 那是完全不同的讨论。 :-) 可以说我见过的大多数 INSTALL 文档在示例中都给出了“su”而不是“sudo”,虽然后者可能更方便,但我不会说它在大多数环境中更安全。

以上是关于你如何在 *nix 中卸载?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 configuration.nix 中以声明方式添加 NixOS 不稳定通道

如何:在 Apache 2.4.4 [MAC / *NIX] 上设置虚拟主机

使用 Nix 的 callCabal2nix 时如何启用 Haskell 分析

如何从 nix 表达式文件中安装 nix-env 派生?

*nix 伪终端如何工作?啥是主/从通道?

在 *nix 中处理多路复用套接字的读取超时