向 Nix 询问有关给定包的元数据
Asking Nix for metadata about the given package
我在 macOS 和(非 NixOS)上使用 Nix Linux。我想给 Nix 一个包名或属性名,并让它显示给我
- Nix 知道的那个包的最新版本号和
- 我的相应 .nix 文件的本地副本的路径(或者 URL 到 GitHub 上的 nixpkgs 存储库中的那个 .nix 文件)。
我基本上是在寻找与 Homebrew 的 brew info packagename
等效的 Nix。
我怎样才能让 Nix 给我这些信息?
也许有更好的方法,比如 nix-env
,但我通常使用 nix repl
来达到这个目的。
$ nix repl '<nixpkgs>'
Welcome to Nix version 2.2.2. Type :? for help.
Loading '<nixpkgs>'...
Added 10069 variables.
nix-repl> docker-c[TAB]
docker-compose docker-credential-gcr
nix-repl> docker-compose.version
"1.23.1"
在 CLI 上使用 nix-env
,我认为我们目前可以(相对)方便地做的最好的事情是 JSON 或 XML:
$ nix-env --query --available --attr nixpkgs.hello --meta --json
# Or in terse form:
$ nix-env -qaA nixpkgs.hello --json
输出和输入都不是特别人性化,典型的 Nix 可用性……
.nix
文件的路径被列为 position
,在 REPL 中也是如此,在 Robert 的巧妙回答中它是 hello.meta.position
。值得一提的是nix edit nixpkgs.hello
,用于打开文件
我在 macOS 和(非 NixOS)上使用 Nix Linux。我想给 Nix 一个包名或属性名,并让它显示给我
- Nix 知道的那个包的最新版本号和
- 我的相应 .nix 文件的本地副本的路径(或者 URL 到 GitHub 上的 nixpkgs 存储库中的那个 .nix 文件)。
我基本上是在寻找与 Homebrew 的 brew info packagename
等效的 Nix。
我怎样才能让 Nix 给我这些信息?
也许有更好的方法,比如 nix-env
,但我通常使用 nix repl
来达到这个目的。
$ nix repl '<nixpkgs>'
Welcome to Nix version 2.2.2. Type :? for help.
Loading '<nixpkgs>'...
Added 10069 variables.
nix-repl> docker-c[TAB]
docker-compose docker-credential-gcr
nix-repl> docker-compose.version
"1.23.1"
在 CLI 上使用 nix-env
,我认为我们目前可以(相对)方便地做的最好的事情是 JSON 或 XML:
$ nix-env --query --available --attr nixpkgs.hello --meta --json
# Or in terse form:
$ nix-env -qaA nixpkgs.hello --json
输出和输入都不是特别人性化,典型的 Nix 可用性……
.nix
文件的路径被列为 position
,在 REPL 中也是如此,在 Robert 的巧妙回答中它是 hello.meta.position
。值得一提的是nix edit nixpkgs.hello
,用于打开文件