Как найти ревизию nixpkgs, в которой построен двоичный кеш macos / darwin? - PullRequest
0 голосов
/ 20 сентября 2018

Я бы хотел прикрепить nixpkgs к совершенно новой ревизии, скажем, Haskell LTS-12.9 или что-то в этом роде.И я хочу использовать nix-build для сборок MacOS (Darwin).

Проблема в том, что для большинства пакетов Haskell нет двоичного кеша, а сборка занимает много времени (в MacOS).

Как мне найти «оптимальную» версию nixpkgs, которая достаточно недавняя, чтобы содержать нужные мне версии программного обеспечения, но достаточно старая, чтобы двоичные кэши были доступны для Linux и MacOS?

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете найти кэшированные версии 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, что вы можете указать только ссылки для выборки, но не произвольные коммиты, еслиЯ не ошибаюсь.

...