Через nix
На моем локальном компьютере установлено несколько docker исполняемых файлов.
Вот пример:
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/bin/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/libexec/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/libexec/docker/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/share/bash-completion/completions/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/bin/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/libexec/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/share/bash-completion/completions/docker
Я хочу иметь возможность повторно использовать docker
установлено nix
для моей работы разработчика. Одна из причин заключается в том, что внутренний набор инструментов опирается на конкретную версию docker. Если я установлю Docker for Mac
, я столкнусь с исключением во время выполнения.
Есть ли хитрый прием командной строки nix, чтобы я мог получить путь к самой высокой версии docker? Например, в приведенном выше примере я хочу использовать исполняемый файл docker
в dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4
. В идеале я хотел бы использовать что-то вроде $(nix find-path docker)/bin/docker
для вызова 19.03.04 docker.
Я пытался nix run docker
или nix dump-path docker
, но, конечно, они не являются правильными подкомандами.
Я хочу избежать сохранения другой переменной BASH для хранения жестко закодированного пути до 19.03.04 docker, потому что мой проект может время от времени обновлять docker среды выполнения.