前言
正常情况下我会在更换电脑时会用
Time Machine
直接恢复原有的环境。距离我上次搭建环境已经过去4年了,想要趁着这次换电脑的契机彻底重新搭建一遍。建议定期使用
Time Machine
对机器进行定期备份。配置记录
必备软件
XCode
一般也不用这个步骤,因为安装
Homebrew
的时候,就会自己安装简单来讲 Command Line Tools 就是一个小型独立包,为mac终端用户提供了许多常用的工具,实用程序和编译器。包括svn,git,make,GCC,clang,perl,size,strip,strings,libtool,cpp,what以及其他很多能够在Linux默认安装中找到的有用的命令。
如果没有
Xcode IDE
的需求,可以直接只安装 Xcode Command Line Tools
版本:xcode-select --install
Homebrew
参考文档:M1芯片Mac上Homebrew安装教程
- 导出 bundle 列表
在旧电脑导出使用
Homebrew
安装的软件包列表:/usr/local/bin/brew bundle dump
这里我选择不直接导入
Brewfile
文件,而是选择缺少的包进行安装。
如果有需要导入 Brewfile
文件的话,可以执行 brew bundle --file="~/Brewfile"
,具体 API 可以查阅相关文档。多版本共存
Homebrew
Homebrew
alias
已经将两个版本合并,不需要单独安装两个版本了
安装不同版本的 Homebrew
安装ARM版本:
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
)"
arch -x86_64 /bin/bash -c "$(curl -fsSL
https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh
)"
设置别名到对应的配置文件中
alias abrew='arch -arm64 /opt/homebrew/bin/brew' alias ibrew='arch -x86_64 /usr/local/bin/brew'
日常更新依赖
#!/bin/bash brew update -v && brew upgrade -v && brew cleanup
- 加入环境变量
执行完安装脚本后,注意看输出信息。 执行
echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> $HOME/.zprofile
后重启终端,将 Homebrew
加入环境变量。小知识,zsh 配置文件的加载顺序:
.zshenv
→ .zprofile
→ .zshrc
→ .zlogin
→ .zlogout
「将耗时长,并且不经常变动的的配置信息放到 ~/.zprofile
中,这样大部分的耗时只发生在打开 Terminal 时,从而提高执行 source ~/.zshrc
的速度。」Node.js
多版本管理工具:nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash\
当前
Node.js
版本为 15.3.0 以上的版本才有提供为 ARM64
版本。查看 Node.js
运行的架构信息,执行 node -p process.arch
For anything under v15, you will need to install node using Rosetta 2. In Terminal, use arch -x86_64 zsh
当前官方提供的 v15 只有源码版本,需要下载到本地编译安装,因此安装时间会比较久。
建议管理多版本
Node.js
时,全局 npm 与 全局 yarn 包分别安装管理。即不要存在超越版本存在的任何依赖存在。根据
.nvmrc
自动切换环境# Location: ~/.zshrc # Calling nvm use automatically in a directory with a .nvmrc file # place this after nvm initialization! autoload -U add-zsh-hook load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; then nvm install elif [ "$nvmrc_node_version" != "$node_version" ]; then nvm use fi elif [ "$node_version" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" nvm use default fi } add-zsh-hook chpwd load-nvmrc load-nvmrc
Visual Studio Code
当前(2021年02月04日)只有 insider 版本才有原生支持 M1 芯片。强烈建议使用 insider 版本,性能提升非常明显。
使用官方提供的 Settings Sync 特性,同步到新电脑的时候记得选择 insider 版本,这样就能把旧配置同步到 insider 版本了。
终端命令行工具
$ cd # cs Home directory $ git clone https://github.com/gpakosz/.tmux.git # clone repo $ ln -s -f .tmux/.tmux.conf $ cp .tmux/.tmux.conf.local .
- fzf
用
golang
编写通用的命令行模糊搜索工具M1 电脑过度读写 SSD 问题排查(查看硬盘读写统计)
一些高级用户表示,他们发现 M1 在读写数据时会过度使用 Mac 电脑的 SSD,这一问题可能会影响到 M1 版 Mac 中搭载的 SSD 的寿命,进而影响整个机器的寿命。
brew install smartmontools
- 执行
diskutil list
,确定自己 SSD 所在盘符,默认一般为disk0
smartctl -a disk0