Ich erstelle mein eigenes Repository, um einige Quellquellen zu holen.Wie "nix-build" wieder einen gebauten Store-Pfad?
# packages.nix
with (import <nixpkgs> {});
rec {
rustcSource = fetchgit {
url = https://github.com/rust-lang/rust;
rev = "3191fbae9da539442351f883bdabcad0d72efcb6";
sha256 = "0w1l14kz9kxyj5dw3w9xxk1fzww5xqs3sf8saay0mh7nkmvrdb59";
};
}
Dann baue ich rustcSource
,
sudo nix-env -f package.nix -A rustcSource
Es zeigt einen Speicherpfad von /nix/store/096fpy9qjbz5r14aadjnq9d2md9ql9cg-rust-3191fba
. Das Problem ist, dass ich es Submodule zum Download vergessen haben, so dass ich meinen Ausdruck Submodule enthalten ändern,
with (import <nixpkgs> {});
rec {
rustcSource = fetchgit {
url = https://github.com/rust-lang/rust;
rev = "3191fbae9da539442351f883bdabcad0d72efcb6";
sha256 = "0w1l14kz9kxyj5dw3w9xxk1fzww5xqs3sf8saay0mh7nkmvrdb59";
leaveDotGit = true;
fetchSubmodules = true;
};
}
Aber ich entdeckte, dass nix-build
nicht den Hash neu zu berechnen und sehen, dass der Weg gebaut wurde. Die Submodule werden also nicht heruntergeladen.
Q: Ist es Nix-Fehler? Wie kann ich das Repository "neu aufbauen" oder neu laden?
P.S. Eigentlich erstelle ich eine Ableitung mit fetchgit, aber es schlägt fehl, weil die Submodule nicht heruntergeladen werden. Also, der obige Fall vereinfacht mein Problem.
Danke für die Antwort! Irgendeine Ausarbeitung, wie man das Problem beheben kann? (so kann ich mit 'fetchSubmodules' wieder auf true setzen) – Abdillah
Ändern Sie den Hash in etwas zufälliges und nix meldet Ihnen den korrekten Hash. – iElectric