如何卸载从源代码安装的git?

Mik*_*ail 23 centos git uninstall centos6

我使用这篇文章安装了 git 。现在我想卸载 git。怎么做?

Mik*_*ail 15

我在这里找到了解决方案。

2012 年 11 月 2 日更新

如果你足够聪明并且在配置 Git 时使用了一些非标准前缀,以便它安装在特定的层次结构下,比如在 /opt/git 下,那么只需递归地删除该层次结构。

如果没有,那么你可以这样:

1) 获取您构建和安装的版本的源 tarball,解压。

2) 在安装位置(前缀、exec-prefix 等)方面完全按照原始安装进行配置;据说你不应该覆盖任何东西。

3) 创建一个临时目录进行安装,像这样: $ mkdir /var/tmp/git

4) 通过适当的 DESTDIR 变量安装 Git: $ make DESTDIR=/var/tmp/git install Git 层次结构最终将在该临时目录下创建。

5)使用创建的层次结构来决定在真实层次结构(“/”本身)下删除哪些文件。

最后一步是“魔法”发生的地方,所以它有更多的解释。例如,你可以运行

$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f
Run Code Online (Sandbox Code Playgroud)

(以 root 用户)删除第一次错误安装到 root 文件系统中的文件。上面的咒语使用 /var/tmp/git 层次结构来打印找到的文件列表,但它将其中的“/var/tmp/git”前缀替换为“/”,以便“/var/tmp/git输出中的 /usr/bin/git" 最终将列为 "/usr/bin/git"。然后将该列表通过管道传送到xargs它,它rm 在它以十个为一组读取的文件名上运行(只是为了将 的调用次数减少rm一个数量级)。

处理完文件后,运行

$ find /var/tmp/git -type d -printf '/%P\n'
Run Code Online (Sandbox Code Playgroud)

检查已安装目录的列表。这些需要手动方法,因此只需查看生成的列表,并考虑您可以安全地rmdir从系统中安全地使用其中的哪些(这些将是诸如“/usr/libexec/git”之类的目录或类似的内容;您可能不想删除"/usr/share/man/mann" 或其他内容,即使它是空的)。

PS 以后永远不要通过运行将任何东西安装到系统中 make install!现在大多数 makefile 不支持“卸载”目标,因为它们用于安装到私人暂存位置进行测试或制作包(.rpm、.deb 等),然后包管理器负责清理。如果您需要安装某些东西,请尝试查找官方软件包或尝试从更新版本的操作系统向后移植另一个官方软件包(如果有)。作为最后的手段,尝试使用checkinstall尝试在运行中创建二进制包的工具make install。这很糟糕,但仍然比裸好make install