2015-07-27 11 views
14

Tôi muốn thêm một gói từ github, giống như trong ví dụ dưới đây, nhưng tôi không biết nơi tôi có thể nhận được băm sha256 cần thiết (như được hiển thị bên dưới) cho bất kỳ nguồn github nào.Ý nghĩa của sha256 trong nixpkgs.fetchgit là gì? Giá trị đến từ đâu?

Ai đó có thể giải thích xin vui lòng sha256 đến từ đâu và làm thế nào tôi có thể nhận được giá trị sha256 cho một codebase github nhất định?

 ghcjs-jquery = self.callPackage ({ mkDerivation, data-default, ghcjs-base, ghcjs-dom, text }: 
      mkDerivation { 
      pname = "ghcjs-jquery"; 
      version = "0.1.0.0"; 
      src = nixpkgs.fetchgit { 
       url = git://github.com/ghcjs/ghcjs-jquery; 
       rev = "c5eeeafcf81c0d3237b8b9fcb98c4b3633a1297f"; 
       sha256 = "3b2de54224963ee17857a9737b65d49edc423e06ad7e9c9b85d9f69ca923676a"; 
      }; 
      buildDepends = [ 
       data-default ghcjs-base ghcjs-dom text 
      ]; 
      jailbreak = true; 
      license = null; 
      } 
     ) {}; 

https://github.com/ryantrinkle/try-reflex/blob/ghcjs-improved-base/default.nix#L49

ps, ​​đây là những gì tôi có trên IRC là câu trả lời:

joco42> what does this sha256 attribute mean in this nix expression ? https://github.com/ryantrinkle/try-reflex/blob/ghcjs-improved-base/default.nix#L49 
8:24 PM <joco42> where does it come from ? 
8:24 PM <pikajude> that's the sha256 hash of that git checkout 
8:25 PM → obadz and ldng joined ⇐ obadz- quit 
8:29 PM <joco42> pikajude: ok, cool how can i get that ? 
8:30 PM <pikajude> nix-prefetch-git in the nix-prefetch-scripts package 
8:30 PM <joco42> many thanks pikajude 
+0

Lời khuyên chung là để thiết lập băm cho giá trị băm không chính xác và để nix cho bạn biết rằng nó sai và nó nên là gì. :-) Nó cần phải được định dạng đúng mặc dù, vì vậy tôi thường đặt một chuỗi 52 số không. – clacke

Trả lời

22

Như tôi đã khuyên trên IRC:

>nix-prefetch-git https://github.com/ghcjs/ghcjs-dom 
Initialized empty Git repository in /tmp/user/1000/git-checkout-tmp-uxoKqy9s/git-export/.git/ 
remote: Counting objects: 1070, done. 
remote: Compressing objects: 100% (236/236), done. 
remote: Total 1070 (delta 858), reused 932 (delta 829), pack-reused 0 
Receiving objects: 100% (1070/1070), 580.67 KiB | 911.00 KiB/s, done. 
Resolving deltas: 100% (858/858), done. 
From https://github.com/ghcjs/ghcjs-dom 
* branch   HEAD  -> FETCH_HEAD 
Switched to a new branch 'fetchgit' 
git revision is 8b9c64e78e838de95ef1b61f15c0bd7068d45d84 
git human-readable version is -- none -- 
Commit date is 2015-06-08 03:53:22 +1200 
removing `.git'... 
hash is d05d04cad4aea829dddcf341ed4656d9828713d271f15c94414a74041188bac8 
path is /nix/store/kcgbwampbp7qcyxqp4ag8rx2prxnsc19-git-export 
d05d04cad4aea829dddcf341ed4656d9828713d271f15c94414a74041188bac8 
+2

Và bạn cần phải cài đặt 'nix-prefetch-scripts' để nhận tất cả các tập lệnh tìm nạp. – asymmetric

Các vấn đề liên quan