如何删除 OSX 中基于 linux 的程序

how to remove linux based program in OSX

我已经在 Mac 上安装了 Valgrind;但它不起作用,因为我遵循的说明是基于 Linux 环境:

  1. cd 进入源目录。
  2. 运行 ./autogen.sh 设置环境(你需要标准 autoconf 工具来执行此操作)。
  3. 运行 ./configure,如果您愿意,可以添加一些选项。唯一有趣的 一个是通常的 --prefix=/where/you/want/it/installed.
  4. 运行 "make".
  5. 运行 "make install",如果目标权限可能是 root 要求。

当我尝试 valgrind ls -l 我得到:

valgrind: Unknown/uninstalled VG_PLATFORM 'amd64-darwin'

所以,我通过 Homebrew 尝试了:

brew install valgrind

成功运行;但是当我再次尝试 valgrind 命令时,之前的安装覆盖了我的 shell 命令。

在这种情况下,如何正确删除之前安装的 Valgrind?

正如@bfontaine 在评论中所建议的那样,这可能只是一个散列问题,运行ning 很容易解决:

hash -r

正如@Petesh 在评论中进一步建议的那样,您最初安装的 "Linux" 软件包可能引入了一个 /usr/local/bin/valgrindhomebrew 不会替换。要查看是否是这种情况,运行:

brew doctor

并查看 homebrewvalgrind 是否已取消链接。如果是,请按照好医生的建议删除您错误安装的那个,然后重新链接 homebrew 版本:

sudo rm /usr/local/bin/valgrind
brew link valgrind

否则,首先要做的是运行:

type valgrind

这将告诉您当您 运行 valgrind.

时实际得到的是 运行

接下来要知道homebrew安装了/usr/local/bin中的所有东西,所以如果上面第一个命令没有告诉你/usr/local/bin/valgrind问题是:

  • valgrind 被函数或别名取代 - 在这种情况下删除别名或函数,或者
  • 您的 PATH 已设置为包含 /usr/local/bin 之前包含 valgrind 的内容。所以你需要 运行:

    echo $PATH

并检查 /usr/local/bin 之前是否有类似 /usr/local/my/funky/bin 的内容 - 这是您应该拥有的正确内容。

如果你的 PATH 是错误的,你可以用这样的命令来设置它:

export PATH="/bin:/sbin:/usr/local/bin"

尽管具体内容将取决于您之前在那里的内容。

一旦一切正常,如果它涉及更改您的 PATH,您应该确保在您的登录配置文件中始终以这种方式设置 PATH,该配置文件可能在以下文件之一中:

$HOME/.profile
$HOME/.bash_profile
$HOME/.bash_login