
背景
之前使用的是20款的13寸Mac book Pro,CPU是Intel的i5,四核,16G,日常工作使用勉强够用。
但是遇到需要编译大型项目或者多开工程的时候,就有点吃不消了,风扇呼呼转,而且内存比较小,本人重度依赖docker,当需要虚拟化时也会比较吃力。
今年苹果更新了M2系统,对应的M1就开始降价,已有笔记本也使用了3年,趁着老笔记本还有价值的时候,入手了14寸Mac book Pro。
CPU选的M1 Pro 10核,32G内存,现在基本迁移完毕,只能说真香,不仅性能够用,而且一些在iPhone和iPad上跑的app现在也可以在笔记本上跑了。
迁移过程中遇到的问题
Mac新系统必装套餐:Brew,oh-my-zsh,iTerm,有了这三件套,就可以装剩下的需要的东西了。
虽然通过brew可以安装大部分软件,但是也遇到了一些问题,
- M1架构的JDK8
- JDK各版本切换
- ssh密钥
- 各种密码
JDK8
虽然JDK长期维护版已经到17了,但是大家都还在使用JDK8,“你发任你发,我用Java8”。
M1系列的就遇到了比较尴尬的问题,由于M1架构比较新,OpenJdk已经没有对应的M1版本可用,好在azul提供了支持,下载地址为:m1-jdk-8-zulu
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (Zulu 8.68.0.21-CA-macos-aarch64) (build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (Zulu 8.68.0.21-CA-macos-aarch64) (build 25.362-b09, mixed mode)
JDK各版本切换
解决了M1的JDK8的问题,其余11和17直接使用brew即可安装,但是版本切换很不方便,这个时候可以使用jenv来解决。
jenv 0.5.6
Usage: jenv <command> [<args>]
Some useful jenv commands are:
commands List all available jenv commands
local Set or show the local application-specific Java version
global Set or show the global Java version
shell Set or show the shell-specific Java version
rehash Rehash jenv shims (run this after installing executables)
version Show the current Java version and its origin
versions List all Java versions available to jenv
which Display the full path to an executable
whence List all Java versions that contain the given executable
add Add JDK into jenv. A alias name will be generated by parsing "java -version"
See `jenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/jenv/jenv/blob/master/README.md
但是在执行mvn命令的时候,会遇到额外启动的java进程没有使用指定jdk8版本的问题,搜索了一下,原来还需要jenv enable-plugin maven来启动插件。
ssh密钥
一个比较容易遗忘的就是.ssh目录下的RSA密钥,现在访问git仓库或者ssh登录基本上已经很少人使用账号和密码登录了,取而代之的是使用非对称密钥,因此推荐一定要保密备份自己的ssh密钥。
各种密码
以前各种密码是存在1password里的,除了每年收费几百块之外没啥缺点,但是本着密码这种尽量还是自己存着比较放心,主要还是想省钱😄,于是就折腾了开源版本,推荐2个方案,各有优缺点。
- padloc 支持各种终端设备和浏览器插件,有sass实现,可自己部署,没有版本回溯,一旦误删或误改,则丢失。
- gopass 只能命令行操作,但易用性很棒,基于GPG加密,使用git管理,支持远程仓库(记得一定要私有哦),可追溯和定期备份。
目前以gopass为主,配合浏览器的密码保存功能,使用比较丝滑,唯一缺点可能是对手机支持不够,着急临时需要密码时比较抓瞎,定期备份到padloc可以解决。
编程开发友好字体
使用iTerm2整体体验还是不错的,但是自带字体实在难看,主要是不等宽,看时间久了很难受,好在jetbrains开源了自己idea的字体JetBrains Mono。
具体安装其实在brew里就可以搜到,本地安装完成后,即可在系统各个app里使用。之所以选择JetBrains Mono是因为它对中文等宽支持的也很好,这样一套字体就能满足中英文需求。
部分软件推荐
- AppCleaner App删除工具
- Amphetamine 阻止Mac休眠的工具
- Microsoft To Do
- Itsycal 日历小插件
- better365家的所有软件
- RapidAPI http调用调试工具
Mac内置迁移和时间机器
之所以这么折腾,是因为Mac自带的迁移助手不能从Intel架构完全迁移到M1,或者之前时间机器备份的也不能恢复,相信后续如果再有迁移的话,就不需要这么折腾了。