ryan4yin 最近的时间轴更新
ryan4yin

ryan4yin

to be better
🏢  SRE
V2EX 第 349523 号会员,加入于 2018-09-14 11:41:55 +08:00
今日活跃度排名 24414
OS as Code - 我的 NixOS 使用体会
  •  3   
    Linux  •  ryan4yin  •  32 天前  •  最后回复来自 ryan4yin
    33
    NixOS 小书 1k stars 了,再 share 一波
    Linux  •  ryan4yin  •  71 天前  •  最后回复来自 huanghanzhilian
    2
    新仓库 512 stars 了,用了刚好三个月
  •  1   
    程序员  •  ryan4yin  •  187 天前  •  最后回复来自 huangliu
    4
    各位有参与过志愿者服务么?
  •  1   
    程序员  •  ryan4yin  •  189 天前  •  最后回复来自 kyro00000
    41
    两岸猿声啼不住,轻舟已过万重山——我的四分之一人生
  •  5   
    程序员  •  ryan4yin  •  220 天前  •  最后回复来自 est
    57
    为什么我折腾这些小众技术?
  •  3   
    程序员  •  ryan4yin  •  240 天前  •  最后回复来自 kristpan
    39
    NixOS 与 Flakes | 一份非官方的新手指南
  •  5   
    Linux  •  ryan4yin  •  248 天前  •  最后回复来自 ZedRover
    18
    NixOS 与 Nix Flakes 新手入门
  •  2   
    Linux  •  ryan4yin  •  182 天前  •  最后回复来自 tywtyw2002
    47
    ryan4yin 最近回复了
    32 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @tywtyw2002 所以才需要 nix-darwin 这种工具
    33 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @tywtyw2002 目前 NixOS 都没有这种工具,更别说 nix-darwin 了。
    你需要自己研究清楚系统里到底装了啥,再手动编写对应的 nix 配置。
    如果你用的是 homebrew 的话,它能导出 brewfile 供参考。
    34 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    测了没问题的话,可以提个 PR 给他们优化一下,它这示例里还有多余的反斜线啊。
    34 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @licolicoli V2EX 的代码渲染有点糟糕,你 copy 过去自己格式化一下吧...
    34 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @licolicoli 你提供的文档我看了,它使用的确实是 overlays ,但这不是最佳方案。

    能避免大量编译的写法是这样的,把它文档中的第二部分 overlays 删掉,再把第三部分的代码改成这样:

    ```nix
    # configuration.nix
    {
    # ...

    environment = {
    systemPackages = [
    pkgs.alsa-ucm-conf.overrideAttrs (old: {
    wttsrc = (fetchFromGitHub {
    owner = "WeirdTreeThing";
    repo = "chromebook-ucm-conf";
    rev = "484f5c581ac45c4ee6cfaf62bdecedfa44353424";
    hash = "sha256-Jal+VfxrPSAPg9ZR+e3QCy4jgSWT4sSShxICKTGJvAI=";
    });
    installPhase = ''
    runHook preInstall

    mkdir -p $out/share/alsa
    cp -r ucm ucm2 $out/share/alsa

    mkdir -p $out/share/alsa/ucm2/conf.d
    cp -r $wttsrc/{hdmi,dmic}-common $wttsrc/GENERATION/* $out/share/alsa/ucm2/conf.d

    runHook postInstall
    '';
    })
    ];
    sessionVariables = {
    ALSA_CONFIG_UCM2 = "${pkgs.alsa-ucm-conf}/share/alsa/ucm2";
    };
    };
    }
    ```
    34 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @licolicoli 听起来你肯定用错方式了,你需要的只是加个配置文件,不是重新编译,因此非常大的概率你可以通过方法一或者方法二搞定这件事。
    35 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @xiaokanhongchen 是这样的,我入坑时在一台虚拟机上花了 20 天,把我之前的 EndeavourOS + i3wm 配置完全迁移到了 NixOS 上,然后在 PC 上装了个全新的 NixOS ,改一点硬件相关的配置,再一行命令部署,就得到了跟我虚拟机完全一致的环境。
    这份教程最初就来自我那 20 天的入坑学习笔记。
    35 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @xiaokanhongchen 我这帖子最前面就给了我写的的入门教程啊,如果你想试试 NixOS 的话不妨一看。
    不过只面向 nix 用户的教程,目前就只有官方的 nix.dev 了,我这份可以用做参考。
    35 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    > 这样你就只能自己叠加 overlay, 然而叠完 overlay 的包 hash 会变

    @licolicoli 目测你用法错了,或者说你是很久以前试用过 NixOS.
    现在的用法是这样的:

    1. 如果只是想改某个包,你首先应该考虑直接在需要的时候 override 而不是直接 overlay ,这类似生成一个局部变量,系统中其他包依赖的还是没改过的版本
    2. 如果你要改一堆东西,那首先应该考虑在你需要的地方 new 一个新的 nixpkgs 实例,这同样类似局部变量,不过比方法一改的范围要更广一些
    3. 只有在你确认你需要整个修改系统中的这个包的时候,才应该使用全局的 overlay ,但这就会导致你说的,导致大量的本地编译。
    36 天前
    回复了 ryan4yin 创建的主题 Linux OS as Code - 我的 NixOS 使用体会
    @ltkun 文档一直是 Nix 最大的痛点,官方英文文档都一团糟,更别说中文了。所以我直接自己写了一份...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2663 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:17 · PVG 23:17 · LAX 08:17 · JFK 11:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.