本記事の目的
Homebrewのパッケージインストール手順の説明記事は多くあるのですが,各コマンドの意味を含めた詳細な手順が見つからなかったので,自分用備忘録として記事にしました.
つまり完全初心者向きです.
間違いなどありましたら,どうぞご指摘ください.
本記事の動作環境
- macOS Mojave v10.14
- ターミナル v2.9 (421)
What is Homebrew?
HomebrewはMac用のパッケージマネージャーです.
通常ではパッケージのをアップデートなどする場合,対象パッケージをGithubなどからCloneなどして使用します.
しかし使用するパッケージが増えると,各パッケージを個別に管理するのが非常に手間となります.
パッケージマネージャーを導入することでこれらのパッケージ群を一括管理可能にし,パッケージ管理の手間を大幅に削減してくれます.
パッケージマネージャーには他にMacPorts, Finkなどがありますが,Homebrewはこの中では比較的新しいパッケージマネージャーです.
本記事では各パッケージマネージャーの比較はしませんが,パッケージマネージャー選びの参考までにGoogleトレンドをリンクしておきます.
各パッケージマネージャー トレンド比較
Homebrew, MacPorts, Fink - 調べる - Google トレンド
なおHomebrew下ではパッケージのことをFormulaと呼びます.
以降の手順説明ではformula
と記載されていれば,それはパッケージ名に読み替えられます.
Homebrewでインストール可能なパッケージ一覧は次のリンクで確認できます.
Homebrewパッケージ一覧
Homebrew Formulae
How to install Homebrew
Homebrew公式サイトトップにあるスクリプトをコピーし,ターミナルへ貼付け実行するとHomebrewのインストールが開始します.
Homebrew公式 トップ
Homebrew — macOS 用パッケージマネージャー
途中,Xcode Command Line Toolsが未インストールの場合,インストールダイアログが表示されます. そのときはインストールボタンをクリックします.
PCのログインパスワードの入力を求められた場合は入力します. なお,ターミナル上でパスワードの入力内容は表示されません.
しばらくしてプロンプトが表示され,入力可能になればインストール完了です.
How to install Packages
パッケージインストール手順
- Check package information before install.
- Install Package.
- Check Package was installed correctly.
- Set configuration.
- Load configuration.
- Check Package operation.
- Update Packages.
以降のコマンドはターミナル.app上で実行します. また[]
で囲んだ部分は省略可能ですが,実行結果が変化します.
1. Check package information before install.
brew info formula
Homebrewでインストール可能なパッケージの情報を確認します.
目的のパッケージが依存する他ファイル群(パッケージと同時にインストールされる)や,パッケージを使用する上での警告等が表示されるので良く読みましょう.
コマンド実行例
実際に上記コマンドの実行例を示します.
ここではVimというエディタのパッケージ情報を表示します.
次節以降のコマンド実行例もVimを例に示しています.
$ brew info vim # Vimのパッケージ情報を表示
vim: stable 8.1.0450 (bottled), HEAD
Vi 'workalike' with many additional features
https://www.vim.org/
Conflicts with:
ex-vi (because vim and ex-vi both install bin/ex and bin/view)
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/vim.rb
==> Dependencies
Required: perl ✘, ruby ✘
Recommended: python ✘
Optional: gettext ✔, lua ✘, luajit ✘, python@2 ✘
==> Options
--with-client-server
Enable client/server mode
--with-gettext
Build vim with National Language Support (translated messages, keymaps)
--with-lua
Build vim with lua support
--with-luajit
Build with luajit support
--with-override-system-vi
Override system vi
--with-python@2
Build vim with python@2 instead of python[3] support
--with-tcl
Build vim with tcl support
--without-python
Build vim without python support
--HEAD
Install HEAD version
==> Analytics
install: 75,849 (30d), 242,528 (90d), 980,688 (365d)
install_on_request: 65,958 (30d), 195,844 (90d), 692,209 (365d)
build_error: 45 (30d)
これを上から見ていくと説明内容は以下のとおりです.
- vim: ・・・Vimのバージョンやパッケージ概略など.
- Conflicts with: ・・・このパッケージをインストールする際に競合となる他のパッケージなど,および競合理由(Vimの場合,ex-viが存在すると競合してしまう).
- ==> Dependencies ・・・このパッケージの依存ファイル群. ✘はHomebrewでは未インストール,✔はHomebrewでインストール済.
- Required: ・・・必須依存ファイル : パッケージの動作に必須な為,必ず同時にインストールされる.
- Recommended: ・・・推奨ファイル : パッケージの動作に必須ではないが,同時にインストールされる. オプション指定でインストールしないことも可能.
- Optional: ・・・オプションファイル : パッケージインストール時にオプション指定すると,同時にインストールされる.
- ==> Options ・・・このパッケージのインストール時に指定可能なオプション. 必要なオプションは半角スペースで区切って指定する(次節 コマンド実行例 参照).
- ==> Analytics ・・・このパッケージの解析結果
2. Install Package.
brew install formula [option]
パッケージをインストールします.
コマンド実行例
Vimをオプション指定してインストールする場合,次のようにコマンドを実行します.
brew install vim --with-gettext --with-override-system-vi # Vimを複数オプション指定してインストール
このコマンドを実行すると発生することは次の通りです.
- Vimがインストールされる.
- Vim依存ファイルであるperlとrubyがHomebrew管理下でインストールされる.
- rubyの依存ファイル群がHomebrew管理下でインストールされる.
- Vim推奨ファイルであるpythonがHomebrew管理下でインストールされる.
- pythonの依存ファイル群がHomebrew管理下でインストールされる.
-
--with-gettext
オプション指定により,VimオプションファイルであるgettextがHomebrew管理下でインストールされる. -
--with-override-system-vi
オプション指定により,Vimの実行ファイルのパスが上書きされる.
3. Check Package was installed correctly.
which formula
コマンド実行ファイル(インストールしたパッケージによって使用可能になるコマンド)のインストール先を確認します.
通常,Homebrewでインストールされたパッケージのコマンド実行ファイルは /usr/local/bin にシンボリックリンクとして格納されます.
パッケージそのものは /usr/local/Cellar に格納されます.
brew list
現在インストールされているパッケージ一覧を表示します.
brew deps --tree formula
目的のパッケージのファイル依存関係をツリー表示します.
formula --version
インストールしたパッケージのバージョンを表示します.
コマンド実行例
上記コマンドの実行結果をVimを例に示します.
$ which vim # vimコマンドの実行ファイル格納先ディレクトリを表示
/usr/local/bin/vim
$ brew list # Homebrew管理下のパッケージ一覧を表示(git, gettext, pcre2はvimインストール前にインストール済)
gdbm libyaml perl ruby xz
gettext openssl python sqlite
git pcre2 readline vim
$ brew deps --tree vim # Vimのファイル依存関係をツリー表示(gettextは依存ファイルではないのでここに表示されない)
vim
├── perl
├── ruby
│ ├── libyaml
│ ├── openssl
│ └── readline
└── python
├── gdbm
├── openssl
├── readline
├── sqlite
│ └── readline
└── xz
$ vim --version # Vimのバージョンを表示
VIM - Vi IMproved 8.1 (2018 May 18, compiled Oct 8 2018 19:53:24)
macOS version
Included patches: 1-450
Compiled by Homebrew
Huge version without GUI. Features included (+) or not (-):
+acl +extra_search +mouse_netterm +tag_old_static
+arabic +farsi +mouse_sgr -tag_any_white
# 以下略
バージョンが最新になっていない場合の原因と対処
バージョンを確認した際に,Homebrewでの最新バージョンになっていない場合,以下の3つが原因として考えられます.
それぞれ順にコマンドを実行していくことで解決します.
構成ファイル(.bash_profileなど)がまだ作成されていない.
-
touch ~/構成ファイル
で構成ファイルを作成する. -
source ~/構成ファイル
で作成した構成ファイルを即時に読み込む.
パッケージインストール後に構成ファイルがまだ読み込まれていない.
-
source ~/構成ファイル
もしくは. ~/構成ファイル
で構成ファイルを即時に読み込む.
OSにもともとインストールされているコマンドで,新しいパスが通っていない.
-
echo $PATH
でパスの優先順位を確認する. /usr/local/bin/ が最優位になっていない(一番左に設定されていない)場合,手順2へ. 最優位になっているなら手順3へ. -
vi 構成ファイル
でVimエディタを開きexport PATH=追加したいコマンド検索パス:$PATH
を書き足した後,上書き保存してエディタを終了する. -
source ~/構成ファイル
で構成ファイルを即時に読み込む. -
echo $PATH
でパスの優先順位を再度確認する.
4. Set configuration.
cd
ホームディレクトリへ移動します.
vim configuration-file
Vimエディタで構成ファイルを作成,編集します.
コマンド実行例
Vimを例に構成ファイル設定手順を示します.
これはパッケージによっていじる構成ファイルや内容が異なるので,あくまで参考までに.
この例ではgettextをVimに読み込ませVimを日本語表示できるように設定します.
$ cd # ホームディレクトリへ移動
$ vim .bash_profile # Vimエディタで.bash_profile(bashの構成ファイル)を編集もしくは作成
.bash_profileにgettextのパスを追記します.
Vimの操作に慣れていない方は,次のコマンドを順に入力してください.
" カーソルを最下行へ移動
G
" インサートモードへ移行しカーソルを行末へ移動
A
" 改行
Enter
" gettextを読み込むようパスを設定
export PATH="/usr/local/opt/gettext/bin:$PATH"
" ノーマルモードへ移行
Esc
" ファイルを保存し,Vimを終了
:wq
5. Load configuration.
source configuration-file
構成ファイルを即時に読み込みます.
6. Check Package operation.
info formula
インストール済のパッケージのヘルプや操作方法等を表示します.
ヘルプはq
で閉じます.
7. Update Packages.
brew outdated
インストール済のパッケージで更新のあるものを表示します.
brew upgrade [formula]
Homebrewそのものをアップデートすると共に指定パッケージもアップデートします.
パッケージを省略した場合,全てのパッケージをアップデートします.
参考記事
以下の記事を参考にさせて頂きました.ありがとうございます.
Homebrewの仕組みや,他の主要コマンドなど
homebrewとは何者か。仕組みについて調べてみた - Qiita
パッケージや依存関係に関して
びぎねっと - はじめる人のびぎねっと。