如何卸载从源安装的 git?

如何卸载从源安装的 git?

我使用以下方式安装了 git本文。现在想卸载git,怎么办?

答案1

我找到了解决方案这里

2012 年 11 月 2 日更新

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

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

1)获取与您构建和安装的版本完全相同的源 tarball,然后解压。

2)按照与原始安装相关的方式完全按照安装位置(前缀、执行前缀等)进行配置;据说您不应该覆盖任何内容。

3)创建一个临时目录来执行安装,如下所示:$ mkdir /var/tmp/git

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

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

最后一步是“魔法”发生的地方,因此需要更多解释。例如,你可以运行

$ find /var/tmp/git -type f -printf '/%P\n' | xargs -n 10 rm -f

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

处理完文件后,运行

$ find /var/tmp/git -type d -printf '/%P\n'

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

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

答案2

我刚刚读完了 2691 行 Makefile。确实没有 make uninstall。糟糕。

在这种情况下,解决方法可能是使用选项make rpm。安装 rpm(覆盖所有已安装的文件,这些文件应与已安装的文件相同)。然后卸载 rpm。

在所有未来情况下,构建一个包(RPM、yum 等等)。它使维护变得容易得多。

相关内容