V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ryan4yin
V2EX  ›  macOS

macOS as Code! 一份易于理解的 nix-darwin 初始配置模板,专为新手制作

  •  2
     
  •   ryan4yin · 2023-07-20 14:13:11 +08:00 · 2035 次点击
    这是一个创建于 491 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享一个我昨天整的 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

    7 条回复    2023-07-25 09:23:59 +08:00
    darksword21
        1
    darksword21  
       2023-07-20 14:18:50 +08:00   ❤️ 2
    我也分享下我自己的配置 https://github.com/404cn/dotfiles

    包含 nix ,nixos 和 mac 的配置
    ZedRover
        2
    ZedRover  
       2023-07-21 09:33:20 +08:00
    感谢 Thanks♪(・ω・)ノ
    ZedRover
        3
    ZedRover  
       2023-07-24 17:33:59 +08:00
    想问一下使用 home-manager 管理 brew 的包感觉会存在一个问题就是之前卸载 formulae 的时候我会使用 brew rmtree 来卸载尽量把依赖项卸载掉,现在使用 home-manager 管理的时候只能通过修改 nix 文件来删除包,那么添加新的包或者删除包的时候那些依赖项是如何处理的呢?
    ZedRover
        4
    ZedRover  
       2023-07-24 17:45:11 +08:00
    @ZedRover #3 自己试了一下发现 zap 模式下把依赖项注释掉后 rebuild 不会删除依赖项,但这不是也没法解决 remove 包时候的依赖问题嘛反而会留下更多的依赖包
    ryan4yin
        5
    ryan4yin  
    OP
       2023-07-24 19:34:38 +08:00
    @ZedRover 可以举个例子么?我之前测试记得是所有依赖也被清理掉了的。
    zap 的逻辑应该是删除所有不在 Brewfile 里的包,而这个生成的 Brewfile 应该只包含声明的软件以及必要的依赖项。
    ZedRover
        6
    ZedRover  
       2023-07-25 09:16:08 +08:00
    @ryan4yin 因为我是直接把原来 brew 里的包全都直接 list 到了 brews=[]里面,然后在我直接 brews 中删除某个包之后运行 brew autoremove ,homebrew 会自动卸载三四个包,但是这三四个包还会出现在 brews 里面;之后我直接在 brews 手动删除掉了这几个包再 rebuild 的
    ryan4yin
        7
    ryan4yin  
    OP
       2023-07-25 09:23:59 +08:00 via Android
    @ZedRover 那是你用法有问题,你 brews 声明了要这个依赖,它自然不会被清理掉。

    我的做法是只往 brews 里加我需要的包,依赖应该由 homebrew 自动处理,不要写进来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:22 · PVG 02:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.