如何使 nix 儲存中的來源存檔失效

如何使 nix 儲存中的來源存檔失效

我最終在我的 nix 商店中找到了錯誤的軟體包來源。這發生在一段時間前,所以我無法追蹤日誌檔案來弄清楚它是如何發生的。我嘗試重建相同版本的軟體包都會導致使用相同的錯誤來源。有沒有辦法使來源存檔無效或強制重新取得?

我可以安裝商店rw並刪除存檔,但似乎應該有一個不會顛覆 nixosro設計的解決方案。

答案1

nix-store --delete /nix/store/path如果您不透過某些參考保持路徑處於活動狀態,您總是可以這樣做,但您應該注意一些細節。我假設您的來源是透過fetchurl或類似的固定輸出推導獲得的。這些指定輸出的雜湊值,並且您在 nix 儲存中的路徑與該雜湊值匹配,因此它實際上是正確的來源(考慮您對 nix 的要求)。

典型的簡單路徑是將散列覆蓋fetchurl為一些不正確的值,例如用零替換某些字符,然後 nix 將嘗試重新獲取並打印結果(不匹配)散列,然後您可以更新該散列。還要nix-prefetch-url避免兩次提取等。

相關內容