【macOS】Homebrew & Homebrew cask macOS软件包管理神器
Homebrew

Homebrew 与 Homebrew Cask
Homebrew 是基于 OS X 的套件管理工具,是一个开源的 Ruby 脚本,专门用于快速下载软件。更通俗地讲,Homebrew 类似于一个软件中心,你可以理解成 App Store 或者 Google Play 那样的软件商店,只不过,Homebrew 比前者以及 Mac App Store 来说有着更丰富的资源与更高效的管理,具体会在下文提及。
至于 Homebrew Cask,它是一套建立在 Homebrew 基础之上的macOS软件安装命令行工具,是 Homebrew 的扩展。简言之,你完全可以把 Homebrew Cask 当作是 Homebrew 的一部分,在安装常用软件的过程中,大部分情况下我们只需要使用 Homebrew Cask 就足够了。
Homebrew 能干什么?
以下来自Homebrew中文主页
使用 Homebrew 安装 Apple(或您的 Linux 系统)没有预装但 你需要的东西。
$ brew install wget
Homebrew 会将软件包安装到独立目录,并将其文件软链接至 /usr/local 。
$ cd /usr/local
$ find Cellar
Cellar/wget/1.16.1
Cellar/wget/1.16.1/bin/wget
Cellar/wget/1.16.1/share/man/man1/wget.1
$ ls -l bin
bin/wget -> ../Cellar/wget/1.16.1/bin/wget
Homebrew 不会将文件安装到它本身目录之外,所以您可将 Homebrew 安装到任意位置。
轻松创建你自己的 Homebrew 包。
$ brew create https://foo.com/bar-1.0.tgz
Created /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/bar.rb
完全基于 Git 和 Ruby,所以自由修改的同时你仍可以轻松撤销你的变更或与上游更新合并。
$ brew edit wget # 使用 $EDITOR 编辑!
Homebrew 的配方都是简单的 Ruby 脚本:
class Wget < Formula
homepage "https://www.gnu.org/software/wget/"
url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"
def install
system "./configure", "--prefix=#{prefix}"
system "make", "install"
end
end
Homebrew 使 macOS(或您的 Linux 系统)更完整。使用 gem 来安装 RubyGems、用 brew 来安装那些依赖包。
Homebrew有什么优势
- 通过 Homebrew 下载安装的软件全部来自对应的软件官网,无需担心下载源的安全问题。
- 依存于系统既有的库,减少了空间占用和冗余
- 使用 Git 进行管理和更新
- 易于定制
- 安装软件 / 软件包 / 软件都在一个目录下,方便管理,这也是 Homebrew 能如此受欢迎的最大原因之一。
Homebrew Cask 的常用命令非常简单,也很好理解,虽然是通过命令行,但你完全不需要对「终端」「命令行」有过多了解,也能很快上手。
不管是 Homebrew 还是 Homebrew Cask,它们除了安装软件外还能帮你做一些其他操作,因此,你花费一定的学习成本带来的效率提升,是值得的。
Homebrew 安装
1. 配备 Intel CPU 的 Mac 电脑
确保你的 Mac 系统版本在 OS X 10.9 或以上。
2. 安装 Xcode
如果你的电脑上没有安装 Xcode,你可能需要先在 Mac App Store 下载 Xcode,如果嫌 Xcode 体积庞大的话,可以前往 Apple 开发者网站 尝试下载 Command Line Tools for Xcode 进行安装。
3.安装 Homebrew
官网主页的安装命令如下
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
但是由于不可抗力,在国内安装我们需要使用Homebrew国内自动安装脚本
安装脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
卸载脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
输入以上安装脚本命令即可安装

等待安装完成。

Homebrew常用命令
- 查看帮助信息
$ brew help
- 软件安装命令,如
brew install binwalk,支持多个同时安装,用空格隔开。
$ brew install <软件名>
- 软件搜索命令,支持关键字搜索。如果我们想安装一款软件 Alfred,但不知道 Homebrew 是否支持安装该款应用,我们可通过该方法查询。如输入
brew search binwalk会列出所有符合条件的结果。
$ brew search <关键字>
- 更新 Homebrew,想要获取最新的包,首先得更新 Homebrew 本身。
$ brew update
- 更新包,如
brew upgrade $highlight
$ brew upgrade #更新所有的包
$ brew upgrade $<软件包> #更新指定的包
- 查看 Homebrew 下载的包存放路径
$ brew --cache
- 列出已安装的包
$ brew list
- 列出可更新的包
$ brew outdated
- 清理旧版本的包,如
brew cleanup $wget
$ brew cleanup #清理所有旧版本的包
$ brew cleanup $<软件包> #清理指定的旧版本包
$ brew cleanup -n #查看可清理的旧版本包
- 彻底卸载某个包,如
brew uninstall wget --force
$ brew uninstall <软件包> --force
- 锁定某个不想更新的包,如
brew pin $wget
$ brew pin $<软件包> #锁定指定包
$ brew unpin $<软件包> #取消锁定指定包
- 查看已安装包的依赖
$ brew deps --installed --tree
- 查看包的信息,如
brew info $wget
$ brew info $<软件包> #显示某个包信息
$ brew info #显示安装的包数量、文件数量以及占用空间
软件包安装实例
例如我们想要安装binwalk
我们首先查找
brew search binwalk
然后安装
brew install binwalk

安装完成后我们使用brew list查看是否安装完成
这里安装的是binwalk,也可以使用binwalk -h
brew list

homebrew-rmtree
但是当我们卸载某个软件包时,例如执行brew uninstall bin walk并不会删除其依赖。

这里介绍homebrew-rmtree

简单来说就是rmtree可以在卸载某个软件包的同时检查其依赖并卸载
- 安装命令
$ brew tap beeftornado/rmtree
- 使用命令
$ brew rmtree $<软件包>
使用实例



Homebrew Cask

macOS软件安装
macOS安装软件的方式通常有两种
AppStore
日常使用应用程序可以直接通过App Store下载安装使用
dmg
但绝大部分软件并没有在App Store上架,往往我们可以到官网下载dmg文件,然后安装使用
现在又有了一种新的安装方式homebrew cask
介绍




安装
同样我们使用brew可以直接安装
brew install cask

使用
使用 Homebrew 安装 App 非常简单,这里需要用到的是基于 Homebrew 的扩展 Homebrew Cask,具体方法是在「终端」中输入类似下列形式的代码并运行:
brew install <软件名>
brew install --cask <软件名>
这里的「软件名」就是我们所要安装软件的名称,下面列举几个常用软件的安装命令大家就会明白了:
brew install google-chrome安装 Chrome 浏览器brew install alfred安装 Alfredbrew install fliqlo安装屏保程序 Fliqlobrew install dropbox安装 Dropboxbrew install java安装 Java 等开发环境也是可以的
以上几个命令只是简单举例,截止目前,Homebrew Cask 已经收录了近 2100 个软件,足够满足大多数人的需求。如果有的软件不想安装官方正版或者是搜索不到,可以使用如上提到第二种dmg安装方式。
️注意
这里特别指出网络上大部分命令是brew cask install
但是现在命令已经更改,直接使用brew就可以

如图brew cask被解析为无效命令
此外在安装了brew cask后执行搜索命令会列出软件包及应用程序的搜索结果

其他命令可参阅
https://github.com/Homebrew/homebrew-cask
参考及引用
https://zhuanlan.zhihu.com/p/111014448
https://zhuanlan.zhihu.com/p/30704752
https://github.com/beeftornado/homebrew-rmtree
https://github.com/Homebrew/homebrew-cask
转载请注明出处
本文作者:双份浓缩馥芮白
原文链接:https://www.cnblogs.com/Flat-White/p/14463793.html
版权所有,如需转载请注明出处。
【macOS】Homebrew & Homebrew cask macOS软件包管理神器的更多相关文章
- Windows软件包管理工具:Scoop
前言 删库跑路后,Windows系统如何快速安装应用程序,部署环境呢? 以前想过这个问题,最近在安装Hugo时发现使用软件包管理工具可以解决这个问题. 阅读建议 首先需要测试下载速度,尝试从官网下载, ...
- [Linux实践] macOS平台Homebrew更新brew update卡死,完美解决
[Linux实践] macOS 平台 Homebrew 更新 brew update 卡死,完美解决 版本2020.01.05 摘要: 使用brew install [软件包]安装软件包时,卡在Upd ...
- Mac 软件包管理器Homebrew使用指北
Homebrew Homebrew由开发者 Max Howell 开发,并基于 BSD 开源,是一个非常方便的软件包包管理器工具. Homebrew 官网 Homebrew 的几个核心概念 在正式介绍 ...
- Mac安装软件包管理工具Homebrew
PS:最近开始学习groovy,打算去官网下载SDK Bundle,可是官网半天加载不出来,而且莫名其妙就是下载不下来,Folx一直提示 "无效的HTTP相应:禁止",可能是插件和 ...
- Mac Pro 安装 Homebrew 软件包管理工具
Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有 yum,Ubuntu有 apt-get. Mac os 中没有类似的东东,不过有第三方库支持 ...
- Mac OSX上的软件包管理工具,brew 即 Homebrew
brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...
- Mac 系统下类似于 apt-get 的软件包管理器 -- Homebrew
对于一个习惯了在 Ubuntu 的终端上通过 apt-get 来安装工具软件的我来说,也希望在Mac上找到类似的工具,能很方便的一条命令就能安装所需的软件,而不用手工的去查找下载编译,或者是折腾安装所 ...
- mac os x 10.9.1 安装 Homebrew软件包管理工具及brew安装maven3.1.1
Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...
- Mac包管理神器Homebrew
概念 简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,相当于Red hat的yum.Ubuntu的apt-get. 安装命令 ruby -e "$( ...
随机推荐
- JDK环境解析,安装和目的
目录 1. JDK环境解析 1.1 JVM 1.2 JRE 1.3 JDK 2. JDK安装 2.1 为什么使用JDK8 2.1.1 更新 2.1.2 稳定 2.1.3 需求 2.2 安装JDK 2. ...
- redis五种数据类型的应用
redis的五种数据类型和使用场景 string类型 string类型多用于缓存 set key value(value可以为json字符串) setnx多用于分布式锁(后面详细整理) 计数器 inc ...
- 记录PyQt5 学习中遇到的一些问题
1 信号与槽的设置中,槽函数不用写括号: btn.clicked.connect(cao()) def cao(): ******** 会报错:argument 1 has unexpected ...
- 最佳搭档:利用 SSH 及其配置文件节省你的生命
本文转载自最佳搭档:利用 SSH 及其配置文件节省你的生命 导语 SSH 协议是事实上的互联网基石之一.在 SSH 协议出现之前(1995 年由 Tatu Ylonen 设计),通过互联网远程登录其他 ...
- Ajax的基本用法
1.介绍 2.基本用法 2.1原生写法 $.ajax({ url: url, //是否是异步请求,默认是 // async: false, //请求方式,默认是get //type:'get', // ...
- Python Linux 命令行执行脚本输出重定向print到日志文件
reference: https://unix.stackexchange.com/questions/182537/write-python-stdout-to-file-immediately ...
- HTTP常用请求头大揭秘
本文为<三万长文50+趣图带你领悟web编程的内功心法>第四个章节. 4.HTTP常用请求头大揭秘 上面列出了报文的各种请求头.响应头.状态码,是不是感到特别晕呢.这节我们就专门挑一些最常 ...
- WEB容器开启、关闭OPTIONS方法
发现 请求包随意,响应包信息如下: HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Vary ...
- 用go实现常见的数据结构
目录 1 golang常见数据结构实现 1.1 链表 1.2 可变数组 1.3 栈和队列 1.3.1 原生切片实现栈和队列 1.3.1.1 切片原生栈实现 1.3.1.2 切片原生队列实现 1.3.2 ...
- 鸿蒙开源第三方件组件——轮播组件Banner
目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...