【mac】brew 更新

news/2024/9/19 2:53:08/ 标签: macos, brew

brew__0">【mac】brew 更新

brew_1">更新 Homebrew

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

brew update

完后会显示可以更新的包列表,其中打钩的是已经安装的包。输出类似下面这样:

==> Updating Homebrew...
Updated 1 tap (homebrew/core).
==> Outdated Formulae
ddns-goYou have 1 outdated formula installed.
You can upgrade it with brew upgrade
or list it with brew outdated.

更新包 (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 会提醒你怎么加 launchctlPostgreSQL 会告诉你如何迁移数据库。这些信息会在包安装完成后自动显示,如果忘了的话可以用这个命令很方便地查看。

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

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

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

输出如下:

subversion
├── apr
├── apr-util
│   ├── apr
│   └── openssl@3
│       └── ca-certificates
├── gettext
├── lz4
├── openssl@3
│   └── ca-certificates
└── utf8proc

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


http://www.ppmy.cn/news/1520660.html

相关文章

【STM32+HAL库】---- 通用定时器PWM输出实现呼吸灯

硬件开发板:STM32G0B1RET6 软件平台:cubemaxkeilVScode1 新建cubemax工程 1.1 配置系统时钟RCC 1.2 配置定时器 找到LED所对应的引脚PA5,选择TIM2_CH1模式 在TIM2中,时钟源选择内部时钟Internal Clock,通道1选择PWM…

内置消息支持

内置消息支持 MATLAB 支持大量的 ROS 消息类型。本主题介绍了 MATLAB 如何通过描述消息结构、ROS 消息的限制以及支持的 ROS 数据类型来处理 ROS 消息。有关内置消息类型的完整列表,请参见本文末尾。 有关 ROS 2 消息的信息,请参见“使用基础 ROS 2 消…

uniapp布局

一. 如何让元素吸顶? position: sticky;top: 0; 注意:暂时仅支持作为list-view、sticky-section的子节点, sticky-header不支持css样式!当一个容器视图设置多个sticky-header时,后一个sticky-header会停靠在前一个sticky-header的末尾处。

chrome 插件开发入门

1. 介绍 Chrome 插件可用于在谷歌浏览器上控制当前页面的一些操作,可自主控制网页,提升效率。 平常我们可在谷歌应用商店中下载谷歌插件来增强浏览器功能,作为开发者,我们也可以自己开发一个浏览器插件来配合我们的日常学习工作…

2-78 基于matlab-GUI的DTW算法语音识别

基于matlab-GUI的DTW算法语音识别,具有16页分析报告。能识别0-9数字,正确率90。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据进行特征参数提取。在训练阶段,将特征参数处理之后,每个…

算法题汇总

算法汇总 环形链表 https://leetcode.cn/problems/linked-list-cycle/ 反转链表 https://leetcode.cn/problems/reverse-linked-list/28 环形链表 II https://leetcode.cn/problems/linked-list-cycle-ii/ 快乐数 https://leetcode.cn/problems/happy-number/ 反转链表 II …

掌握SQL的“删除艺术”:如何使用DROP TABLE命令

掌握SQL的“删除艺术”:如何使用DROP TABLE命令 在数据库管理中,有时候我们需要彻底删除一个表,这可能是为了重新设计数据库结构,或者因为某些表不再需要。SQL 提供了 DROP TABLE 语句来实现这一功能。本文将详细介绍 DROP TABLE…

react 中three.js 模型渲染

npm install three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js"; const mountRef useRef(null); useEffect(() > {// 创建渲染器 const renderer new THREE.WebGLRenderer(); const wi…

“解决MySQL容器启动后无法编辑文件的问题:实用指南“

前段时间拉取了个MySQL的容器节点,但是拉起之后发现居然编辑不了MySQL的配置文件,这是我的启动命令 docker run -itd -p 3310:3306 -e MYSQL_ROOT_PASSWORD12345678 --name slave2 f5f171121fa3 bash 下面总结下解决方法: 编辑docker file…

MES基于C#开发计划管理组件集成WinCC中使用

MES系统通常都会与SCADA系统集成使用,尤其具备中控管理需求的工厂,集控SCADA需要集成MES系统的计划工单数据实现工单数据、工艺配方数据、SN数据、打码数据等下发,执行状态、关键参数反馈等上传。本文介绍在WinCC画面集成基于C#开发的计划管理…

[论文笔记] LLM模型剪枝

Attention Is All You Need But You Don’t Need All Of It For Inference of Large Language Models LLaMA2在剪枝时,跳过ffn和跳过full layer的效果差不多。相比跳过ffn/full layer,跳过attention layer的影响会更小。 跳过attention layer:7B/13B从100%参…

iOS 收集打印日志

可以将要在Xcode 控制台打印的日志写在沙盒,最后导出分享,进行问题分析。 正式版本不建议使用,避免增加用户内存。配合解决顽固 Bug 可以通过该方法收集打印日志 .h头文件 interface LogManager : NSObject(FSLogManager *)shareInstance; -…

冲刺蓝桥杯第三章字符串

ASCII码值、字母大小写转换、‘0’~‘9’ //数字转字符:A(65)a(97)0(48) char A=char(65); char a=char(97); char c

终极解决 docker 拉取镜像失败的问题,其他类似场景也适用

国内的网络环境,想必大家都是知道的,虽说技术无罪,但奈何政策不允许啊,以下内容我在 CSDN 上发不了,请大家移步我的个人公 * 号:新质程序猿,查看更多原创内容,这里只介绍相关背景和需…

字节6面,面爆炸了

字节跳动 昨晚在牛客网刷到一篇"深夜 EMO 贴",又是讲字节 N 面挂的。 原本的 4HR 面都过了,结果 Offer 审批的时候,被 HR 通知加一轮交叉面,一共 6 面。 加面时,两个面试官全程黑脸,最后两道算法…

软考 -- 软件设计师 -- 二轮复习(2) -- 程序设计语言(持续更新)

软考 – 软件设计师 – 二轮复习(2) – 程序设计语言(持续更新) 文章目录 软考 -- 软件设计师 -- 二轮复习(2) -- 程序设计语言(持续更新)前言一、编译、解释、基本控制结构二、数据类型三、变量和常量、逻辑表达式(短路:&&、||、!)四、传值调用…

【qt】多线程实现倒计时

1.界面设计 设置右边的intvalue从10开始倒计时 2.新建Thread类 新建Thread类,使其继承QThread类,多态重写run函数,相当于线程执行函数 3.重写run函数 重写run函数,让另一个进程每隔1s发出一个信号,主线程使用conne…

Ps:渲染视频

Ps菜单:文件/导出/渲染视频 File/Export/Render Video 在 Photoshop 中创建视频或动画内容后,可以通过渲染视频 Render Video命令对其进行优化、渲染和导出。 “渲染视频”对话框中提供了两种编码器:Adobe Media Encoder 及 Photoshop 图像序…

【Postgresql】地理空间数据的存储与查询,查询效率优化策略,数据类型与查询速度的影响

注:使用postgresql数据库会用到PostGIS 扩展。 一、安装PostGIS 扩展 在 PostgreSQL 中遇到错误 “type geography does not exist” 通常意味着你的 PostgreSQL 数据库还没有安装 PostGIS 扩展,或者 PostGIS 扩展没有被正确地安装在你的数据库中。geography 类型是 PostGI…

(前端)面试300问之(3)this的指向判断

一、this的相关理解与解读 1、各角度看this。 1)ECMAScript规范: this 关键字执行为当前执行环境的 ThisBinding。 2)MDN: In most cases, the value of this is determined by how a function is called. 在绝大多数情况下&…