Nixos

如何使 nix 商店中的源存檔無效

  • May 1, 2017

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

我可以掛載商店rw並刪除存檔,但似乎應該有一個不會破壞 nixosro設計的解決方案。

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

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

引用自:https://unix.stackexchange.com/questions/362296