分享一个我昨天整的 macOS 系统配置管理方案,基于 Nix 包管理器 + nix-darwin + homebrew.
https://github.com/ryan4yin/nix-darwin-kickstarter
它有啥好处? 比如启用指纹验证 sudo 指令,只需要加一行配置。 还有各种 dock finder trakpad keyboard 的配置,也完全代码化了,可一键部署。 homebrew 的安装包、App Store 的应用程序列表,也全都可以写进来,用 nix 管理。
这套我自己已经用了大半个月了,觉得不错所以搞了个模板仓库分享下. 因为貌似国外的受众更多些,目前只写了点英文的文档。
我也在推特上发了一些示例截图:
https://twitter.com/ryan4yin/status/1681639068957028352/photo/1
1
darksword21 2023-07-20 14:18:50 +08:00 2
|
2
ZedRover 2023-07-21 09:33:20 +08:00
感谢 Thanks♪(・ω・)ノ
|
3
ZedRover 2023-07-24 17:33:59 +08:00
想问一下使用 home-manager 管理 brew 的包感觉会存在一个问题就是之前卸载 formulae 的时候我会使用 brew rmtree 来卸载尽量把依赖项卸载掉,现在使用 home-manager 管理的时候只能通过修改 nix 文件来删除包,那么添加新的包或者删除包的时候那些依赖项是如何处理的呢?
|
4
ZedRover 2023-07-24 17:45:11 +08:00
@ZedRover #3 自己试了一下发现 zap 模式下把依赖项注释掉后 rebuild 不会删除依赖项,但这不是也没法解决 remove 包时候的依赖问题嘛反而会留下更多的依赖包
|
5
ryan4yin OP @ZedRover 可以举个例子么?我之前测试记得是所有依赖也被清理掉了的。
zap 的逻辑应该是删除所有不在 Brewfile 里的包,而这个生成的 Brewfile 应该只包含声明的软件以及必要的依赖项。 |