我正在使用一个尼克斯包管理器在尼克斯操作系统。假设我想安装一个提供文件的包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
.