Nixos
如何使 nix 商店中的源存檔無效
我最終在我的 nix 商店中找到了錯誤的軟體包來源。這發生在前一段時間,所以我無法追踪日誌文件來弄清楚它是如何發生的。我為重建相同版本的包所做的任何嘗試都會導致使用相同的錯誤源。有沒有辦法使源存檔無效或強制重新獲取?
我可以掛載商店
rw
並刪除存檔,但似乎應該有一個不會破壞 nixosro
設計的解決方案。
nix-store --delete /nix/store/path
如果您沒有通過某些引用保持路徑活著,您總是可以的,但您應該注意一些細節。我假設您的來源是通過fetchurl
或類似的固定輸出推導獲得的。這些指定了輸出的雜湊值,並且您在 nix 儲存中的路徑與該雜湊值匹配,因此它實際上是正確的來源(考慮到您對 nix 的要求)。典型的簡單路徑是將散列覆蓋
fetchurl
為一些不正確的值,例如用零替換一些字元,然後 nix 將嘗試重新獲取並列印結果(不匹配)散列,然後您可以更新它。還要nix-prefetch-url
避免兩次提取,等等。