【问题标题】:How to uninstall outdated version of mongodb on OS X?如何在 OS X 上卸载过时版本的 mongodb?
【发布时间】:2014-02-27 22:02:10
【问题描述】:

我在 OS X 上有一个过时的 mongodb 版本(1.8.2),我终生无法弄清楚如何摆脱它。它是几年前安装的,我认为是用自制软件安装的。使用brew update && brew upgrade mongo 升级它让我获得了最新版本的 mongo 客户端 (2.4.9) 但是当我打开客户端并运行时

use admin
db.runCommand({buildInfo:1})

我明白了

{
  ...
  "version" : "1.8.2",
  ...
}

当我问的时候

which mongo

我明白了

/usr/local/bin/mongo

这是一个符号链接(如预期的那样)

/usr/local/Cellar/mongodb/2.4.9/bin/mongo

还有

/usr/local/opt/mongodb

似乎正确地符号链接到

/usr/local/Cellar/mongodb

查看/usr/local/Cellar/mongodb,我发现了两个过时的版本(其中一个是1.8.2)并移动了它们以查看会发生什么。答案是什么。 Mongo Client 仍然启动并报告客户端版本为 2.4.9,但db.runCommand({buildInfo:1}) 仍然报告 1.8.2。我已经通过自制软件卸载并重新安装,但只是不知道罪魁祸首在哪里。非常感谢任何帮助。

【问题讨论】:

    标签: macos mongodb homebrew


    【解决方案1】:

    基于您在 OS X 中运行 MongoDB 的事实,以下是我的假设:

    1. 这不是生产系统
    2. 这是一个沙盒,用于开发和/或学习 MongoDB。
    3. 您可以丢失此 MongoDB 实例上当前拥有的所有数据

    如果我的 3 个假设都成立,您可以手动删除所有 mongoDB 可执行文件。他们可能都应该在同一个目录中。将该目录以及 dbpath 和日志路径的内容移至回收站。

    在 mongo shell 中运行 getCmdLineOpts 命令将帮助您识别 dbpath 和日志路径 http://docs.mongodb.org/manual/reference/command/getCmdLineOpts/

    此链接包含重新安装 MongoDB 的说明: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

    如果您有任何问题,请告诉我。

    【讨论】:

    • getCmdLineOpts 看起来像是工具箱中的一个有用的东西,尽管答案结果是一个顽固的 mongod 实例。我停止它,从 launchctl 卸载它,从 /Library/LaunchAgents 中删除它,然后重新启动它,现在一切似乎都很好。
    【解决方案2】:

    brew update,然后是brew upgrade mongodb,而不是brew update mongo

    【讨论】:

    • 谢谢。结果不是答案,但你能告诉我这两个包有什么区别吗?
    • 我认为这真的归结为您使用哪个安装它。看到这个问题后,我实际上升级了我的。我尝试了mongo,但它不起作用,然后尝试了mongodb,它起作用了。
    【解决方案3】:

    谢谢你们的意见。答案原来是一个特别顽固的 mongod 版本。它被设置为使用launchctl在系统启动时启动,因此即使我重新启动我的机器它仍然存在。我按照this rather old post 中的建议将其从launchctl 中删除,然后通过从mongo shell 运行以下命令来停止mongod:

    > use admin
    > db.shutdownServer()
    

    之后我从/usr/local/Cellar/mongodb/2.4.9/homebrew.mxcl.mongodb.plist复制了自制的mongo plist文件 进入/Library/LaunchDaemons 并运行

    $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mongodb.plist
    

    重新启动机器,2.4.9 似乎一切正常。

    【讨论】:

      【解决方案4】:

      如果您安装了旧版本,最好使用ls /usr/local/Cellar检查文件夹

      我在名为mongodb26 的文件夹下进行了安装,因为我手动选择使用 MongoDB 2.6。在这种情况下,仅仅做brew uninstall mongodb 是行不通的。我不得不做brew uninstall mongodb26。只是有一点需要了解。

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 2023-04-08
        • 2011-04-18
        • 1970-01-01
        相关资源
        最近更新 更多