[{"data":1,"prerenderedAt":459},["ShallowReactive",2],{"navigation_docs_zh_CN":3,"\u002Fzh-CN\u002Freference\u002Freader":85,"\u002Fzh-CN\u002Freference\u002Freader-surround":454},[4,19,41,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"快速开始","i-lucide-book-open","\u002Fzh-CN\u002Fgetting-started","zh-CN\u002F1.getting-started",[10,14],{"title":11,"path":12,"stem":13},"安装","\u002Fzh-CN\u002Fgetting-started\u002Finstallation","zh-CN\u002F1.getting-started\u002F1.installation",{"title":15,"path":16,"stem":17},"第一个 Pin","\u002Fzh-CN\u002Fgetting-started\u002Ffirst-pin","zh-CN\u002F1.getting-started\u002F2.first-pin",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"使用指南","i-lucide-route","\u002Fzh-CN\u002Fguides","zh-CN\u002F2.guides",[25,29,33,37],{"title":26,"path":27,"stem":28},"更新与选择","\u002Fzh-CN\u002Fguides\u002Fupdating","zh-CN\u002F2.guides\u002F1.updating",{"title":30,"path":31,"stem":32},"组合 Checker 与 Fetcher","\u002Fzh-CN\u002Fguides\u002Fcombinations","zh-CN\u002F2.guides\u002F2.combinations",{"title":34,"path":35,"stem":36},"多 Source 与补丁","\u002Fzh-CN\u002Fguides\u002Fmulti-source","zh-CN\u002F2.guides\u002F3.multi-source",{"title":38,"path":39,"stem":40},"Package 与依赖哈希","\u002Fzh-CN\u002Fguides\u002Fdependencies","zh-CN\u002F2.guides\u002F4.dependencies",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":18},"参考文档","i-lucide-code","\u002Fzh-CN\u002Freference","zh-CN\u002F3.reference",[47,51,55,59,63,67,71],{"title":48,"path":49,"stem":50},"CLI","\u002Fzh-CN\u002Freference\u002Fcli","zh-CN\u002F3.reference\u002F1.cli",{"title":52,"path":53,"stem":54},"运行配置","\u002Fzh-CN\u002Freference\u002Fconfiguration","zh-CN\u002F3.reference\u002F2.configuration",{"title":56,"path":57,"stem":58},"Pin 声明","\u002Fzh-CN\u002Freference\u002Fpins","zh-CN\u002F3.reference\u002F3.pins",{"title":60,"path":61,"stem":62},"Checker","\u002Fzh-CN\u002Freference\u002Fcheckers","zh-CN\u002F3.reference\u002F4.checkers",{"title":64,"path":65,"stem":66},"Fetcher","\u002Fzh-CN\u002Freference\u002Ffetchers","zh-CN\u002F3.reference\u002F5.fetchers",{"title":68,"path":69,"stem":70},"Package Builder","\u002Fzh-CN\u002Freference\u002Fbuilders","zh-CN\u002F3.reference\u002F6.builders",{"title":72,"path":73,"stem":74},"Reader 与 Pins File","\u002Fzh-CN\u002Freference\u002Freader","zh-CN\u002F3.reference\u002F7.reader",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":18},"排错指南","i-lucide-wrench","\u002Fzh-CN\u002Ftroubleshooting","zh-CN\u002F4.troubleshooting",[81],{"title":82,"path":83,"stem":84},"常见错误","\u002Fzh-CN\u002Ftroubleshooting\u002Fcommon-errors","zh-CN\u002F4.troubleshooting\u002F1.common-errors",{"id":86,"title":72,"body":87,"description":447,"extension":448,"links":449,"meta":450,"navigation":451,"path":73,"seo":452,"stem":74,"__hash__":453},"docs_zh_CN\u002Fzh-CN\u002F3.reference\u002F7.reader.md",{"type":88,"value":89,"toc":441},"minimark",[90,99,103,169,303,310,313,393,404,407,416,423,426,437],[91,92,93,94,98],"p",{},"Reader 是源码仓库中的 ",[95,96,97],"code",{},"nix\u002Fpins.nix","。它读取 schema v2 的 Pins File，将锁定的 Fetcher 参数和真实哈希转换为 Nix 输入。",[100,101,102],"h2",{"id":102},"参数",[104,105,106,121],"table",{},[107,108,109],"thead",{},[110,111,112,115,118],"tr",{},[113,114,102],"th",{},[113,116,117],{},"默认值",[113,119,120],{},"含义",[122,123,124,138,154],"tbody",{},[110,125,126,132,135],{},[127,128,129],"td",{},[95,130,131],{},"pkgs",[127,133,134],{},"必需",[127,136,137],{},"与配置兼容的 Nixpkgs 包集",[110,139,140,145,151],{},[127,141,142],{},[95,143,144],{},"file",[127,146,147,148],{},"Reader 上级目录的 ",[95,149,150],{},"pins.json",[127,152,153],{},"要读取的 Pins File；通常显式传入",[110,155,156,161,166],{},[127,157,158],{},[95,159,160],{},"config",[127,162,163],{},[95,164,165],{},"null",[127,167,168],{},"可选的 Pin 配置；用于恢复补丁源码和 Package",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-nix shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","let\n  pkgs = import \u003Cnixpkgs> {};\n  pins = import ..\u002Fnix\u002Fpins.nix {\n    inherit pkgs;\n    file = .\u002Fpins.json;\n    config = .\u002Fpins-config.nix;\n  };\nin\npins.patchelf.sources.default.src\n","nix","",[95,177,178,187,209,225,237,250,263,269,275],{"__ignoreMap":175},[179,180,183],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"sbssI","let\n",[179,188,190,194,198,202,206],{"class":181,"line":189},2,[179,191,193],{"class":192},"spNyl","  pkgs",[179,195,197],{"class":196},"sMK4o"," =",[179,199,201],{"class":200},"s2Zo4"," import",[179,203,205],{"class":204},"sfazB"," \u003Cnixpkgs>",[179,207,208],{"class":196}," {};\n",[179,210,212,215,217,219,222],{"class":181,"line":211},3,[179,213,214],{"class":192},"  pins",[179,216,197],{"class":196},[179,218,201],{"class":200},[179,220,221],{"class":204}," ..\u002Fnix\u002Fpins.nix",[179,223,224],{"class":196}," {\n",[179,226,228,231,234],{"class":181,"line":227},4,[179,229,230],{"class":185},"    inherit",[179,232,233],{"class":192}," pkgs",[179,235,236],{"class":196},";\n",[179,238,240,243,245,248],{"class":181,"line":239},5,[179,241,242],{"class":192},"    file",[179,244,197],{"class":196},[179,246,247],{"class":204}," .\u002Fpins.json",[179,249,236],{"class":196},[179,251,253,256,258,261],{"class":181,"line":252},6,[179,254,255],{"class":192},"    config",[179,257,197],{"class":196},[179,259,260],{"class":204}," .\u002Fpins-config.nix",[179,262,236],{"class":196},[179,264,266],{"class":181,"line":265},7,[179,267,268],{"class":196},"  };\n",[179,270,272],{"class":181,"line":271},8,[179,273,274],{"class":185},"in\n",[179,276,278,282,285,288,290,293,295,298,300],{"class":181,"line":277},9,[179,279,281],{"class":280},"sHdIc","pins",[179,283,284],{"class":196},".",[179,286,287],{"class":280},"patchelf",[179,289,284],{"class":196},[179,291,292],{"class":280},"sources",[179,294,284],{"class":196},[179,296,297],{"class":280},"default",[179,299,284],{"class":196},[179,301,302],{"class":280},"src\n",[91,304,305,306,309],{},"相对路径依照这个 Nix 文件的位置解析。",[95,307,308],{},"..\u002Fnix\u002Fpins.nix"," 是快速开始目录对应的 Reader 路径，其他项目应替换为自己固定的工具源码路径。",[100,311,312],{"id":312},"返回结构",[104,314,315,325],{},[107,316,317],{},[110,318,319,322],{},[113,320,321],{},"路径",[113,323,324],{},"内容",[122,326,327,337,347,357,367,380],{},[110,328,329,334],{},[127,330,331],{},[95,332,333],{},"pins.\u003Cpin>.version",[127,335,336],{},"原始锁定 Version",[110,338,339,344],{},[127,340,341],{},[95,342,343],{},"pins.\u003Cpin>.sources.\u003Csource>.src",[127,345,346],{},"Nix 源码 derivation；有配置时可包含补丁",[110,348,349,354],{},[127,350,351],{},[95,352,353],{},"pins.\u003Cpin>.sources.\u003Csource>.hash",[127,355,356],{},"原始 Fetcher 内容的真实哈希",[110,358,359,364],{},[127,360,361],{},[95,362,363],{},"pins.\u003Cpin>.sources.\u003Csource>.fetcher",[127,365,366],{},"持久化的 Fetcher 参数",[110,368,369,374],{},[127,370,371],{},[95,372,373],{},"pins.\u003Cpin>.sources.\u003Csource>.derived",[127,375,376,377],{},"派生哈希属性集，默认 ",[95,378,379],{},"{}",[110,381,382,387],{},[127,383,384],{},[95,385,386],{},"pins.\u003Cpin>.sources.\u003Csource>.packages.\u003Cpackage>",[127,388,389,390,392],{},"配置恢复的 Package；仅传入 ",[95,391,160],{}," 时提供",[91,394,395,396,399,400,403],{},"即使只有一个 Source，访问路径仍包含 ",[95,397,398],{},"sources.default","。不要使用旧式扁平 ",[95,401,402],{},"pins.\u003Cpin>.src"," 路径。",[100,405,406],{"id":406},"是否传入配置",[91,408,409,410,412,413,415],{},"只传 ",[95,411,144],{}," 时，Reader 恢复原始锁定源码，不提供 Package，也不应用声明中的补丁。传入 ",[95,414,160],{}," 时，用已锁定的版本与哈希重新求值配置，补充 Source 的补丁源码和 Package。",[91,417,418,419,422],{},"Reader 不重新检查上游版本。只有执行 ",[95,420,421],{},"update"," 才会更新锁定结果。请一并固定配置、Pins File、Reader 版本和必要的 Nixpkgs 输入。",[100,424,425],{"id":425},"文件兼容性",[91,427,428,429,432,433,436],{},"当前 Reader 仅接受 ",[95,430,431],{},"schemaVersion = 2","。版本不兼容时会报错，不能通过手动改 schema 数字完成迁移。失败记录与更新时的处理语义见",[434,435,26],"a",{"href":27},"。",[438,439,440],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":175,"searchDepth":189,"depth":189,"links":442},[443,444,445,446],{"id":102,"depth":189,"text":102},{"id":312,"depth":189,"text":312},{"id":406,"depth":189,"text":406},{"id":425,"depth":189,"text":425},"从 JSON 锁定结果恢复源码、补丁和具名 Package。","md",null,{},true,{"title":72,"description":447},"NObM-2ovvbZdbXsrEJSUeCWUTXEIJNefuZYsHfr7yA4",[455,457],{"title":68,"path":69,"stem":70,"description":456,"children":-1},"Go Modules、npm、pnpm 的依赖哈希与下游消费方法。",{"title":82,"path":83,"stem":84,"description":458,"children":-1},"按配置、版本检查、来源获取、依赖哈希和 Reader 定位问题。",1790868075216]