Meu pacote está instalado com umconfiguration.nix
{ config, pkgs, lib, ... }:
{
environment.systemPackages = with pkgs; [
my-package
];
}
Como posso consultar o caminho my-package
no armazenamento nix?
Estou procurando algo tão simples quanto which my_executable
, mas para pacotes na loja nix.
Exemplo de uso
$ my_search my-package [--store /path/to/nix/store]
/path/to/nix/store/qpmg2piws75wmy1619ryh0dhwi9638ni-my_package-1.5.6
Notas:
- Ele tem que me dar o caminho para a geração e/ou derivação atualmente em uso
- Não deveria exigir uma conexão com a internet, nem deveria tentar construir nada. my_package pode exigir acordo com licenças específicas e precisa permitir pacotes não livres que podem atrapalhar a reconstrução. Exemplo: o pacote
segger-jlink-headless
- Se o pacote foi instalado pelo root (por exemplo no NixOS), posso ter um comando que não exija privilégios de root? Posso sempre fornecer o caminho,
/nix/store/
se necessário. which my_package_executable
não funciona se um pacote não contiver um executável no PATH.
Outras referências:
Como encontrar a versão correta de um pacote instalado em /nix/store
https://nixos.wiki/wiki/Cheatsheet
A resposta do Discourse parece desatualizada (não está funcionando para mim): https://discourse.nixos.org/t/how-to-get-a-package-path-in-nix-store-which-not-containing-a-bin-dir/4653/5 :
No meu caso, nix eval
os erros aparecem quando fornecidos com o pacote que instalei (veja a etapa de instalação acima)
$ nix eval nixpkgs.my-package.outPath
error: getting status of '/home/<user>/nixpkgs.my-package.outPath': No such file or directory