如何卸载从 git 手动克隆的包

如何卸载从 git 手动克隆的包

我想在我的机器上卸载 tmux。我的 tmux 版本是:

tmux next-3.4

which tmux给我:

/usr/local/bin/tmux

我尝试使用 卸载它sudo yum remove tmux,我得到:

Updating Subscription Management repositories.
No match for argument: tmux
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!

我的机器信息如下:

NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
Red Hat Enterprise Linux release 8.6 (Ootpa)
Red Hat Enterprise Linux release 8.6 (Ootpa)

答案1

您没有安装 tmux 软件包,您自己编译并安装了 tmux - 因此软件包管理工具(例如yum)对您自行安装的 tmux 版本一无所知。

简而言之:您手动安装了它,您必须手动卸载它。

一些可能使这变得更容易的可能性:

  • 有些程序的Makefile 中同时带有 和install和目标。uninstall我不知道tmux这是否有效,但值得检查。运行make uninstall或检查 tmux 的 Makefile 以查看它是否具有该目标。请注意,uninstallmakefile 目标并不总是可靠,并且通常不会在任何接近 asbuildinstall目标的地方进行测试。买者自负。 YMMV。祝你好运!

  • 运行make -n install并记下将安装的所有文件。然后手动删除它们。提示:将 的输出重定向到文件会有所帮助make -n,特别是在有大量输出的情况下。

    顺便说一句,如果不明显,make-n选择是试运行 - 来自man make

    -n, --just-print, --dry-run,--recon

    打印将要执行的命令,但不执行它们(某些情况除外)。


对未来的建议:

要么坚持使用打包软件,要么使用类似的程序GNU 斯托或者检查安装编译和安装软件时。它们提供了软件包的一些(但不是全部)有用功能,并使升级和/或卸载自编译软件变得更加容易。

请注意,99% 以上的情况下,自己编译软件几乎没有任何好处。 “它更闪亮、更新”和“它有更大的版本号”几乎永远都不是足够好的理由。特别是如果您不知道如何卸载自编译的程序,或者打包软件和自编译软件之间的区别。

如果有一个特定的新功能是您绝对必须拥有的,或者是一个影响您的错误,并且您知道它已在最新的上游版本中修复,并且您不能等待几天或几周才能更新软件包,那么它可能值得麻烦……但即使这样,通常也不是,您只是用一个问题(错误或缺乏功能)来换取另一个问题(未打包的软件)。等待几乎总是更好。

或者,不只是下载源代码并运行make install,而是充分了解发行版的打包系统来构建您自己的最新版本的包。通常这可以像下载包裹源文件并对其应用上游补丁,然后重新构建软件包,或将软件包更改(例如 debian/ubuntu/etc 上的 debian/ 目录,或基于 RPM 的发行版上的规范文件等)移植到最新的上游源。

相关内容