@jhhuhJi-Haeng Huh https://github.com/nyeong/.dotfiles/blob/684e1f1f41a8d61c9fc680f2429b5142cdeadfda/packages/emacs/default.nix#L18-L21
감사합니다! emacs-overlay를 fetchTarball로 가져오고 있습니다 👀
@jhhuhJi-Haeng Huh https://github.com/nyeong/.dotfiles/blob/684e1f1f41a8d61c9fc680f2429b5142cdeadfda/packages/emacs/default.nix#L18-L21
감사합니다! emacs-overlay를 fetchTarball로 가져오고 있습니다 👀
@nyeongAn Nyeong (安寧) 혹시
fetchTarball
을 쓰지 않고 emacs-overlay
를 flake inputs에 추가하는 건 해보셨나요? 아니면 fetchFromGithub
로 받아와도 괜찮습니다. 아무리 sha256
을 지정해도 fetchTarball
은 이걸 다운받은 tarball을 검증하는 용도로 사용하는거지 fixed-output derivation 처럼 outpath를 찾는데 사용하지는 않을 거예요. cache TTL이 지나거나 nix daemon을 껐다 켜면 다시 다운받을 거예요.
이게 왜 재빌드를 유발하는지는 저도 지금 명확히 설명이 어렵지만 fetchTarball
의 결과값이 derivation나 path가 아닌 스트링이라서 생기는 미묘한 차이점이 있기는 합니다. 일례로 remote 빌딩을 하기 위해 prerequisite들을 빌드 서버에 넘기는데 fetchTarball
로 받아온 애들은 prerequisite closure에 포함이 안됐던 걸로 기억해요. 목적하는 derivation이 remote에서 직접 nix 표현을 eval 해서 얻어진 경우는 (eval 시 fetch를 해서 store에 담기 때문에) 문제가 없지만 그렇지 않은 경우는 존재하지 않는 store path에 대한 에러가 날 수 있거든요.
하여튼 다른 건 딱히 눈에 띄는게 없어 보여서 fetchTarball
만 의심하게 되네요.
If you have a fediverse account, you can reply to this note from your own instance. Search https://hackers.pub/ap/notes/01981aed-54f8-71a8-9512-e49fb39a7833 on your instance and reply to it.
@jhhuhJi-Haeng Huh 아하 저도 명확히 내부를 이해하고 있지는 않은데,
fetchTarball
의 결과가 derivation이 아니라면 제가 의도한 상황과 미묘하게 달르네요 🤔 fetchFromGitHub
한 번 써보겠습니다 감사합니다 🙇