我正在编写一个脚本,将其放入我的 Mac 部署 MDM 中,该部署将安装一些开发插件。看起来 Homebrew 程序路径的变化取决于机器是基于 M1 还是基于 Intel。我已经开始编写一个 if/then 脚本来根据上述内容更改 brew 路径,但我遇到了问题。非常感谢任何帮助。
#!/bin/bash
PROCESSOR=$(/usr/sbin/sysctl -n machdep.cpu.brand_string)
M1PATH=/opt/homebrew/bin/brew
INTELPATH=/usr/local/bin/brew
if [ "$PROCESSOR" == "Apple M1" ]
then
brew=$M1PATH
else
brew=$INTELPATH
fi
brew install cocoapods
brew install maven
brew eclipse-jee
brew elm
brew node
brew install python3
npm install -g react-native-cli
npm install --global gulp-cli
brew install vim
brew install watchman
brew install yarn
yarn global add jest
npm install -g appcenter-cli
brew install ios-deploy
最佳答案
我想OP现在已经成功实现了他们的目标,但是对于那些需要解决方案的人来说,您只需使用“检测到的” Homebrew 程序路径更新PATH
变量即可:
case `arch` in
arm64) # M1
export BREW_PREFIX=/opt/homebrew
;;
i386) # Intel
export BREW_PREFIX=/usr/local
;;
esac
export PATH="$BREW_PREFIX/bin:$PATH"
如果像我一样,您的脚本带有 #!/usr/bin/env bash
序言,您可以通过添加符号链接(symbolic link)来获得额外的里程:
ln -snf $BREW_PREFIX/bin/{,brew_}bash
然后更改您的脚本以使用 #!/usr/bin/envbrew_bash
附录2022/12/29
new/temp 环境变量的要点是我们处于引导阶段,即当系统尚不知道 brew
或其任何设置时。
在我的个人设置中,我收集了大量方便的变量、函数、别名和补全,因此我将它们分别组织到专用文件中;因此,您在这里看不到任何 brew
Hook 的评估/采购,甚至可能不会在独立脚本中打扰。
关于macos - M1/Intel 的 Brew 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68504510/