开发手册

https://docs.brew.sh/Formula-Cookbook#homebrew-terminology

homebrew cheat sheet

概念

摘要:

  • brew config 列出当前homebrew的配置
  • brew ls 查看已经symkink的包
  • brew edit git 编辑git的安装规则

homebrew所有的包(称为Keg)安装到Cellar目录中,Cellar目录如:/home/cat/homebrew/Cellar.

配置展示:

$ brew config
HOMEBREW_VERSION: 3.2.17-123-g96815c8
ORIGIN: https://mirrors.aliyun.com/homebrew/brew.git
HEAD: 96815c8e60a1bfe398cae7c2385be5c369ff03a8
Last commit: 5 weeks ago
Core tap ORIGIN: https://mirrors.aliyun.com/homebrew/homebrew-core.git
Core tap HEAD: 44973e887e63473dec54c256996e8c65ab8c6eb4
Core tap last commit: 5 weeks ago
Core tap branch: master
HOMEBREW_PREFIX: /Users/xhd2015/homebrew
HOMEBREW_REPOSITORY: /Users/xhd2015/homebrew
HOMEBREW_CELLAR: /Users/xhd2015/homebrew/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://mirrors.aliyun.com/homebrew/homebrew-bottles
HOMEBREW_CASK_OPTS: []
HOMEBREW_CORE_GIT_REMOTE: https://github.com/Homebrew/homebrew-core
HOMEBREW_MAKE_JOBS: 4
Homebrew Ruby: 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: quad-core 64-bit kabylake
Clang: 13.0.0 build 1300
Git: 2.30.1 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.64.1 => /usr/bin/curl
macOS: 11.6-x86_64
CLT: 13.0.0.0.1.1630607135
Xcode: N/A

homebrew将包安装到Cellar目录下,并且会将其中一些symlink到/usr/local下,通过brew ls可以列出symlink的包。

$ brew ls
==> Formulae
aom     gdbm        libidn      mpfr        pcre        telnet
bash        gettext     libidn2     mutagen     pcre2       texi2html
blueutil    gmp     libmpc      nasm        pkg-config  thrift
boost       gnu-getopt  libpcap     nginx       python      wget
coreutils   groovy      libpng      ninja       python@3.8 xz
freetype    icu4c       libtool     node        readline
fzf     isl     libunistring    oniguruma   ripgrep
gawk        jq      meson       openssl     sqlite
gcc     libffi      minicom     openssl@1.1    tcpdump==> Casks
emacs-mac   macfuse

通过brew edit git或者HOMEBREW_EDITOR=code brew edit git可以打开vscode编辑git的Formula:

创建Formula

如果你的有一个tarball包含了所有的内容,需要打包:

brew create https://example.com/foo-0.1.tar.gz

会创建一个formula:

class Foo < Formuladesc ""homepage ""url "https://example.com/foo-0.1.tar.gz"sha256 "85cc828a96735bdafcf29eb6291ca91bac846579bcef7308536e0c875d6c81d7"license ""# depends_on "cmake" => :builddef install# ENV.deparallelizesystem "./configure", "--disable-debug","--disable-dependency-tracking","--disable-silent-rules","--prefix=#{prefix}"# system "cmake", ".", *std_cmake_argssystem "make", "install"endtest dosystem "false"end
end

提交

brew update可用于将本地安装的homebrew转换成git仓库,并且更新。

brew update # required in more ways than you think (initialises the brew git repository if you don't already have it)
cd "$(brew --repository homebrew/core)"
# Create a new git branch for your formula so your pull request is easy to
# modify if any changes come up during review.
git checkout -b <some-descriptive-name> origin/master
git add Formula/foo.rb
git commit

push:将你的更改提交到自己的仓库

git push https://github.com/myname/homebrew-core/ <what-you-called-your-branch>

homebrew的基本结构和扩展使用相关推荐

  1. struct结构体扩展-成员函数

    struct结构体扩展-成员函数 在C++中,允许在结构中定义函数,该函数被称为成员函数,描述形式如下: struct 结构名{数据成员成员函数 } 例题描述: 输入n个学生的信息,每个学生信息包括姓 ...

  2. 选择结构_扩展if-else语句

    判断语句3--if..else if...else if语句第三种格式: if...else if ...else if (判断条件1) {执行语句1; } else if (判断条件2) {执行语句 ...

  3. kicad 排针_xconch: 神奇海螺,是时候该结束开发板裸奔的时代了。采用堆叠设计,拥有漂亮外观及超强扩展性。一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY。...

    神奇海螺 简介 是时候该结束开发板裸奔的时代了.采用堆叠设计,拥有漂亮外观及超强扩展性.一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY. 名称的由来 神奇海螺,源自网友word天lym ...

  4. C++:将char*指针强制转换成一个指向结构体的指针

    在使用Socket与雷达进行通信采集数据时,会遇到"打包与解包"的问题,在打包和解包过程中,会涉及到结构体指针与字符指针间的强制转换.如下: 打包就是将包头与信息封装成一定大小的包 ...

  5. 简单几步写一个laravel扩展包

    为什么80%的码农都做不了架构师?>>>    laravel使用composer来管理扩展包,理解composer和laravel的开发模式,可以通过简单的几个步骤,快速写出一个l ...

  6. 关于python中程序流程结构-Python语言程序设计(第4章:程序结构设计)

    4.1 算法 [1]计算机程序可视为数据结构和算法的集成,这种集成体现为以下两方面的内容:数据是程序实现的基础:算法要依靠程序来完成功能. [2]算法的特点:有穷性:确定性:零个或多个输入:一个或多个 ...

  7. 【php7扩展开发一】注册一个内部函数hello world

    通过扩展可以将C语言实现的函数提供给PHP脚本使用,如同大量PHP内置函数一样,这些函数统称为内部函数(internal function),与PHP脚本中定义的用户函数不同,它们无需精力用户函数的编 ...

  8. .NET或将引入类型类和扩展

    类型类是另外一项正被考虑引入.NET未来版本的特性.在提案"外观和扩展(Shapes and Extensions)"中,该特性被称为外观,它们将大幅提升.NET泛型的能力.Mad ...

  9. b/s c/s结构的区别!

    1 引言 散进散出货物或者称为大宗入出库货物的管理是综合仓库管理的主要内容??1??2??.目前,随着信息技术和网络技术的发展,"信息高速公路"建设已在全球拉开序幕,传统的Clie ...

最新文章

  1. hibernate正向生成数据库表以及配置——Student.java
  2. Flink再度霸榜,还不上车?
  3. mxnet自定义训练日志
  4. 据库专家Michael Stonebraker获得2014年图灵奖
  5. RedHat7.0启动后黑屏
  6. 计算机网络部分(共44题),计算机网络原理2013年4月真题及答案
  7. NLP数据挖掘基础知识
  8. 数据库选项--自动更新统计
  9. uoj #111. 【APIO2015】Jakarta Skyscrapers
  10. Ubuntu升级wine4.0
  11. [算法竞赛入门]WERTYU
  12. Atitit 价值观与理念总结 Diy自力更生尽可能 提高独立性 减少依赖 大而全优先于小而美 适度分权防止集权导致大决策失误 方式多种多样 综合是王道 简单快速优先 努力实现人们喜闻乐见的服务 信
  13. android 下载服务器的txt文档
  14. 中国电信运营商布局云计算“赛道”面临三大挑战
  15. 节奏大师小游戏制作流程
  16. win10无线信号强度测试软件,WinFi Lite(WIFI分析工具) V1.0.15.0 官方版
  17. m4a转wav格式方法和步骤
  18. STM32 CAN总线故障检测功能的使用
  19. Python-jQuery
  20. VM虚拟机连接服务器

热门文章

  1. 在图表上快速检验交易理念
  2. 搬运工系列 - 瞎扯淡
  3. 汽车UDS诊断之诊断设备在线服务(0x3E)深度剖析
  4. 让Cnskype for business成为企业的好帮手
  5. Git恢复之前版本的两种方法reset、revert(图文详解)
  6. 【论文阅读】GA-RPN:Region Proposal by Guided Anchoring
  7. 数字天堂陷入困境_我如何以软件开发人员身份陷入困境,以及如何做到这一点...
  8. 14万天价找“游戏女陪玩”,表白被拒,男主起诉要求退还礼物费?
  9. fiddler抓取Android手机app发送的请求
  10. Android基础#35:Android如何获得手机版本信息?