如何使用Homebrew安装MongoDB的早期版本?

77

我使用的是osx6.8系统,需要安装早期版本的Mongodb。请问如何使用HomeBrew安装早期版本呢?

下面的方法不起作用 :(

dream-2:app2 star$ brew install mongodb-2.6.10
Error: No available formula for mongodb-2.6.10 
Searching formulae...
Searching taps...
dream-2:app2 star$ 

编辑:
我收到了一条消息要求解释这篇文章与另一篇文章的不同之处,那么,对于另一个问题的答案非常冗长和复杂,并且它是特定于postgresql的,不真正回答我的问题。


1
可能是Homebrew安装特定版本的公式?的重复问题。 - Cody Haines
7个回答

233
注意:在2019年9月,Homebrew核心中删除了mongodb,因此这些说明已更新为使用外部tap安装的mongodb-community

如果您当前安装的是九月之前mongodb软件包,则需要将下面标有#*#的行中的mongodb-community替换为mongodb

另一种选择是立即升级到不推荐使用的软件包。

谢谢,我已经安装了最新版本的mongo。

brew tap mongodb/brew

brew install mongodb-community

不过,有时我想切换回旧版本。首先,安装它:

brew search mongo

brew install mongodb-community@3.2

我们停止当前的mongodb,如果它正在运行:

brew services stop mongodb/brew/mongodb-community           #*#

# or if you had started it manually

killall mongod

现在我想要将路径上的3.2版本代替最新版本。
brew unlink mongodb-community                               #*#

brew link --force mongodb-community@3.2

(显然需要--force,因为它是仅限于keg的。)

现在我在我的PATH上有3.2版本,我可以启动测试数据库:

mongod --version

brew services start mongodb/brew/mongodb-community

# or start your own mongod from the command-line

当我完成后,我可以反向操作以切换回最新版本。
brew services stop mongodb/brew/mongodb-community

brew unlink mongodb-community@3.2

brew link mongodb-community                                 #*#

brew services start mongodb/brew/mongodb-community          #*#

重新开始。

10
不确定为什么这个答案被列在最下面,它显然是最好的答案,并且也得到了最多的赞。 - Simon
我陷入了不同版本的兔子洞,这是唯一对我有效的解决方案。 - Devin
1
现在,brew 在安装公式的替代版本(例如 brew install mongodb@3.6)后会提示您通过以下方式设置 $PATH:echo 'export PATH="/usr/local/opt/mongodb@3.6/bin:$PATH"' >> ~/.bash_profile - pnd
为什么这不是正确答案?实际上,这帮助我解决了问题,非常感谢! - Zeid Tisnes
@pnd 更新PATH是重新链接的替代方案,但我们必须在每个关心的打开终端中运行source ~/.bash_profile。我建议使用unlinklink,因为这将切换整个系统的mongo版本,可以减少混淆。高级用户当然可以根据自己的喜好更新PATH - joeytwiddle

47

当尝试使用Homebrew安装某些旧版本时,通常可以从brew search packagename开始,例如,在这种情况下,有一个2.6版本可用于homebrew/versions/mongodb26

因此,要安装该版本:

brew install homebrew/versions/mongodb26

编辑

这个答案已经非常过时了,查看下面的答案可以找到在2021年完成此操作的有效方法。


谢谢。我试了一下,终端好像卡住了,这是它最后显示的内容,“这是什么意思?”:==> 从homebrew/homebrew-versions安装mongodb26 ==> 正在下载https://fastdl.mongodb.org/src/mongodb-src-r2.6.8.tar.gz ######################################################################## 100.0% ==> /usr/local/opt/scons/bin/scons install --prefix=/usr/local/Cellar/mongodb26/2.6.8 -j8 --cc=/usr/bin/gcc-4.2 --cxx=/usr/bin/g++-4.2 --osx-version-min=10.6 - Agent Zebra
1
你在终止它之前让它运行了多久?那只是一个典型的自制安装。正在从源代码编译mongodb,所以可能需要几分钟时间,而且您不一定会看到任何输出。 - Cody Haines
谢谢,我不知道那个 o.O!哈哈,我再试了一次,最终它加载了。mongod -v 产生了很多疯狂的消息,但是也许我可以从这里弄清楚。感谢您的帮助! - Agent Zebra
1
mongod --version 有更少的“疯狂信息”。更具体地说,mongod -v 只是在详细模式下运行 mongod,而不是显示版本信息。祝好运 :) - Cody Haines
10
这个答案似乎有点过时了。homebrew/versions已经被弃用了。 - frhd
显示剩余7条评论

4
curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.2.12.tgz
tar -zxvf mongodb-osx-x86_64-3.2.12.tgz
mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-3.2.12/ mongodb
export PATH=<mongodb-install-directory>/bin:$PATH #path to the dir created in step 3
mkdir -p /data/db
sudo chown -R $(whoami) /data/
mongod

Homebrew只允许安装最低版本3.0。然而,我需要使用2.6版本。幸运的是,您的评论帮助我解决了这个问题,并且还帮助我同时安装了两个版本。 - TommyDo

3

不要使用homebrew,你可以使用docker来安装任意数量的mongodb版本。每个mongodb可以在不同的端口上运行。

使用brew cask install docker命令安装docker,然后打开Docker.app。docker运行后,在终端中选择一个镜像从https://hub.docker.com/_/mongo/安装mongodb版本,如下所示:docker run -d -p 28017:27017 --name mongo4 mongo:latest

通过docker ps命令验证其是否正在运行,并且你可以通过端口28017从你的应用程序连接到mongodb。重复这些步骤以安装更多版本。享受吧!


我该如何验证在此Docker实例中运行的MongoDB版本?我在3年前看过Docker,但当时它对我来说有点不直观,所以我一直使用虚拟机。任何帮助将不胜感激。 - sed

3
除了 joeytwiddle 给出的优秀答案之外:
如果您不想链接旧版本的软件,可以从“cellar”(/usr/local/Cellar/)中运行它,而无需取消链接。使用 ls /usr/local/Cellar/ 查找可执行文件的确切路径。例如,在我的情况下,要运行mongo shell:
/usr/local/Cellar/mongodb@3.6/3.6.7/bin/mongo

2

我能够按照以下的指示安装它:

在OSX上安装MongoDB进行本地开发
在过去的一周中,我已经在EC2上为生产环境构建了我们的MongoDB集群。然而,对于开发来说,我们仍需要在本地安装MongoDB。我正在运行OSX 10.6.8,但这些安装说明应该适用于所有现代OSX版本。
在OSX上安装要比在EC2上愉快得多(实际上在EC2上也很容易,但由于它是一个更简单的设置,所以没有真正的配置或头痛)。
下载最新的二进制文件: curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.0.2.tgz
注意!:如果您没有安装wget,请通过访问上面的链接下载该文件并将其移动到您的主目录中。
我们将在/usr/local/mongodb下安装所有内容,以保持事物有序。
创建目录(将“youruser”替换为您的主目录用户名): sudo mkdir /usr/local/mongodb sudo mkdir /usr/local/mongodb/log sudo mkdir/usr/local/mongodb/data sudo chown youruser /usr/local/mongodb/log sudo chown youruser /usr/local/mongodb/data sudo chgrp staff /usr/local/mongodb/log sudo chgrp staff /usr/local/mongodb/data
解压缩二进制文件并将其移动到正确的文件夹中: tar -xvzf ~/mongodb-osx-x86_64-2.0.2.tgz sudo mv ~/mongodb-osx-x86_64-2.0.2/* /usr/local/mongodb/
为mongod创建一个配置文件: sudo vi /usr/local/mongodb/mongod.conf
粘贴: dbpath=/usr/local/mongodb/data logpath=/usr/local/mongodb/log/mongod.log logappend=false bind_ip=127.0.0.1
注意:dbpath和logpath指定它们各自文件的路径,logappend设置为在每次启动数据库服务器时覆盖日志文件,bind_ip仅允许本地连接。
创建一个别名,以便发出mongod始终读取配置文件: vi ~/.profile 粘贴: # MongoDB Alias' alias mongod="/usr/local/mongodb/bin/mongod --config=/usr/local/mongodb/mongod.conf"
完成所有操作后,重新加载shell即可简单地键入mongod来启动MongoDB。我更喜欢不在启动时启动mongod,但有其他人喜欢这样做,并且有足够的在线文档可以向您展示如何使用launchd和创建.plist来设置它。

http://alexanderwong.me/post/15259867190/installing-mongodb-on-osx-for-local-development


sudo chown youruser /usr/local/mongodb/logsudo chown youruser /usr/local/mongodb/data 可以编辑为sudo chown $(whoami) /usr/local/mongodb/logsudo chown $(whoami) /usr/local/mongodb/data - CodeShadow
Homebrew是专业业务的最佳工具。工具本身的重大变化,以及流行应用程序版本之间的重大变化。 - siefca

2
如果您想在Mac上安装早期版本的MongoDB,请访问链接https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-os-x/,选择您想要安装的版本,非常容易安装,可以试一试。安装大约需要2-3个命令。
例如,如果您想安装 3.6版本
brew tap mongodb/brew
brew install mongodb-community@3.6

如果您遇到了一些错误

If you need to have mongodb-community@3.6 first in your PATH run:
  echo 'export PATH="/usr/local/opt/mongodb-community@3.6/bin:$PATH"' >> ~/.bash_profile

然后运行

export PATH="/usr/local/opt/mongodb-community@3.6/bin:$PATH"

确认是否成功安装:

mongod -version

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接