您当前的位置: 首页 >  macos

liaowenxiong

暂无认证

  • 1浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MacOS 的软件包管理工具 HomeBrew 详解

liaowenxiong 发布时间:2021-07-23 22:00:03 ,浏览量:1

文章目录
  • 一、软件介绍
  • 二、安装 Homebrew
    • 使用 Ruby 或者 Shell 脚本安装
    • 手动 clone 安装
  • 三、卸载 Homebrew
  • 四、Homebrew 安装目录
  • 五、安装包所在位置
  • 六、程序安装目录
  • 七、软件版本切换
  • 八、清除旧版本文件
  • 九、brew 命令汇总
    • 安装、升级和删除软件包
    • 查看和检验软件包
    • 参考示例
    • 服务相关
    • 故障排除
    • 执行其它功能
  • 十、使用 brew 安装常用软件
  • 十一、brew cask 命令汇总(命令全部作废)
    • 安装、升级和删除软件包
    • 查询和检验软件包
    • 执行其它功能
  • 十二、参考文章

一、软件介绍

Homebrew 是一款 Mac OS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。

Homebrew 的主命令是 brew,该命令安装软件是直接下载程序源码然后编译安装,并自动做好必要的配置(如环境变量等)。并且,在安装软件之前,会先安装脚本里指明的相关依赖库。

brew 的底层命令其实是 ./configure && make install

The 3.5.0 release notes are available on the Homebrew Blog: https://brew.sh/blog/3.5.0 The 3.5.6 changelog can be found at: https://github.com/Homebrew/brew/releases/tag/3.5.6

二、安装 Homebrew 使用 Ruby 或者 Shell 脚本安装

找了一堆资料,都说执行如下命令语句(也就是HomeBrew官网推荐的安装方式):

配置了环境变量,直接在命令终端输入下面的命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

没有配置环境变量则输入下面的命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果 MacBook 没有 /usr/bin/ruby 这个程序,怎么搞?可以尝试下面这条命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

或者

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

结果执行命令语句就直接报错,如下:

curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443 

原因:这是外网,无法正常访问服务器

如果有 VPN 的用户可以尝试以上方式下载安装。没有 VPN 的国内用户可以使用以下的方式下载安装 HomeBrew(亲测有效):

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

有个家伙推荐以下方式安装 HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"

我没有试过,我的电脑根本没有 /usr/bin/ruby 这个程序,搞啥呢?

该脚本用了中科大镜像加速访问,仅修改仓库地址部分,不会产生安全隐患。

关于中科大所提供的 Homebrew 镜像服务请点击以下链接查看: https://lug.ustc.edu.cn/wiki/mirrors/help/brew.git

手动 clone 安装

详见请猛戳《手动 clone 安装 Homebrew》

三、卸载 Homebrew

使用中科大镜像的 Shell 脚本卸载:

/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall.sh)"

使用中科大镜像的 Ruby 脚本卸载:

/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall)"
四、Homebrew 安装目录

Homebrew 的安装目录,即 Homebrew 本身的程序文件所在位置。我们通过 which brew 命令,可以发现 brew 命令的可执行文件的路径为 /usr/local/bin/brew,它其实是一个指向 /usr/local/Homebrew/bin/brew 的软链接:

lwxdeMacBook-Air:local lwx$ ls -l bin/brew
lrwxr-xr-x  1 root  admin  28  2  4 21:06 bin/brew -> /usr/local/Homebrew/bin/brew

/usr/local/Homebrew/bin/brew 是个 shell 脚本。用文本编辑软件打开,可以发现它实际上是读取系统使用的 ruby 的路径,来执行 /usr/local/Homebrew/Library/Homebrew/brew.rb

Homebrew 软件本身的各个文件全部 在 /usr/local/Homebrew/ 目录下,其实每个 brew 命令都是一个个的 ruby 脚本,所有命令的 ruby 脚本文件都在目录 /usr/local/homebrew/library/homebrew 下,brew search 就是 /usr/local/homebrew/library/homebrew/search.rb

每个使用 brew 安装的软件都有一个对应的 ruby 脚本,我们称为 Formulabrew install 安装命令其实就是读取这个脚本里的配置,下载源码,然后运行配置里写好的编译安装命令。这些脚本放在 /usr/local/homebrew/library/taps/homebrew/homebrew-core/formula 下,使用 brew update 从 github 拉取最新版本的 brew 时,会在命令行运行结束后看到提示,哪些软件有版本更新,新增了哪些软件。

五、安装包所在位置

Homebrew 下载后的软件包放在哪里?网上说存放在/Library/Caches/Homebrew 目录下,我查过了,并没有该目录。所以我也不知道,肯定是在某个目录下。

当你用 brew reinstall 重新安装该版本,就不需要重新下载了,它会直接使用已下载的软件进行安装。另外,随着时间推移,缓存的安装包文件越来越多,记得使用命令 brew cleanup 进行清理。

六、程序安装目录

HomeBrew 下载的软件的安装目录为:

/usr/local/Cellar///

源码编译完成后,生成的文件都会放在这里,如果是直接下载的可执行文件,也会直接放在这里。每个版本的软件都会放在对应版本名称的文件夹下。

一般的软件可能会包含可执行文件、供其它库使用的头文件、运行库、文档等文件或目录,为了方便升级管理。brew 会把这些文件或目录分别软链接到下面的目录中:

/usr/local/bin/
/usr/local/include/
/usr/local/lib/
/usr/local/share/ 
...

如果你用 brew upgrade 更新过几次该软件,你所有安装过的版本都会在 /usr/local/Cellar// 目录下找到。每次升级时,brew 都是先把编译好的可执行文件等存放在当前版本目录下,撤销之前版本的软链接,然后在目录 /usr/local 下创建指向新版本的软链接,这样,我们就会使用到最新版本了。

七、软件版本切换

HomeBrew 更新后的版本不会自动删除,即更新后的软件会有多个版本,所以我们可以通过命令 brew switch 来切换使用软件的某个具体版本。例如:

brew swith autojump 22.1.4
八、清除旧版本文件

时间久了,你的安装文件会越来越多,那么在 /usr/local/Cellar//Library/Caches/Homebrew 这两个目录下的旧版本软件文件会越来越多,这时候可以用 brew cleanup 清理掉不想用的旧版本,这样会会节省出来大量硬盘空间。如果你不想直接删掉,可以使用 brew cleanup -n 命令,它相当于预演一下,告诉你真正运行 brew cleanup 时会干些什么,而不会真正执行。检查完毕确定可以删除后,你再 brew cleanup 就安全多了。brew 的很多命令都支持 -n 参数,也就是 --dry-run 参数,这些就需要你自己去翻文档了。

九、brew 命令汇总 安装、升级和删除软件包 命令说明brew install安装指定的软件包brew uninstall卸载指定的软件包brew update更新软件包列表brew upgrade升级指定的软件包brew cleanup清理老版本。使用 -n 参数,不会真正执行,只是打印出真正运行时会做什么 查看和检验软件包 命令说明brew list列出所有已通过 brew 命令安装的软件包brew list --versions查看你安装过的包列表(包括版本号)brew list --versions 查看已安装的 formual 的版本信息brew search通过关键字搜索可供安装的软件包,也可以使用正则表达式匹配查找相关的软件包,如 brew search /text//text/ 则是匹配字符串“text”的正则表达式brew info查看软件包的简要信息brew outdated查看哪些已安装的程序需要更新brew deps显示包依赖brew --prefix查看 homebrew 的安装路径brew --repo显示 Homebrew 的 git 存储库所在的位置 参考示例

启动 MySQL 服务:

brew services start mysql # macOS重启后也会启动MySQL服务

停止 MySQL 服务:

brew services stop mysql # 停止MySQL服务后,系统重启就不会自动启动MySQL服务了
服务相关 命令说明brew services list 显示安装的服务brew services start/stop/restart 启动、停止、重启使用 brew 安装的服务 故障排除 命令说明brew configbrew doctor运行 HomeBrew 医生,查看警告文件brew install --verbose --debug以调试模式安装指定的软件包 执行其它功能 命令说明brew link 将指定软件的当前最新版本软链到 /usr/local 目录下,即在该目录下创建符号链接文件,指向该软件的最新版本brew unlink 将指定软件在 /usr/local 目录下的软链接删除brew switch 切换使用软件的某具体版本。比如,brew swith autojump 22.1.4

注:更多使用说明请输入命令 man brew 查看。

十、使用 brew 安装常用软件
brew install alfred
brew install the-unarchiver
brew install qq
brew install line
brew install skype
brew install thunder
brew install mplayerx
brew install evernote
brew install skitch
brew install dropbox
brew install google-chrome
brew install mou
brew install iterm2
brew install sublime-text
brew install virtualbox
十一、brew cask 命令汇总(命令全部作废)

下面的命令把 brew cask 替换成 brew 即可。

安装、升级和删除软件包 命令说明brew cask uninstall卸载指定的软件包brew cask installinstalls the given Cask. 安装指定的软件包brew cask reinstallreinstalls the given Cask. 重新安装指定软件包brew cask upgradeupgrades all outdated casksbrew cask zapzaps all files associated with the given Cask. 清除与给软件包相关的所有文件 查询和检验软件包 命令说明brew cask search查找指定关键词相关的软件包brew cask infodisplays information about the given Caskbrew cask listwith no args, lists installed Casks; given installed Casks, lists staged filesbrew cask outdatedlist the outdated installed Casks. 查看哪些软件包需要更新 执行其它功能 命令说明brew cask auditverifies installability of Casksbrew cask catdump raw source of the given Cask to the standard outputbrew cask createcreates the given Cask and opens it in an editorbrew cask doctorchecks for configuration issues. 检查配置问题brew cask editedits the given Caskbrew cask fetchdownloads remote application files to local cache. 将远程应用程序文件下载到本地缓存brew cask homeopens the homepage of the given Caskbrew cask stylechecks Cask style using RuboCop 十二、参考文章
  1. Mac 安装 Homebrew 的正确姿势
  2. Mac 镜像飞速安装 Homebrew 教程
  3. Mac 安装 Ruby 和 Homebrew 看过来
  4. Mac 安装 Homebrew 失败怎么办
  5. Homebrew 国内如何自动安装
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0976s