You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看两个Nix home-manager世代间的软件包差异?

查看Nix Home-Manager两个世代的软件包差异

下面是几种查看指定世代(示例中的ID 4和ID 5)软件包差异的实用方法:

方法一:nix-env+diff对比包列表

直接提取两个世代的已安装包列表,再用diff工具做对比:

  1. 单独查看每个世代的包清单:
    # 查看世代4的已安装包
    nix-env -q --profile /nix/store/rsymanhv1an0l8f5m63zxif0wma7fgbl-home-manager-generation
    # 查看世代5的已安装包
    nix-env -q --profile /nix/store/wc91v5ks0w8p7x9w0jqs31b2slw80bsb-home-manager-generation
    
  2. 直接通过管道对比,带颜色高亮差异:
    diff --color <(nix-env -q --profile /nix/store/rsymanhv1an0l8f5m63zxif0wma7fgbl-home-manager-generation) <(nix-env -q --profile /nix/store/wc91v5ks0w8p7x9w0jqs31b2slw80bsb-home-manager-generation)
    

方法二:用home-manager diff直接对比

如果你的Home-Manager版本支持,这个命令最便捷,还能同步查看配置文件的变更:

  • 通过世代ID对比:
    home-manager diff 4 5
    
  • 通过世代的存储路径对比:
    home-manager diff /nix/store/rsymanhv1an0l8f5m63zxif0wma7fgbl-home-manager-generation /nix/store/wc91v5ks0w8p7x9w0jqs31b2slw80bsb-home-manager-generation
    

方法三:解析manifest.json对比

每个世代目录下的manifest.json包含详细的包信息,用jq提取包名后对比:

diff <(jq -r '.packages[] | .name' /nix/store/rsymanhv1an0l8f5m63zxif0wma7fgbl-home-manager-generation/manifest.json) <(jq -r '.packages[] | .name' /nix/store/wc91v5ks0w8p7x9w0jqs31b2slw80bsb-home-manager-generation/manifest.json)

内容的提问来源于stack exchange,提问作者Derek Mahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:06