如何在 NixOS 上找出文件属于哪个(未安装)包?

如何在 NixOS 上找出文件属于哪个(未安装)包?

我正在使用一个尼克斯包管理器尼克斯操作系统。假设我想安装一个提供文件的包libgtk-x11-2.0.so.0。如何找到提供此文件的包,类似于其他 GNU/Linux 发行版

目前,我必须搜索该文件并找出它可能属于哪个包,并在 Nix 存储库上找到相应的包,但我想要一个更惯用的方法。

答案1

nix指数就是你所需要的。

安装并构建索引:

nix-env -iA nixos.nix-index
nix-index

找到libgtk-x11-2.0.so.0

nix-locate -w libgtk-x11-2.0.so.0

输出:

(zed.out)                                             0 s /nix/store/bc4mngklj2j7hmm21jra4641x4pm9r8z-node-webkit-env/lib/libgtk-x11-2.0.so.0
(thrust.out)                                          0 s /nix/store/wzg0k4i2cy0qsm3hwxlywxxbga019hbq-env-thrust/lib/libgtk-x11-2.0.so.0
(nwjs_0_12.out)                                       0 s /nix/store/js6klvzjfi5q4djmwb0bqzfb4x0vzm6g-nwjs-env/lib/libgtk-x11-2.0.so.0
(node_webkit_0_11.out)                                0 s /nix/store/30vm6a7bmc56ckl575rqassw60ccxjpg-node-webkit-env/lib/libgtk-x11-2.0.so.0
(mumble_overlay.out)                                  0 s /nix/store/wayx023w1nslqg2z0c5v4n0b4jxn5n06-gtk+-2.24.31/lib/libgtk-x11-2.0.so.0
gnome2.gtk.out                                        0 s /nix/store/3iqchhncghm5s458lzy99c3prfymrnp2-gtk+-2.24.31/lib/libgtk-x11-2.0.so.0

最后一行表示gtk+-2.24.31具有属性路径的包gnome2.gtk包含此文件。

答案2

查看文档,似乎没有一种简单的方法可以做到这一点。

使用基于 yum 的发行版,您可以执行此操作yum provides $file,在 apt-get 发行版中,您可以安装 apt-file 并执行此操作,apt-file $file但我在nix-env -q.

相关内容