レッスン2: 発展的なテクニック
外部リポジトリをタップして追加パッケージを利用する
Homebrewのデフォルトリポジトリには様々なパッケージが含まれていますが、時にはデフォルトリポジトリに含まれていない追加のパッケージにアクセスする必要がある場合があります。
このような場合には外部リポジトリが役立ちます。
外部リポジトリをHomebrewに追加するには、brew tap
コマンドに続けてリポジトリのURLを指定します。
例えば、追加フォントのためにcaskroom/fontsリポジトリを追加するには、次のように実行します:
brew tap homebrew/cask-fonts
外部リポジトリを追加した後は、通常通りbrew search
とbrew install
コマンドを使用してリポジトリからパッケージを検索してインストールすることができます。
Homebrewパッケージを自作する
Homebrewパッケージとしてまだ提供されていないソフトウェアがある場合、Homebrew フォーミュラを使って独自のパッケージを作成することができます。
フォーミュラとは、パッケージのインストールや設定の方法を記述した Ruby スクリプトのことです。 フォーミュラを書くのは少し面倒ですが、よく使うパッケージのフォーミュラを作ったり、公式の Homebrew フォーミュラリポジトリにフォーミュラをコントリビュートしたりするととても役に立ちます。 公式の Homebrew フォーミュラリポジトリは https://github.com/Homebrew/homebrew-core にあります。
自分でフォーミュラを書くためには、Homebrew Formula Cookbook (https://docs.brew.sh/Formula-Cookbook) が参考になります。 これはフォーミュラの書き方に関する詳細な情報を提供するもので、様々なフォーミュラの例も掲載されています。
ここでは、例としてexample
という架空のパッケージのフォーミュラを示します:
class Example < Formula
desc "Example package for Homebrew"
homepage "https://example.com/"
url "https://example.com/example-1.0.tar.gz"
sha256 "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
def install
system "./configure", "--prefix=#{prefix}"
system "make", "install"
end
end
Homebrewをより有効に使うための使い方
ここでは、Homebrewを有効に使うための使い方をさらに紹介します:
brew doctor
を使用してHomebrewの問題を診断し、アドバイスに従って問題を解決する
brew doctor
コマンドは、インストールされた Homebrew に関する一般的な問題をチェックし、それを修正するための提案を示します。
brew cleanup
を使用して、古いパッケージや未使用のパッケージを掃除する
brew cleanup
コマンドは、不要になった古いバージョンのパッケージとその依存関係を削除します。
brew link
と brew unlink
を使って、パッケージをシステムでリンク/アンリンクさせる
これは、一部のパッケージを正しく動作させるために必要なものです。 例えば、[email protected]パッケージをインストールし、それをデフォルトのPythonバージョンとして使いたい場合、次のようにしてシステムでリンクさせます:
brew link [email protected]
逆に、リンクを解除して代わりに別のバージョンのPythonを使いたい場合は、以下を実行します:
brew unlink [email protected]
パッケージのリストを管理するためにBrewfileを使う
Brewfile は、Homebrew を使ってインストールまたはアップデートしたいパッケージの一覧を記したテキストファイルです。
Brewfile は brew bundle dump
コマンドを使って生成することができます。
brew bundle dump
コマンドは現在インストールされている全てのパッケージの一覧を示すファイルを作成します。
Brewfileに記載されているパッケージは brew bundle install
コマンドでインストールすることができます。
まとめ
このコースが役に立って、Homebrewを使ってMacでパッケージを管理することに慣れていただけたらうれしいです。 もし何かフィードバックがあればぜひ教えてください。Happy brewing!