我在NixOS上使用Nix软件包管理器。假设我要安装一个提供文件的软件包。我如何找到提供此文件的软件包,类似于其他GNU / Linux发行版?libgtk-x11-2.0.so.0
目前,我必须搜索该文件并找出它可能属于哪个程序包,然后在Nix存储库中找到相应的程序包,但是我想使用一种更加惯用的方法。
1
在放弃之前,我什至“建立了一个ctags数据库...” nixos.org/wiki/…。
—
thrig
一些软件包管理器(例如
—
vonbrand,2015年
yum
和dnf
在RPMland中)允许您说“安装文件”,他们找出正确的软件包并进行安装。
对于可执行文件ATM(
—
弗拉基米尔·Čunát2015年
$ command-not-found foo
),我们只有此功能。请注意,搜索nix文件(例如使用ctags)将无济于事。您必须执行构建以查找其安装内容。
为什么?其他软件包管理器真的有这样的功能吗?更多“惯用的”方法是读取
—
Andrew Miloradovsky 2016年
INSTALL
软件包的文件(您要为其创建环境),即必须预安装的软件包的Requirements
/ Dependencies
部分。然后查找包在nixpkgs
。(换句话说,程序包管理器是关于程序包而不是文件...)
@AndrewMiloradovsky,因为有时您知道命令的名称(或其他文件名),但不知道提供该命令的软件包的名称。是的,其他包经理有这样的功能,例如
—
maxschlepzig
yum provides '*/bin/grep'
或dnf provides '*/bin/grep
或apt-file search 'fprintf.3.gz'
。