mongocli 是否支持 Apple M1 芯片的公式 URL?

时间:2021-02-26 06:45:58

标签: mongodb macos-big-sur apple-m1

根据installation instructions,运行时:

brew tap mongodb/brew

我收到以下错误:

Error: Invalid formula: /opt/homebrew/Library/Taps/mongodb/homebrew-brew/Formula/mongocli.rb

formulae require at least a URL

Error: Cannot tap mongodb/brew: invalid syntax in tap!

我确实遵守了先决条件(更新了 xcodebrew)。我确保运行 brew updatebrew doctor

此时,我在 mongodb/homebrew-brew repo 上寻找答案,看到了一个非常recent commit for the mongocli

显然,它定义了带有 Intel 芯片但没有提及 Apple M1 芯片的 Mac 和 Linux 机器的 URL。目前这阻止了我点击 mongodb。您是否知道任何解决方法,或者我是否在某处犯了错误?

3 个答案:

答案 0 :(得分:12)

刚遇到同样的问题...

转到 Finder > Utilities 并右键单击终端并选择“获取信息” 找到“使用 Rosetta 打开”选项并选中它。

打开新终端并运行“brew tap mongodb/brew” 完成后关闭终端并取消选中“使用 Rosetta 打开”,再次打开终端,然后运行“brew install mongodb-community@4.4”。

这对我有用,并且安装了 MongoDB。

答案 1 :(得分:1)

您可以通过在命令前加上前缀来简单地在 M1 macs 上运行 Rosetta 下的任何命令

arch -x86_64

对于您的用例尝试

arch -x86_64 brew tap mongodb/brew 
brew install mongodb-community@4.4  

答案 2 :(得分:0)

试试下面的命令

const elements = [1, 2, 3, 4, 5]

for (let item of Permutations(elements)) {
  console.log(...item)
}

// note: this (OP's) algorithm use O(n**2) space afaict 
function Permutations(elements) {
  return handlePermutations([], elements)

  function* handlePermutations(used, free) {
    if (free.length == 0)
      yield used;
    else {
      for (let i = 0; i < free.length; i++) {
        let newUsed = used.concat(free[i]) // add element i from free to used
        let newFree = free.filter((x, index) => index != i) // remove element i from free
        yield* handlePermutations(newUsed, newFree);
      }
    }
  }
}