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

时间:2017-10-03 10:41:28

标签: macos shell valgrind

我在Mac上安装了Valgrind;但它没有用,因为我所遵循的指令是基于Linux环境的:

  1. cd进入源目录。
  2. 运行./autogen.sh来设置环境(您需要标准  autoconf工具这样做)。
  3. 运行./configure,如果您愿意,可以使用一些选项。唯一有趣的  一个是通常的--prefix = / where / you / want / it / installed。
  4. 运行“make”。
  5. 运行“make install”,如果是目标权限,可能以root身份运行  要求。
  6. 当我尝试valgrind ls -l时,我得到了:

    valgrind: Unknown/uninstalled VG_PLATFORM 'amd64-darwin'
    

    所以,我试过了Homebrew:

    brew install valgrind
    

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

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

1 个答案:

答案 0 :(得分:2)

根据@bfontaine的评论中的建议,它可能只是一个哈希问题,并且可以通过运行来解决:

hash -r

正如@Petesh的评论中进一步建议的那样,&#34; Linux&#34; 包的初始安装可能引入了/usr/local/bin/valgrind,其中自制< / strong>不会替换。要查看是否是这种情况,请运行:

brew doctor

并查看自制程序valgrind是否已取消关联。如果是,请按照医生的建议删除您错误安装的那个,然后重新链接自制版本:

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

否则,首先要做的是:

type valgrind

这将告诉您在运行valgrind时实际运行的内容。

接下来要知道自制软件会在/usr/local/bin中安装所有内容,所以如果上面的第一个命令没有告诉你/usr/local/bin/valgrind,问题就是:

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

    echo $ PATH

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

如果您的PATH错误,您可以使用以下命令设置它:

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

虽然确切的内容取决于你之前的所有内容。

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

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