Homebrewのためのもう一つのカンニングペーパー(2022)


本質概念


どのような自作?


Homebrew 強力なパッケージマネージャです.それはあなたのdevを大幅に楽にすることができます.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
一度実行すると実行されますbrew そして、あなたはHomebrewの様々な組み込みコマンドを学ぶためにヘルプメニューを取得する必要があります.もしそうならば、あなたは現在あなたのマシンでパッケージを管理するために一連のコマンドラインを使うことができます.

HomebrewはMac専用ソフトウェアですか?


MacOS用の特別な設定や拡張子があっても、まったくではありません.
Homebrewは利用可能ですLinux も.Windowsユーザはそれを使用することができますが、WSL(Linux用サブシステム)だけで使用できます.

Homebrewはシンボリックリンクを使う


場面の後で、homebrewはシンボリックリンクを作ります.そして、それは簡単にターミナルでパッケージからサードパーティのコマンドを使用することができます.

どのような自家製の数式ですか?


エーformula 「ソフトウェアをインストールするHomebrewのための指示とメタデータを提供する」Rubyスクリプトです.
技術的には、Homebrew公式はFormula . Homebrewはパッケージ定義のためにそれらを使用します.

「樽」とは何か


コマンドを見たかもしれませんbrew install --cask tor-browser . 自作用途cask 様々なライセンスに対処し、グラフィカルなアプリケーションと対話する.
それは特にドラッグして、それらにドロップすることなく、端末からアプリをインストールするのに便利です/Applications/ ディレクトリ.
技術的には、樽はan extension of Homebrew しかし、手動でインストールする必要はありません、それはすでにhomebrewでパックされています.

何が“タップ”ですか?


Taps Githubのような代替ソースから式をインストールするのに便利です.あなたが使うときbrew tap <FORMULA> , HomebrewそれはデフォルトでGithubから来ますが、他の場所を指定することができます:
brew tap [options] [user/repo] [URL]

どのようなバンドルですか?


バンドルはHomebrew、homebrewキャスク、Mac App Storeとwhalebrewから非Ruby依存性を扱う.すべてのバンドルをすばやく一覧表示できます.
brew bundle list
または
less ~/Brewfile
技術的にはan extension of Homebrew しかし、手動でインストールする必要はありません、それはすでにhomebrewでパックされています.
MacOSでソフトウェアをインストールするにはかなりエレガントな方法です.

なぜHomebrew力は更新されますか?


あなたが走らなかった間、それはいくつかのパッケージを更新していますbrew update or brew upgrade . たとえば、新しいパッケージをインストールするときに、Homebrewは、必要な/時代遅れの依存関係を追加/削除するためにライブラリを分析し、物事を一貫性を保つ.

基本コマンド


すべての利用可能なコマンドを表示する


brew commands
かなりクールなツールを学ぶために!

数式をインストールする


brew install <FORMULA>

公式をアンインストールする


brew uninstall <FORMULA>

特定の式の情報を表示する


brew info <FORMULA>

与えられた公式のホームページを表示する


brew home <FORMULA>
ホームページURLはパッケージのメタデータで指定されたものです.
class Git < Formula
  desc "Distributed revision control system"
  homepage "https://git-scm.com"

検索パッケージ


brew search <KEYWORD>
かなり自己説明が、また、regexや興味深いオプションなどを使用することができます--archlinux あなたの検索を与えられたデータベースに制限するために.

リストを含むすべての数式を含む


brew list
使えますbrew list --casks を指定する.

利用可能な更新の一覧


brew outdated

アップデート対アップグレード

brew update 一方、Homebrew自体を含む更新すべてbrew upgrade インストール済みの式のみ更新します.
また、特定の式だけでアップグレードすることができますてbrew upgrade <FORMULA> .

クリーニングスタッフ


古いダウンロードは次のコマンドでクリーンできます.
brew cleanup 

Remove stale lock files and outdated downloads for all formulae and casks, and remove old versions of installed formulae.


これは、デフォルトで120日以上のすべてのダウンロードを削除します.
ほとんどの場合、コマンドは安全ですが、--dry-run オプションを使用すると、それを実行する代わりに削除されるものを視覚化することを確認していない場合.
また、特定の式のみをクリーンできます.
brew cleanup <FORMULA>

もう少し高度な利用


ピン/ピン

pin は、一般更新を実行するときに自動的にパッケージをアップグレードするhomebrewを防ぐために使用されます.
brew pin <FORMULA>
用途unpin この例外を削除するには、次の手順に従います
brew unpin <FORMULA>

リンク、アンリンク、またはリンク

brew link <FORMULA> シンボリックリンクをカスタマイズできます.必要に応じてのみ使用してください.Homebrewで作成した既存のシンボリックリンクを削除するにはbrew unlink <FORMULA> .
また、使用することができますbrew unlink <FORMULA> && brew link <FORMULA> 式を再リンクする.

リストをすべてタップ


brew tap

タップを取り除く


brew untap --force <TAP>

キャッシュディレクトリ


brew --cache

強制キャッシュ削除


rm -rf "$(brew --cache)"

トラブルシューティング:設定対医師

brew doctor 迅速な診断を実行しますbrew config デバッグ用のhomebrewとシステム構成情報を表示します.

エキスパートモード🥷🏻


バンドルをインストールする


brew bundle install

すべての飲み物エントリのリストをエクスポート


brew bundle dump
上記のコマンドは他のマシンで再利用できるBrewfileを生成します.デフォルトでは、ファイルは$USER フォルダが、カスタムディレクトリを指定することができます--file オプション.

クリスマス

mas ターミナルから直接App StoreからMacアプリをインストールすることができます:
brew install mas
すべての特定のコマンドはmas . すべてのアプリケーションをインストールmasBrewfile .

公式を印刷する


brew cat <FORMULA>

数式を編集する


brew edit <FORMULA>

表示情報を高める


brew info --json=v1 <FORMULA> | jq .

カスタム数式の作成


あなたはcook 独自式
class MyFormula < Formula
  desc "My Formula"
  homepage "https://mywebsite.com"
  url "https://example.com/foo-0.1.tar.gz"
  sha256 "85cc828a96735bdafcf29eb6291ca91bac846579bcef7308536e0c875d6c81d7"
  license "MIT"

  # depends_on "cmake" => :build

  def install
    # ENV.deparallelize
    system "./configure", "--disable-debug",
                          "--disable-dependency-tracking",
                          "--disable-silent-rules",
                          "--prefix=#{prefix}"
    # system "cmake", ".", *std_cmake_args
    system "make", "install"
  end

  test do
    system "false"
  end
end