feat: Why some packages are installed

This commit is contained in:
Ryan Yin 2024-03-05 14:36:14 +08:00
parent 29104db102
commit 9e9e34ff7f
2 changed files with 17 additions and 8 deletions

View File

@ -71,11 +71,16 @@ sudo nix profile wipe-history --older-than 7d --profile /nix/var/nix/profiles/sy
sudo nix store gc --debug
```
Another command that returns all packages installed in the system is:
```shell
nix-env -qa
```
## Why some packages are installed?
To find out why a package is installed, you can use the following command:
1. Enter a shell with `nix-tree` available: `nix shell nixpkgs#nix-tree`
1. ` nix-store --gc --print-roots | rg -v '/proc/' | rg -Po '(?<= -> ).*' | xargs -o nix-tree`
1. `/<package-name>` to find the package you want to check.
1. `w` to show the package is depended by which packages, and the full dependency chain.
## Reducing Disk Usage

View File

@ -68,11 +68,15 @@ sudo nix profile wipe-history --older-than 7d --profile /nix/var/nix/profiles/sy
sudo nix store gc --debug
```
以及查看系统层面安装的所有软件包(这个貌似只能用 `nix-env`
## 查询为什么某个包被安装了 {#why-some-packages-are-installed}
查询为什么某个包被安装,当前环境中的谁依赖了它:
1. 进入一个带有 `nix-tree` 的 shell`nix shell nixpkgs#nix-tree`
1. ` nix-store --gc --print-roots | rg -v '/proc/' | rg -Po '(?<= -> ).*' | xargs -o nix-tree`
1. `/<package-name>` 以查找到你想查询的包
1. 输入 `w`,看看谁依赖了它(`why depends`),以及完整的依赖链。
```shell
nix-env -qa
```
# 节约存储空间