静态查询分析

1,739 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

搜索软件

brew search [TEXT|/REGEX/] 用于搜索软件,支持使用正则表达式进行复杂的搜索。

例如,查询静态博客生成工具hugo:

$ brew search hugo` `==> Searching ``local` `taps...``
hugo ✔``==> Searching taps on GitHub...``
==> Searching blacklisted, migrated and deleted formulae...

查看安装的包

查看已经安装的包

brew list
​
​

查看包相关信息

brew info 可以查看包的相关信息,最有用的应该是包依赖和相应的命令。比如 Nginx 会提醒你怎么加 launchctl ,PostgreSQL 会告诉你如何迁移数据库。这些信息会在包安装完成后自动显示,如果忘了的话可以用这个命令很方便地查看。

brew info $FORMULA  ``# 显示某个包的信息``
brew info       ``# 显示安装了包数量,文件数量,和总占用空间``brew deps 可以显示包的依赖关系,我常用它来查看已安装的包的依赖,然后判断哪些包是可以安全删除的。` `
brew deps --installed --tree ``# 查看已安装的包的依赖,树形显示

更新 Homebrew

要获取最新的包的列表,首先得更新 Homebrew 自己。这可以用 brew update 办到。

brew update完后会显示可以更新的包列表,其中打钩的是已经安装的包。

更新包 (formula)

更新之前,我会用 brew outdated 查看哪些包可以更新。

brew outdated 然后就可以用 brew upgrade 去更新了。Homebrew 会安装新版本的包,但旧版本仍然会保留

brew upgrade            # 更新所有的包
​
​
​
brew upgrade $FORMULA  # 更新指定的包

清理旧版本

新版本安装了,旧版本就不需要了。我会用 brew cleanup 清理旧版本和缓存文件。Homebrew 只会清除比当前安装的包更老的版本,所以不用担心有些包没更新但被删了。

brew cleanup            # 清理所有包的旧版本
​
​
​
brew cleanup $FORMULA  # 清理指定包的旧版本
​
​
​
brew cleanup -n          # 查看可清理的旧版本包,不执行实际操作

现在该更新的都更新了,旧版本也被清理。

对于Homebrew来说,如果没有卸载掉软件包的所有版本,那么Homebrew会继续尝试安装这个软件包的最新版本。要想彻底卸载某个软件包,需要执行命令:

brew uninstall formula_name --force

锁定不想更新的包

如果经常更新的话,brew update 一次更新所有的包是非常方便的。但我们有时候会担心自动升级把一些不希望更新的包更新了。数据库就属于这一类,尤其是 PostgreSQL 跨 minor 版本升级都要迁移数据库的。我们更希望找个时间单独处理它。这时可用 brew pin 去锁定这个包,然后 brew update 就会略过它了。

brew pin $FORMULA   ``# 锁定某个包``brew unpin $FORMULA  ``# 取消锁定

服务管理

brew services 用于方便的管理 brew 安装的软件软件,类似于 Linux 下的 service 命令。

brew services ``command``:
``Integrates Homebrew formulae with macOS' launchctl manager.` 
`[``sudo``] brew services list:``List all running services ``for` `the current user (or root).` `[``sudo``] brew services run (formula|--a
l):``Run the service formula without 
registering to launch at login (or boot).`
`[``sudo``] brew services start (formula|--all):
``Start the service formula immediately and register it to launch at login (or boot).
` `[``sudo``] brew services stop (formula|--all):``Stop the service formula immediately and unregister it from launching at login (or boot).
`[``sudo``] brew services restart (formula|--all):``Stop (``if` `necessary) and start the 
service formula immediately and register 
it to launch at login (or boot).` `[``sudo``] 
brew services cleanup:``Remove all unused services.` `If ``sudo` `is passed, operate on 
``/Library/LaunchDaemons` `(started at boot).``Otherwise, operate on ~``/Library/LaunchAgents` `(started at login).

查看配置信息

brew config 用于查看 brew 所在环境及相关的配置情况

诊断问题

brew doctor 诊断当前 brew 存在哪些问题,并给出解决方案

仓库管理

brew tap 已安装的仓库列表` `brew tap [--full] user``/repo` `[URL] 添加仓库` `brew untap tap 移除仓库

替换homebrew源

替换homebrew默认源

cd` `"$(brew --repo)"``git remote ``set``-url origin git:``//mirrors``.ustc.edu.cn``/brew``.git

替换homebrew-core源

cd` `"$(brew --repo)/Library/Taps/homebrew/homebrew-core"``git remote ``set``-url origin git:``//mirrors``.ustc.edu.cn``/homebrew-core``.git

homebrew可视化管理工具

如果你不想去记忆那么多命令,也可以使用Cakebrew (官网)可视化管理

可使用如下命令安装:

brew cask ``install` `cakebrew` `#如果提示Error: Unknown command: cask 这个报错的话,原因是因为新版本的homebrew已经取消了cask这条命令,``so 上面的命令可以换成:brew ``install` `--cask cakebrew命令   Homebrew3.2.6的版本亲测可用

然后你就可以愉快的使用homebrew啦

640.webp.jpg

homebrew services可视化管理

LaunchRocket 是非常友好的图形界面,使用起来简单快捷。比如你使用Homebrew安装的Mysql、Redis、MongoDB,是让它自启动呢,还是手动启动,传统方式需要使用命令行的命令,而使用LaunchRocket则可以在图形界面中进行管理了!

GitHub地址:github.com/jimbojsb/la…

安装方法:

brew tap jimbojsb``/launchrocket` `#这行命令貌似不敲也不影响啥,可以先尝试直接略过该命令,直接进行输入下面的命令` `brew cask ``install` `launchrocket``#跟上面一样,如果报Error: Unknown command: cask的错误,``则可以换成:brew ``install` `--cask launchrocket命令  Homebrew3.2.6的版本亲测可用

然后你就可以在系统设置面板启动它了

2.webp.jpg

程序界面如下:

3.webp.jpg