[转]你应该定期更新 Homebrew

你应该定期更新 Homebrew

TL;DR

这篇文章是关于定期更新 Homebrew 的话题。它会告诉你定期更新的好处,常用的命令,以及用 brew pin 尽可能无痛地更新。

为什么要定期更新

我发现不少人都不会经常更新,或者只在必须用某个工具的新版本的时候才更新。他们的看法是,更新有可能产生一些意外的问题,反正当前环境足够稳定可以用,干嘛自找麻烦呢?

这个看法对也不对。对是因为,更新产生的潜在问题不可避免。不对是因为总有一天你需要升级的,也许是为了某个工具的新特性,也许是为了修复软件的漏洞,也许你安装的包非要依赖另一个包的新版本,等等。如果隔了很长一段时间才升级,那潜在的小问题可能就会变成大问题。

另一个有意思的现象是,当碰到比较破坏性的事情,比如 Mac OS 大版本更新后,很多人会选择重装 Homebrew 然后顺带安装最新版的包。很少人会去装一个指定的旧版本(除了特殊项目需要)。这说明他们不是不想用新版本,而是不想痛苦地更新。

既然总有一天需要更新,而更新带来问题不可避免,那为什么不更新得频繁点呢?这个道理跟 Git 的冲突解决有相似性。长时间不 pull/push 的代码更容易产生冲突,一个解决方法就是频繁地 commit & merge 。

我现在试着一个月更新一次,两次下来发现这些好处:

  1. 每次更新的包很少,更新风险也小。
  2. 更容易发现不需要的包,便于清理,不为不需要的东西买单。
  3. 定期清理旧版本,释放空间。

更新流程其实都差不多,下面列一下我常用的命令。

更新包 (formula)

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

brew outdated

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

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

清理旧版本

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

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

这样一套下来,该更新的都更新了,旧版本也被清理了。

锁定不想更新的包

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

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

其他几个常用命令

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

brew info $FORMULA    # 显示某个包的信息
brew info             # 显示安装了包数量,文件数量,和总占用空间

brew deps 可以显示包的依赖关系,我常用它来查看已安装的包的依赖,然后判断哪些包是可以安全删除的。

brew deps --installed --tree # 查看已安装的包的依赖,树形显示

输出如下:

elixir (required dependencies)
└── :erlang

wxmac (required dependencies)
├── jpeg
├── libpng
│   └── xz
└── libtiff
    └── jpeg

还有很多有用的命令和参数,没事 man brew 一下可以涨不少知识。

小结

不想更新 Homebrew 往往有两个原因,害怕潜在的风险和对工具的不熟悉,我之前也是这样。写这篇文章最开始是为了帮我记录常用的命令方便以后查阅的。希望它也能帮到你。

原文地址:https://segmentfault.com/a/1190000004353419

想整理一下 brew 的命令,看到这篇文章写得很好,就转载过来了。

Homebrew 是一款 macOS 上非常流行的包管理工具,它允许用户轻松地从命令行安装、更新和卸载软件。为了从 Homebrew 安装一个软件,你需要先安装并配置 Homebrew。 ### 安装 Homebrew #### 步骤一:复制粘贴安装脚本 打开终端(Terminal),然后输入以下命令: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/main/install.sh)" ``` 这条命令会下载并运行 Homebrew 的安装脚本,完成 Homebrew 的安装过程。 #### 步骤二:验证安装是否成功 安装完成后,你应该可以运行 `brew` 命令,无需额外的提示或确认步骤。例如: ```bash brew doctor ``` 这将检查 Homebrew 是否正常工作,并给出任何可能需要解决的问题列表。 ### 使用 Homebrew 安装软件 假设你想安装一个名为 `example-app` 的应用,你可以使用以下命令: ```bash brew install example-app ``` 这个命令将下载并安装 `example-app` 及其依赖项。 ### 更新 Homebrew 和已安装的应用 定期更新 Homebrew 和已安装的软件是很重要的,以获取新版本的功能和安全修复。你可以通过下面的命令来进行更新: ```bash brew update brew upgrade ``` `brew update` 命令用于更新 Homebrew 的元数据库,而 `brew upgrade` 则会升级所有已经安装的软件到最新版本。 ### 卸载已安装的应用 如果不再需要某个应用,可以使用以下命令卸载: ```bash brew uninstall example-app ``` 这将会删除 `example-app` 及其所有的文件和配置。 ### 自定义安装路径 有时,默认的安装位置可能不适合你的需求。可以在 `~/.zshrc` 或 `~/.bash_profile` 中添加以下内容来修改默认的安装目录: ```bash export HOMEBREW_PREFIX=~/.local ``` 之后重新启动终端或运行 `source ~/.zshrc` 来生效。 --- ##
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值