Command-Line
如何在 NixOS 中查找系統範圍內安裝了哪些軟體包?
是否有一個命令可用於確定在 NixOS 中系統範圍內安裝了哪些軟體包?
例如,我可以列出為我目前使用者安裝的包,使用
nix-env -q
. 我不知道有什麼方法可以列出從/etx/nixos/configuration.nix
.我想使用兩個單獨的實例:
- 假設我在 in 中添加了一個包
/etc/nixos/configuration.nix
,environment.systemPackages
但我忘記了我是否已經執行nixos-rebuild switch
了。如果我可以執行一個命令來檢查包是否在系統環境中,那就太好了。- 我已經
programs.bash.enableCompletion
設置true
在/etc/nixos/configuration.nix
. 如果不查看nixpkgs中的選項,我猜這個選項會設置bash-completion
要安裝的包。如果我可以執行一個命令來檢查bash-completion
包是否真的在系統環境中,那就太好了。
對此沒有特定的工具。您可能會喜歡該
system.copySystemConfiguration
選項(請參閱“警告”文件)。您會比較接近
nix-store -q --references /run/current-system/sw
- 直接包含在 中的 nix 儲存路徑列表systemPackages
,但請注意,各種 NixOS 選項可能會在其中添加包。
由於 NixOS 採用了安裝軟體的方法,因此沒有安裝在系統範圍內的軟體包之類的東西。與大多數包管理器不同,也就是說。
但是,如果您將使用者環境(又名配置文件)視為等效於system-wide,那麼您可以使用
nix-store -q -R /nix/var/nix/profiles/system-${n}-link
列出給定使用者環境的依賴關係;其中${n}
是配置文件的代號。我所說的依賴是指直接和間接依賴。此外,如果您使用
--tree
而不是-R
參數,您可以獲得一個 ASCII 依賴樹。