Как найти ревизию nixpkgs, в которой построен двоичный кеш macos/darwin?
Я хотел бы прикрепить nixpkgs к совершенно новой версии, скажем, Haskell LTS-12.9 или что-то в этом роде. И я хочу использовать nix-build для сборок MacOS (Darwin).
Проблема в том, что для большинства пакетов Haskell нет двоичного кеша, а сборка занимает много времени (на MacOS).
Как мне найти "оптимальную" версию nixpkgs, которая достаточно недавняя, чтобы содержать нужные мне версии программного обеспечения, но достаточно старую, чтобы двоичные кэши были доступны для Linux и MacOS?
1 ответ
Вы можете найти кэшированные версии nixpkgs прямо здесь, в приложении HowOldIs.
Возможно, вы захотите использовать ревизию nixpkgs-18.09-darwin
или же nixpkgs-unstable
,
Затем вы можете получить nixpkgs, как это
builtins.fetchGit {
name = "nixpkgs";
url = "https://github.com/nixos/nixpkgs.git";
rev = "6ec64973bc3a48b0c54d11c782e8b88b550a8eab";
ref = "release-18.09";
})
ref
атрибут требуется, когда ревизия не входит в ветку по умолчанию - обычно master
,
Примечание в руководстве Nix описывает это следующим образом:
Примечание. Хорошо всегда указывать ветку, к которой относится ревизия. Если ветка не указана, сборщик может завершиться ошибкой, если ветка по умолчанию изменится. Кроме того, может возникнуть путаница при попытке фиксации из ветки не по умолчанию и при сбое выборки. Если указана ветка, то ошибка гораздо более очевидна.
Я полагаю, что такое поведение основано на обходном пути в протоколе Git, когда вы можете указать только ссылки для получения, но не произвольные коммиты, если я не ошибаюсь.