vas*_*vas 10 macos homebrew package-managers
在一台新机器上,我使用brew只安装了四个东西:git、node和。后来,当我跑步时,我被告知许多其他我没有安装的东西都是“过时的”。我跑了并得到以下信息:sqlitelessbrew updatebrew 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
Run Code Online (Sandbox Code Playgroud)
这些是从哪里来的?如果它们是因为安装git或需要它们node而less安装的,我如何找到?
vas*_*vas 39
是的,Homebrew(又名“brew”)与所有包管理器一样,会自动安装依赖项。这是一个递归过程:如果依赖项本身有依赖项,brew 也会安装它们,依此类推。
\nbrew deps您可以使用以下命令查看安装的任何内容的依赖关系树brew deps:
> brew deps node --tree\n\nnode\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 brotli\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 c-ares\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 icu4c\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 libnghttp2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 libuv\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 openssl@1.1\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ca-certificates\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 python@3.9\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gdbm\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mpdecimal\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 openssl@1.1\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ca-certificates\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 readline\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sqlite\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 readline\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 xz\nRun Code Online (Sandbox Code Playgroud)\n你可以在这棵树上看到许多你在树上看到的东西brew list。
brew uses但要回答您的问题,您可以使用以下命令朝相反的方向进行brew uses:
> brew uses readline --installed\n\nnode python@3.9 sqlite\nRun Code Online (Sandbox Code Playgroud)\n该--installed标志很重要,因为如果没有它,上面的命令将列出使用 的所有内容readline,无论它是否安装在您的系统上。另请注意brew uses是如何递归的(与 的方向相反brew deps),显示了直接python@3.9使用它和间接使用它的情况。readlinenode
brew desc现在,如果您对这些已安装的依赖项的作用感到好奇,请使用以下命令brew desc:
> brew desc pcre2\n\npcre2: Perl compatible regular expressions library with a new API\nRun Code Online (Sandbox Code Playgroud)\nbrew leaves -r如果您只想要具体安装的简短列表,brew leaves -r则适用于大多数情况:
> brew leaves -r\n\ngit\nless\nnode\nsqlite\nRun Code Online (Sandbox Code Playgroud)\nbrew leaves列出已安装但不是依赖项的内容(它们是上面树中的叶子),并将-r列表过滤为您手动安装的内容。
我说“大多数情况”是因为它不包括您手动安装但不再离开的东西。当您安装另一个依赖于您最初手动安装的内容时,就会发生这种情况。例如,如果我readline手动安装,brew leaves -r首先会显示它,但在安装后不会node显示sqlite。
对于很多人来说,“叶子”和“手动安装”是同一件事。但安装得越多,出错的可能性就越大。
\nbrew bundle dump --file -这是一个更难记住的命令(创建别名!),但它给出了比以下命令更可靠、更完整的答案brew leaves -r:
> brew bundle dump --file -\n\nbrew "git"\nbrew "less"\nbrew "node"\nbrew "sqlite"\ncask "rar"\nRun Code Online (Sandbox Code Playgroud)\n它更完整,因为与它不同的是,brew leaves它将包括您手动安装的东西,即使它们不再离开。此外,它还包括水龙头和木桶。
我从@orlp\'s 在 Ask Different 上的回答中学到了这个技巧。
\n| 归档时间: |
|
| 查看次数: |
3101 次 |
| 最近记录: |