我的软件包安装了configuration.nix
{ config, pkgs, lib, ... }:
{
environment.systemPackages = with pkgs; [
my-package
];
}
my-package
我如何查询nix商店中的路径?
我正在寻找像 一样简单的东西which my_executable
,但是是针对 nix 商店中的包。
示例用法
$ my_search my-package [--store /path/to/nix/store]
/path/to/nix/store/qpmg2piws75wmy1619ryh0dhwi9638ni-my_package-1.5.6
笔记:
- 它必须为我提供当前正在使用的生成和/或派生的路径
- 它不应该需要互联网连接,也不应该尝试构建任何东西。my_package 可能需要同意特定的许可证,并且需要允许可能妨碍重建的非自由软件包。示例:包
segger-jlink-headless
- 如果软件包是由 root 安装的(例如在 NixOS 上),我可以使用不需要 root 权限的命令吗?
/nix/store/
如果需要,我始终可以提供路径。 which my_package_executable
如果包中不包含 PATH 中的可执行文件,则不起作用。
其他参考:
https://nixos.wiki/wiki/Cheatsheet
话语答案似乎已经过时(对我不起作用):https ://discourse.nixos.org/t/how-to-get-a-package-path-in-nix-store-which-not-containing-a-bin-dir/4653/5 :
就我而言,nix eval
安装包提供时出现错误(请参阅上面的安装步骤)
$ nix eval nixpkgs.my-package.outPath
error: getting status of '/home/<user>/nixpkgs.my-package.outPath': No such file or directory