【Homebrew】MacOS的包管理工具

提示:宝子们,希望文章对你们有所帮助, 请一键三连支持博主下吧~


前言

提示:博主电脑环境:MacOS Monterey 版本 12.6.8 Apple M1
Homebrew 版本4.1.12-8-gafbea15
当前我们常见的系统平台,大多数都是以Windows,MacOS,Linux三个为主;Windows我们自不用说,从小用到大的系统了,安装东西和删除东西操作都是相对比较容易的,唯独在一些特殊平台,例如MacOS和Linux系统下,会相对繁琐一些;于是便衍生出了一些包管理工具,为的就是让软件的安装、更新、管理变得更加容易;

这篇主要说的MacOS中的包管理工具-----Homebrew;


一、常规情况下,macOS如何管理和安装软件

在没有homebrew等包管理工具的情况下,macOS系统是如何安装软件的?

1.1 App Store 安装

APP Store苹果系列绝对最基础原始的应用了,俗称 应用商店,想下载的app,软件等只要商店有,都能下载;更新也是通过App Store进行更新,或者通过软件自带的更新功能;

1.2 官方网站下载

第二途径就是根据我们的需要的软件,需要找到他们的官网地址,一般都会提供安装包的下载地址,例如我们常用JDK,Tomcat等,并下载适合你 macOS 版本的软件安装包(通常我们下载的是 .dmg 或 .pkg 文件),接着就是按照提示步骤傻瓜式安装即可;

1.3 第三方软件市场

其他途径也能下载,但是需要注意的就是文件的来源的可靠性

二、 为什么是用Homebrew

OK,了解了普通情况下macOS软件管理的方式后,其实我们可以大致看出问题,就是我们下载东西,步骤大概分为:找地址,下载,安装,配置(如果有需要依赖包返回第一步继续),最后完成;如果针对比较单一的应用时,homebrew和平时我们的安装方式差别不大,但是涉及应用依赖问题的时候,我们可能就要花大量时间在找依赖包适配的上了,那就比较繁琐了;homebrew就能解决这个问题;

三、什么是homebrew?

Homebrew是一个在macOS系统上常用的软件包管理工具,最直白的好处就是给你提供了安装、卸载、更新、查看、搜索等功能,命令简单,轻松管理软件包,以及安装过程中各种依赖问题;不过系统默认是没有的homebrew;因此我们要先来安装一下;

首先我们访问它的官网地址:https://brew.sh/zh-cn/ 可能会有点慢~
在这里插入图片描述

3.1 脚本方式安装

这里看,官方已经告诉我们安装的方式:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
命令粘贴至终端执行

这个方式基于你的网络很好的情况,不给力的话还是老实的用国内镜像加速吧;

/bin/bash -c “$(curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install/master/install.sh)”

3.2 pkg包安装方式

这里官方也有给我们建议,说是macOS系统,可以尝试使用他们最新的pkg的方式安装;

在这里插入图片描述
至于用哪一种方式安装,看个人选择了;

四、homebrew的使用

安装完成后,我们通过brew --help 可以查看相关他的用法帮助;能输出类似下面内容,就代表我们的安装是成功的;也可以通过brew -v来查询版本证明是否安装成功,这里我们可以看到很多用法的范例,也是我们比较常用的命令;
在这里插入图片描述
在讲homebrew中的命令之前,我们了解一下使用案例中Formula|CASK的含义;
Formulae这里指的是 Homebrew 的中很重要的概念,叫做公式, Homebrew 中的公式是用 Ruby 编写的脚本,它主要涵盖着如何从源代码安装一个软件包以及它的所有依赖关系。每个公式都对应一个特定的软件包,并且通常与该软件包的名称相对应;

举个🌰 当我们执行brew install git 的时,homebrew是如何工作的?
(1)homebrew首先会去找到对应git的公式是否存在;
(2)根据公式中的信息来安装git,信息一般包括该软件所有的源码URL地址,编译指令等;
(3)下载对应源码,还有处理所有依赖关系;
(4)最后根据公式中的编译指令安装软件;

那问题来了,Formulae和Casks有什么区别?
Formulae:主要用于安装命令行工具和库
Casks:用于安装图形界面的应用程序
其实我们这里只需要了解概念即可,因为较新版本的homebrew在命令上,已经看不出这个区别了(旧版本安装cask类型的软件时是需要加上 --cask参数),无论是哪种,我们都是执行brew install + (Formulae|Casks)了;

4.1 使用brew安装/卸载软件包

brew install / uninstall + 【package-name】

安装时,我们也可以指定安装想要版本的软件包,只要homebrew库中有即可;写法是:
brew install gcc@7 代表安装版本号为7的gcc软件;

4.2 使用brew更新软件

brew upgrade + 【package-name】

4.3 查看当前brew已安装的软件

brew list
在这里插入图片描述

4.4 查看homebrew中相关可用的包

brew search + 【package-name】

4.5 更新brew自身

brew update

4.6 其他命令

输入 brew commands 我们还可以查看其他常用的命令;用法基本类似;我们只要记住常用的即可,其他命令大家有兴趣的都可以尝试一下;
在这里插入图片描述

五、homebrew使用中常见的问题

5.1 基础语法问题

search,install,uninstall等命令是需要指定包名的(Formulae|Casks),缺少参数就会出错;homebrew 也会给到提示信息;
在这里插入图片描述

5.2 brew 安装软件时缓慢

(1) 替换源代码仓库镜像

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

注:$(brew --repo) 其实这里代表的就是homebrew的默认路径“/opt/homebrew”
原因在于homebrew 默认下载是从官方源头获取,因此大多数可能都在国外服务器上,国内自然会有降速;所以可以换成国内镜像来实现提速;

(2) 检查是否是自己网络和防火墙相关的设置问题
当网络自身延迟较大的,或者防火墙拦截的情况下,也会导致速度变缓;

(3) 长时间未使用homebrew
如果你长时间不曾使用homebrew ,在初次安装某个软件时,往往会发现终端上会提示大量安装信息;(这个大家常玩游戏肯定深有体会,几个月不玩的游戏登录再玩,怎么也得让你更新个几十G的包都不在话下);这也是homebrew自身的更新机制,他会在每次安装前更新版本,以让用户能使用最新版本的homebrew;这个默认是自动的,我们也能在配置中禁止它,但是呢,人家也说了都是为了用户们好,那博主也就不好再去改它了是吧;

另外,他还会顺带更新本次软件包可能涉及的依赖包版本,也就是说如果原来你已经有这个依赖包并且安装了,当下你这个软件也需要这个依赖包的话,他安装的时候也会去检查更新这个依赖包版本,因此往往我们在长时间不使用情况下,会发现安装包变得异常繁琐,因为有着大量更新操作在安装之前被执行;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋刀prince

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值