Mac OS下用Homebrew安裝自己寫的開源工具

小米運維發表於2018-11-14

本文主要介紹了適用於Mac OS系統的一款軟體包管理工具Homebrew,並詳細說明了新建Formula的步驟。
上篇文章回顧:Nginx動態發現方案與實踐

1、Homebrew 介紹

Homebrew[1]是一款 Mac OS 平臺下的軟體包管理工具,擁有安裝、解除安裝、更新、檢視、搜尋等很多實用的功能。簡單的一條指令,就可以實現包管理,而不用你關心各種依賴和檔案路徑的情況,十分方便快捷。Homebrew 可以說已經成為使用 Mac 電腦程式設計師的標配。做為開源軟體的貢獻者,本文將向大家介紹一下如何能夠讓自己的開源專案通過 Homebrew 進行軟體包管理。

brew install foo複製程式碼

2、Formula VS. Cask

Homebrew 支援多種形式的軟體包管理,常見的有 Formula 和 Cask 兩種。Formula 一般用來原始碼編譯安裝開源的命令列工具,Cask 一般用來安裝支援UI的應用程式。官方 Formula 對應的 Github 專案為 homebrew-core[2], Cask 對應的 Github 專案為homebrew-cask[3]。建議先 Fork 相應的 Git 專案到自己的賬號下再新增新的工具。文章篇幅所限,本文只會介紹 Formula 的建立使用方法,Cask 的建立方法類似。

Mac OS下用Homebrew安裝自己寫的開源工具

3、新建 Formula 步驟

1、本地 Git 倉庫準備

cd `brew --repo`/Library/Taps/homebrew/homebrew-core
git remote add ${your_github_id} https://github.com/${your_github_id}/homebrew-core.git
git fetch ${your_github_id}
git checkout -b ${your_github_id} ${your_github_id}/master複製程式碼

2、新建 Formula 指令碼檔案

# 執行該命令後將自動在 Formula 目錄下建立一個名為foo.rb的檔案,文字編輯器也會自動開啟該檔案。
brew create foo複製程式碼

Mac OS下用Homebrew安裝自己寫的開源工具

3、編輯 Formula 檔案

Mac OS下用Homebrew安裝自己寫的開源工具

4、測試安裝

# 安裝
brew install foo
# 下載原始碼安裝而不是下載編譯好的 bottle 版本,下面連結是對 bottle 的介紹
# https://docs.brew.sh/Bottle
brew reinstall --build-from-source foo
# 檢查 Formula 指令碼格式,超好用的 linter 工具
brew audit --strict foo複製程式碼

5、提交程式碼等待 PR 合併

Homebrew 的社群相當活躍,一般 PR 提交24小時內就能得到專案維護人的回覆。為了讓自已寫的工具儘快被收錄,建議提交 PR 前認真閱讀 Issue Template,並按照建議修改。下面是官方提供的 PR 建議。

- [ ] Have you followed the [guidelines for contributing](https://github.com/Homebrew/homebrew-core/blob/master/CONTRIBUTING.md)?
- [ ] Have you checked that there aren`t other open [pull requests](https://github.com/Homebrew/homebrew-core/pulls) for the same formula update/change?
- [ ] Have you built your formula locally with `brew install --build-from-source <formula>`, where `<formula>` is the name of the formula you`re submitting?
- [ ] Does your build pass `brew audit --strict <formula>` (after doing `brew install <formula>`)?複製程式碼

參考連結

[1] https://brew.sh/

[2] https://github.com/Homebrew/homebrew-core

[3] https://github.com/Homebrew/homebrew-cask

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

[5] https://docs.brew.sh/Formula-Cookbook

[6] https://github.com/Homebrew

本文首發於公眾號“小米運維”,點選檢視原文

相關文章