`brew list` 显示了很多我没有安装的东西。为什么?如果安装的东西依赖于它们,我怎么知道?
`brew list` shows many things I did not install. Why? If something installed depends on them, how do I know?
在一台新机器上,我使用 brew 只安装了四个东西:git
、node
、sqlite
和 less
。后来,当我 运行 brew update
我被告知许多我没有安装的其他东西是“过时的”。我 运行 brew list
得到以下信息:
brotli less pcre2
c-ares libnghttp2 python@3.9
ca-certificates libuv readline
gdbm mpdecimal sqlite
gettext ncurses xz
git node
icu4c openssl@1.1
这些是从哪里来的?如果它们是因为 git
、node
或 less
需要它们而安装的,我怎么知道?
是的,像所有包管理器一样,Homebrew(又名 brew)会自动安装依赖项。这是一个递归过程:如果依赖本身有依赖,brew 也会安装它们,依此类推。
brew deps
您可以使用 brew deps
命令查看您安装的任何内容的依赖关系树:
> brew deps node --tree
node
├── brotli
├── c-ares
├── icu4c
├── libnghttp2
├── libuv
├── openssl@1.1
│ └── ca-certificates
└── python@3.9
├── gdbm
├── mpdecimal
├── openssl@1.1
│ └── ca-certificates
├── readline
├── sqlite
│ └── readline
└── xz
您可以在这棵树中看到许多您在 brew list
中看到的东西。
brew uses
但是要回答您的问题,您可以使用 brew uses
命令朝相反的方向进行:
> brew uses readline --installed
node python@3.9 sqlite
--installed
标志很重要,因为没有它上面的命令将列出 所有使用 readline
的东西,无论它安装在您的系统上还是不是。还要注意 brew uses
是如何递归的(与 brew deps
相反的方向),显示直接使用 readline
的 python@3.9
和间接使用它的 node
.
brew desc
现在,如果您对这些已安装依赖项的作用感到好奇,请使用 brew desc
命令:
> brew desc pcre2
pcre2: Perl compatible regular expressions library with a new API
brew leaves
顺便说一下,如果您只想要您具体安装的简短列表,请使用 brew leaves
。 Brew 会跟踪 您 安装的内容,以便在您使用 brew upgrade
.
这样的命令时,它可以知道(递归地)为您管理哪些内容
> brew leaves
git
less
node
sqlite
在一台新机器上,我使用 brew 只安装了四个东西:git
、node
、sqlite
和 less
。后来,当我 运行 brew update
我被告知许多我没有安装的其他东西是“过时的”。我 运行 brew list
得到以下信息:
brotli less pcre2
c-ares libnghttp2 python@3.9
ca-certificates libuv readline
gdbm mpdecimal sqlite
gettext ncurses xz
git node
icu4c openssl@1.1
这些是从哪里来的?如果它们是因为 git
、node
或 less
需要它们而安装的,我怎么知道?
是的,像所有包管理器一样,Homebrew(又名 brew)会自动安装依赖项。这是一个递归过程:如果依赖本身有依赖,brew 也会安装它们,依此类推。
brew deps
您可以使用 brew deps
命令查看您安装的任何内容的依赖关系树:
> brew deps node --tree
node
├── brotli
├── c-ares
├── icu4c
├── libnghttp2
├── libuv
├── openssl@1.1
│ └── ca-certificates
└── python@3.9
├── gdbm
├── mpdecimal
├── openssl@1.1
│ └── ca-certificates
├── readline
├── sqlite
│ └── readline
└── xz
您可以在这棵树中看到许多您在 brew list
中看到的东西。
brew uses
但是要回答您的问题,您可以使用 brew uses
命令朝相反的方向进行:
> brew uses readline --installed
node python@3.9 sqlite
--installed
标志很重要,因为没有它上面的命令将列出 所有使用 readline
的东西,无论它安装在您的系统上还是不是。还要注意 brew uses
是如何递归的(与 brew deps
相反的方向),显示直接使用 readline
的 python@3.9
和间接使用它的 node
.
brew desc
现在,如果您对这些已安装依赖项的作用感到好奇,请使用 brew desc
命令:
> brew desc pcre2
pcre2: Perl compatible regular expressions library with a new API
brew leaves
顺便说一下,如果您只想要您具体安装的简短列表,请使用 brew leaves
。 Brew 会跟踪 您 安装的内容,以便在您使用 brew upgrade
.
> brew leaves
git
less
node
sqlite