当前位置: 首页 > news >正文

HomeBrew及HomeBrew Cask的简介和使用

前言:

     最近在Mac终端上安装SVN时用到了HomeBrew工具,虽然常用,但平时没有过多了解,特翻阅了资料总结一下,以便遗忘.

目录结构:

  1. 什么是HomeBrew

  2. HomeBrew的主要用途

  3. HomeBrew的安装/卸载

  4. HomeBrew的使用

  5.HomeBrewCask介绍

  6.HomeBrewCask安装

  7.HomeBrewCask使用

  8.HomeBrewCask原理
  9.先关注意点

正文:

 1. 什么是HomeBrew?

  * 官方解释: Homebrew是以最简单,最灵活的方式来安装苹果公司在MacOS中不包含的UNIX工具。 

      * 通俗解释:   Homebrew 是Mac的OS X上的软件安装管理工具,用以简化 macOS 上的软件安装过程,拥有安装、卸载、更新、查看、搜索等很多实用的功能。可以类比于   Windows 上软件管家的一键安装。 简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。Homebrew 在 2009 年由马克斯·霍威尔(Max Howell)写成,它在 GitHub 上拥有大量贡献者,目前仍处于活跃状态。

      * 官网介绍: 传送门
      * Git仓库:   传送门

  2. HomeBrew的主要用途?  

   正如上面所说的用以简化 macOS 上的软件安装过程,拥有安装、卸载、更新、查看、搜索等很多实用的功能.

  3. HomeBrew的安装/卸载? 

  • 安装

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

    $ cd `brew --prefix`
    $ rm -rf Cellar
    $ brew prune
    $ rm `git ls-files`
    $ rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
    $ rm -rf .git
    $ rm -rf ~/Library/Caches/Homebrew

  4. HomeBrew的使用?

  • 安装任意包

    $ brew install <packageName>

    示例:安装node

    $ brew install node
  • 卸载任意包

    $ brew uninstall <packageName>

    示例:卸载git

    $ brew uninstall git
  • 查询可用包

    $ brew search <packageName>
  • 查看已安装包列表

    $ brew list
  • 查看任意包信息

    $ brew info <packageName>
  • 更新所有软件

    $ brew update 
  • 更新具体软件

  • $ brew upgrade 软件名
  • 显示包依赖
  • $ brew reps
  • 显示安装的软件服务

    brew info/home 软件名
    

    示例:

    brew info git / brew home git
    

     

  • 显示安装的服务

    brew services list
  • 安装服务启动,停止,重启

    brew services start/stop/restart serverName
  • 查看Homebrew版本

    $ brew -v
  • Homebrew帮助信息

    $ brew -h      

  5. HomeBrewCask介绍

  Homebrew Cask 是 Homebrew 的扩展,借助它可以方便地在 macOS 上安装图形界面程序,即我们常用的各类应用。

  Homebrew 中文含义为自制、自酿酒,Cask 中文含义为桶、木桶,桶装酒是一种成品,也就是说每一个 homebrew cask 都可以直接使用的,比如 Atom 的 Cask 名称为 atom,那么就可以使用如下命令安装:
      

brew cask install atom

      甚至也可以提交新的 Cask,比如假设有桌面客户端少数派,则用 brew cask create sspai 创建新的名称为 sspai 的 Cask,当然还要提供官网下载链接、官方主页、应用版本等信息,可以参照 官方教程,此处就不再细说。

  6. HomeBrewCask安装

      安装:

brew tap phinze/homebrew-cask
brew install brew-cask

  7. HomeBrewCask使用

brew cask install 应用名称
brew cask install <甲应用名称> <乙应用名称> <丙应用名称>

前文已经讲过这个安装命令,但一个问题是:如何确认它支持所要安装的应用?

brew cask search 关键字

比如要确定是否支持应用 gooooooogle,可搜索关键字 goo,即可显示所有包含 goo 的应用。如果不加关键字,会显示出所有支持的应用名称。



由于 Homebrew Cask 还不支持更新应用,故建议使用应用自带的方式进行更新。欲要查看其他命令,可在终端执行 brew cask help 以显示所有 commands,比如发现查看应用 Cask 信息的命令是 info,则在终端执行 brew cask info 应用名称 即可显示该应用信息。

8.Homebrew Cask 原理

  用软链接的方式将应用链接到 Application 文件夹,有人说这样的方式会导致 Spotlight 无法检索到。但现在,它是将应用直接移动到 Application 文件夹,这与我们自己去官网下载应用再安装是完全一致的,后续更新或卸载也按平常的方式即可。

当然,也可以用 brew cask uninstall 应用名称的方式,这种方式才会删除路径 /usr/local/Caskroom中保留的应用信息文件,这样当我们用命令 brew cask list查询已安装列表时,已卸载的应用才不会仍显示。也就是说,如果按照平常的方式,比如直接移到废纸篓,那么还需手动删除 Caskroom 中的应用信息文件。当然,不删除也没啥影响,因为一般没必要查看已安装列表,已安装应用在 Launchpad 中查看就好。

9.相关注意

  在Mac OS X 10.11系统以后,/usr/local/等系统目录下的文件读写是需要系统root权限的,以往的Homebrew安装如果没有指定安装路径,会默认安装在这些需要系统root用户读写权限的目录下,导致有些指令需要添加sudo前缀来执行,比如升级Homebrew需要:

 

$ sudo brew update

 

  如果你不想每次都使用sudo指令,你有两种方法可以选择:

* 对/usr/local 目录下的文件读写进行root用户授权

$ sudo chown -R $USER /usr/local

示例:

$ sudo chown -R gaojun /usr/local

* (推荐)安装Homebrew时对安装路径进行指定,直接安装在不需要系统root用户授权就可以自由读写的目录下

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

 

转载于:https://www.cnblogs.com/lxlx1798/p/10081506.html

相关文章:

  • Python开发环境配置
  • 什么是Word Embeddings
  • 深度学习【一】理解神经网络
  • 微服务核心架构梳理
  • PostgreSQL checksum
  • 关于在vim中的查找和替换
  • Vuex的初探与实战小结
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 表格单元格td设置宽度无效的解决办法
  • python基础-数据类型
  • 【FPGA】Xilinx-7系的时钟资源与DDR3配置
  • 谈项目中如何选择框架和库(FEDAY主题分享总结)
  • 如何做线段绕着点旋转一定角度的动画
  • python写商品管理练习
  • React组件设计模式(一)
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Bytom交易说明(账户管理模式)
  • CSS魔法堂:Absolute Positioning就这个样
  • gf框架之分页模块(五) - 自定义分页
  • JDK 6和JDK 7中的substring()方法
  • Map集合、散列表、红黑树介绍
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Vue2.0 实现互斥
  • 阿里云应用高可用服务公测发布
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 三分钟教你同步 Visual Studio Code 设置
  • 试着探索高并发下的系统架构面貌
  • 线性表及其算法(java实现)
  • ###C语言程序设计-----C语言学习(3)#
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (12)Linux 常见的三种进程状态
  • (3)(3.5) 遥测无线电区域条例
  • (8)STL算法之替换
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (接口自动化)Python3操作MySQL数据库
  • (四)图像的%2线性拉伸
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET开发人员必知的八个网站
  • .net下简单快捷的数值高低位切换
  • .NET中使用Protobuffer 实现序列化和反序列化
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [AIGC 大数据基础]hive浅谈
  • [AIGC] 如何建立和优化你的工作流?
  • [Android] Implementation vs API dependency
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [BZOJ2208][Jsoi2010]连通数
  • [BZOJ4016][FJOI2014]最短路径树问题