快速导航
最近实在没忍住,以 2944 的价格入手了一台 mac mini m4 丐版,而我之前一直使用的是一台2019年 Intel 芯片的 macbook pro,因为刚开始使用,开发环境还没配置好,所以还没感觉到明显地提升,但至少我的桌面倒是干净了不少。
此次入手 mac mini 后我使用 迁移助理 对旧数据进行迁移,不幸的是,由于是 Intel 迁移至 Apple Silicon,所以出现了各种各样的问题,尤其是
Bad CPU type in executable错误,导致 git、python等二进制文件全部不可用,最后只能重置系统并重头开始配置(注:重置系统只需要到设置 -> 通用 -> 传输与还原 -> 抹掉所有内容和设置,不用长按开机键进入选项抹掉磁盘)
设置
App Store
因为我一般都是美区ID+国区商店,所以打开 App Store,在左上方的菜单栏中找到 商店 -> 退出登录,并登入国区ID
终端
我还是习惯使用 bash
1chsh -s /bin/bash
并且有使用了十多年的PS1配置
1git_status() {
2 cmd=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/[((]//' -e 's/[))]//' -e 's/* \(.*\)/(\1)/'`
3 echo -en "\033[32m$cmd\033[0m"
4}
5proxy_status() {
6 [[ -z "${http_proxy}" ]] || echo -en "\033[32m[PROXY]\033[0m"
7}
8PS1="\$(proxy_status)\[\e[0;37m\]\342\224\214\342\224\200 \[[\e[0;33m\]\u\[\e[0;37m\]]\342\224\200[\[\e[1;33m\]\w\[\e[0;37m\]]\$(git_status)\n\[\e[0;37m\]\342\224\224\342\224\200\342\224\200\342\225\274\[\e[0m\] "
如果 ~/.bashrc 不生效,需要添加文件 ~/.bash_profile
1if [ -r $HOME/.bashrc ]; then
2 source $HOME/.bashrc
3fi
必备软件
微信、QQ、QQ音乐、网易云音乐、Localsend等软件可以在商店里直接下载
homebrew
这应该是每个Mac用户的必备软件了吧
1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果安装速度太慢或是下载部分内容时完全卡住,可以先行安装科学上网工具
然后添加以下内容到 ~/.bashrc
1export PATH=/opt/homebrew/bin:$PATH
2
3if which brew > /dev/null;then
4 export HOMEBREW_NO_AUTO_UPDATE=true
5 # export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=true
6 # export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
7 # export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
8 eval "$(brew shellenv)"
9fi
betterdisplay
由于我使用的是一个2K显示器,所以需要开启HIDPI
1brew install --cask betterdisplay
clash-verge-rev
如果之前是通过dmg文件安装的,需要先卸载,然后重新使用brew安装,方便升级和管理
1brew install --cask clash-verge-rev
folo
RSS信息聚合阅读器
1brew install --cask folo
google-chrome
1brew install --cask google-chrome
如果在登陆账号时总是提示请求取消,并且登陆失败,开启全局代理即可
yabai
macos端的平铺窗口管理
1brew install koekeishiya/formulae/yabai
2yabai --start-service
hammerspoon
主要用于搭配 yabai 使用
1brew install --cask hammerspoon
我的配置在 https://github.com/honmaple/dotfiles/tree/master/macos
Localsend
一个内网文件传输工具,可以在商店直接下载,或者使用
1brew install --cask localsend
inkscape
一个矢量图绘制软件
1brew install --cask inkscape
wireshark
抓包工具
1brew install --cask wireshark
字体
-
终端字体
1brew install --cask font-maple-mono-nf
其它
1brew install rg
2brew install tree htop
3brew install --cask visual-studio-code
-
域名扫描 https://github.com/brandonyoungdev/tldx
1brew install tldx使用方式
1tldx -r 'lib[a-z]{2}' -t com,me,io --only-available
开发软件
Emacs
emacs永存,虽然我是邪恶的evil用户
1brew install --cask railwaycat/emacsmacport/emacs-mac
-
quelpa依赖1brew install gnu-tar -
toml格式化工具1brew install taplo
Docker
1brew install --cask docker
Ruby
~/.bashrc配置
1export GEM_HOME=$HOME/repo/ruby/gem
2export GEM_PATH=$HOME/repo/ruby/gem
3export GEM_SPEC_CACHE=$HOME/repo/ruby/gem/specs
4export PATH=$GEM_HOME/bin:$PATH
Python
1brew install pyenv pyenv-virtualenv
~/.bashrc配置
1if which pyenv > /dev/null;then
2 export PYENV_ROOT=$HOME/repo/python/pyenv
3 export PATH=$PYENV_ROOT/bin:$PATH
4 eval "$(pyenv init -)";
5fi
6
7if which pyenv-virtualenv-init > /dev/null; then
8 eval "$(pyenv virtualenv-init -)";
9fi
1export PYTHONUSERBASE=$HOME/repo/python
2export PYTHONHISTFILE=$HOME/repo/python/history
3export PATH=$HOME/repo/python/bin:$PATH
开发依赖:
1python3 -m pip install --user python-lsp-server
2python3 -m pip install --user python-lsp-ruff
Golang
1brew install go
~/.bashrc配置
1export GOPROXY=https://goproxy.cn,direct
2export GOPATH=$HOME/repo/golang
3export PATH=$HOME/repo/golang/bin:$PATH
开发依赖:
1go install golang.org/x/tools/gopls@latest
2go install honnef.co/go/tools/cmd/staticcheck@latest
3
4go install golang.org/x/mobile/cmd/gomobile@latest
5gomobile init
Protobuf
1brew install protobuf bufbuild/buf/buf
-
Go
1go install google.golang.org/protobuf/cmd/protoc-gen-go@latest 2go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest 3go install github.com/favadi/protoc-go-inject-tag@latest 4go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest 5go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest -
Dart
1dart --disable-analytics 2dart pub global activate protoc_plugin 21.1.2
Android
1brew install --cask android-studio
然后打开 android-studio, 并配置 HTTP手动代理,设置sdk目录为 $HOME/repo/android/sdk,设置完成后到达 Welcome to Android Studio 界面,点击 More Actions -> SDK Manager
-
SDK Platforms: 勾选
Android 12.0 -
SDK Tools: 勾选
NDK(Side by side)和Android SDK Command-line Tools (latest)
~/.bashrc配置
1export ANDROID_HOME=$HOME/repo/android/sdk
2export NDK_HOME="$ANDROID_HOME/ndk/26.2.11394342"
3export JAVA_HOME='/Applications/Android Studio.app/Contents/jbr/Contents/Home'
4export PATH=$ANDROID_HOME/platform-tools:$PATH
Flutter
下载 flutter_macos_arm64_3.29.3-stable.zip 并解压到 ~/repo
1unzip ~/Downloads/flutter_macos_arm64_3.29.3-stable.zip-d ~/repo/
安装 rosetta
1sudo softwareupdate --install-rosetta --agree-to-license
安装 cocoapods
1export GEM_HOME=$HOME/repo/ruby/gem
2export PATH=$GEM_HOME/bin:$PATH
3
4gem install cocoapods --user-install -V
因为系统内置的ruby版本是 2.6.10,这导致 cocoapods 的部分依赖无法安装,并出现类似下面的错误
1ERROR: Error installing cocoapods:
2 The last version of securerandom (>= 0.3) to support your Ruby & RubyGems was 0.3.2. Try installing it with `gem install securerandom -v 0.3.2` and then running the current command again
3 securerandom requires Ruby version >= 3.1.0. The current ruby version is 2.6.10.210.
本来还想按照提示处理,但处理完一个又来一个,处理完一个又来一个,太过麻烦。还有一种方法是安装新版本的ruby
1brew install ruby
然后使用新版本ruby的gem安装 cocoapods
1/opt/homebrew/Cellar/ruby/3.4.3/bin/gem install cocoapods -V
这时使用 flutter doctor 会出现下面错误
1[!] Xcode - develop for iOS and macOS (Xcode 16.3)
2 ✗ CocoaPods installed but not working.
3 You appear to have CocoaPods installed but it is not working.
4 This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
5 This can usually be fixed by re-installing CocoaPods.
6 For re-installation instructions, see https://guides.cocoapods.org/using/getting-started.html#installation
7[✓] Chrome - develop for the web
通过使用 pod --version 查看
1/opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1421:in 'block in Gem::Specification#activate_dependencies': Could not find 'nkf' (>= 0) among 100 total gem(s) (Gem::MissingSpecError)
2Checked in 'GEM_PATH=/Users/xxxx/repo/ruby/gem' at: /Users/xxxx/repo/ruby/gem/specifications/CFPropertyList-3.0.7.gemspec, execute `gem env` for more information
3 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Array#each'
4 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Gem::Specification#activate_dependencies'
5 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1389:in 'Gem::Specification#activate'
6 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1423:in 'block in Gem::Specification#activate_dependencies'
7 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Array#each'
8 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Gem::Specification#activate_dependencies'
9 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1389:in 'Gem::Specification#activate'
10 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1423:in 'block in Gem::Specification#activate_dependencies'
11 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Array#each'
12 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1407:in 'Gem::Specification#activate_dependencies'
13 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems/specification.rb:1389:in 'Gem::Specification#activate'
14 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems.rb:290:in 'block in Gem.activate_bin_path'
15 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems.rb:289:in 'Thread::Mutex#synchronize'
16 from /opt/homebrew/Cellar/ruby/3.4.3/lib/ruby/3.4.0/rubygems.rb:289:in 'Gem.activate_bin_path'
17 from /Users/xxxx/repo/ruby/gem/bin/pod:25:in '<main>'
尝试安装 nkf 终于解决了 cocoapods 的安装问题
1/opt/homebrew/Cellar/ruby/3.4.3/bin/gem install nkf -V
~/.bashrc 配置
1alias flutter='flutter --no-version-check'
2export PUB_HOSTED_URL=https://pub.flutter-io.cn
3export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
4export PATH=$HOME/repo/flutter/bin:$PATH
如果需要使用 fvm
-
安装
1dart pub global activate fvm -
卸载
1dart pub global deactivate fvm -
~/.bashrc配置1export FVM_CACHE_PATH=$HOME/repo/flutter/fvm -
查看可使用的版本
1fvm releases -
切换版本 在flutter项目下执行
1fvm use 3.39.3 2fvm use 3.38.10 -
设置全局版本
1fvm global 3.29.3然后修改
.bashrc1export PATH=$HOME/repo/flutter/fvm/default/bin:$PATH
Node
1brew install node
~/.bashrc配置
1export NODE_PATH=$HOME/repo/npm/lib/node_modules
2export PATH=$HOME/repo/npm/bin:$PATH
开发依赖:
1npm install -g yarn
2npm install -g pnpm
3npm install -g typescript-language-server typescript
4npm install -g @vue/language-server
5npm install -g @tailwindcss/language-server
6npm install -g emmet-ls
7npm install -g prettier
8npm install -g js-beautify
设置 pnpm 缓存路径,注意: pnpm 配置文件存储在 ~/Library/Preferences/pnpm/rc
1pnpm config set store-dir ~/repo/pnpm
其它:
1npm install -g @quasar/cli
Rust
1brew install rustup
2rustup-init
~/.bashrc配置
1export CARGO_HOME=$HOME/repo/rust/cargo
2export CARGO_TARGET_DIR=$HOME/repo/rust/cargo/build
3
4export RUSTUP_HOME=$HOME/repo/rust/rustup
5export RUSTUP_DIST_SERVER=https://rsproxy.cn
6export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup
7
8export PATH=$HOME/repo/rust/cargo/bin:$PATH
AI软件
-
opencode
1- brew install opencode 2+ brew install anomalyco/tap/opencode如果安装时报错
1It seems that your package manager failed to install the right version of the opencode CLI for your platform. You can try manually installing the "opencode-darwin-arm64" package则可以使用
npm install -g opencode-ai桌面版本
1brew install --cask opencode-desktop -
claude-code
1brew install claude-code --cask -
trae
1brew install trae --cask -
codex
1brew install codex --cask 2brew install codex-app --cask
知识共享署名-非商业性使用-相同方式共享4.0国际许可协议