人生をもう一度やり直したいとつくづく思う@It_is_Rです。
今回はHomebrewについての記事を書いてみようと思います。
Homebrewをインストールすると、ターミナルから便利なコマンドを使用できるようになります。
Homebrewとは
Homebrewとは、OS X上で動く、パッケージ管理システムです。分かりやすく言うと、Macのターミナルから簡単にソフトウェアをインストールできるようにするものです。
Homebrewのインストール
では、Homebrewをインストールしてみましょう。
インストールはとても簡単です。先ほど紹介したHomebrewのページから、インストール用のスクリプトをコピーし、ターミナルに貼り付けるだけでインストールすることができます。
赤枠で囲んだ部分をコピーしてターミナルに貼り付けます。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
以下のコマンドを実行し、バージョンが表示されれば、インストール完了です。
$ brew -v
Homebrew 3.0.7
もしバージョンが表示されなければ、パスを通す必要があります。
Mac M1を使っている場合は、以下のコマンドを実行してください。
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/r/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
私の環境はMac M1を使っていますが、上記の方法で使うことができました。
Homebrewの問題をチェック
インストールが終わったら、Homebrewの問題をチェックしてみましょう。
brew doctor
まず、一番最初に実行するのは、brew doctorというコマンドです。
このコマンドは、Homebrewの問題をチェックするものです。
$ brew doctor Your system is ready to brew.
上記のようにYour system is ready to brew.と表示された場合、Homebrewは問題ありません。
もしもこのように表示されなかった場合は、記事の後ろに私がbrew doctorで表示された警告を載せますので、参考にしてください。
それが終わったら準備完了です。
Homebrewでよく使うコマンド
では、Homebrewのコマンドを見ていきましょう。
ますは、よく使われると思われるコマンドを表にしましたので、参考にしてください。
$ brew --version ($ brew -v ) | Homebrewのバージョンを見る ($ brew -v に省略可能) |
---|---|
$ brew | サブコマンドの表示 |
$ brew search ($ brew -S ) | Homebrewのパッケージを一覧表示 ($ brew -S と省略することも可能) |
$ brew search キーワード ($ brew -S キーワード ) | キーワードが含まれるbrewのパッケージを検索 |
$ brew info | Homebrewでインストールした統計の情報を表示 |
$ brew info パッケージ名 | パッケージについての情報を表示 |
$ brew install パッケージ名 | パッケージをインストール |
$ brew update | Homebrewと全てのパッケージ定義(Formula)をアップデート |
$ brew upgrade | Homebrewとパッケージをアップグレード |
$ brew uninstall パッケージ名 ($ brew remove パッケージ名 )($ brew rm パッケージ名 ) | パッケージをアンインストール。 ($ brew remove パッケージ名 や $ brew rm パッケージ名 とすることも可能) |
$ brew list ($ brew ls ) | インストールされているパッケージを表示 ($ brew ls )に省略することも可能 |
$ brew config | Homebrewシステム構成を表示 |
$ brew doctor | Homebrewの問題をチェック。 |
$ brew commands | Homebrewのコマンドの一覧を表示。 |
$ brew help コマンド | Homebrewのコマンドの使い方を表示。 |
$ brew home | Homebrewや、そのパッケージのページを表示。 |
$ man brew | Homebrewについてのマニュアルを表示。 |
Homebrewのバージョンを確認 ( brew -v )
まず、Homebrewのバージョンを確認してみます。
ターミナルに以下のコマンドを打ち込んでみてください。
$ brew -v Homebrew 1.6.2-41-g03dd26c Homebrew/homebrew-core (git revision c010d8; last commit 2018-04-28)
このようにバージョンが表示されます。
サブコマンドの確認 ( brew )
ターミナルにbrewと打ち込むと、brewのサブコマンドが表示されます。(詳しく表示するには、man brewを実行したほうがいいかもしれません)
$ brew Example usage: brew search [TEXT|/REGEX/] brew info [FORMULA...] brew install FORMULA... brew update brew upgrade [FORMULA...] brew uninstall FORMULA... brew list [FORMULA...] Troubleshooting: brew config brew doctor brew install --verbose --debug FORMULA Contributing: brew create [URL [--no-fetch]] brew edit [FORMULA...] Further help: brew commands brew help [COMMAND] man brew https://docs.brew.sh
brew search
brew searchは、Homebrewのパッケージ定義(Formula)を確認するコマンドです。
$ brew search a2ps fleetctl liboping rabbitmq a52dec flex libopkele rabbitmq-c 〜略〜
という様に、配布されているパッケージの一覧を表示することができます。
また、後ろにキーワードを入れることで、そのキーワードを含むパッケージのみを表示させることもできます。
キーワードにnodeを含むパッケージを表示してみました。
$ brew search node leafnode llnode node ✔ node-build nodebrew nodeenv nodenv homebrew/versions/node010 homebrew/versions/node4-lts Caskroom/cask/nodebox homebrew/versions/node012 homebrew/versions/node5 Caskroom/cask/nodeclipse homebrew/versions/node04 Caskroom/cask/mindnode-pro Caskroom/cask/printnode homebrew/versions/node06 Caskroom/cask/node-profiler Caskroom/cask/soundnode homebrew/versions/node08 Caskroom/cask/node
すでにインストールされているパッケージにはチェックマーク(✔)が表示されます。
brew info
Homebrewでインストールした統計の情報が表示されます。
$ brew info 44 kegs, 71,961 files, 1.6GB
また、後ろのパッケージ名を入力することで、パッケージの情報を表示することもできます。
$ brew info node node: stable 10.0.0 (bottled), HEAD Platform built on V8 to build network applications https://nodejs.org/ 〜略〜
brew install
brew installの後ろに、パッケージ名を入力することで、パッケージをインストールすることができます。
インストールできるパッケージ名は、brew searchで探すこともできます。
では、試しにnode.jsをインストールしてみたいと思います。
$ brew install node
これで、node.jsをインストールすることができます。
brew update
brew updateを実行すると、Homebrewとパッケージの定義(Formula)をアップデートすることができます。
$ brew update
brew upgrade
これを実行すると、Homebrewとパッケージをアップグレードすることができます。
$ brew upgrade
また、古いバージョンのものを削除する、cleanupというコマンドがありますが、それを同時に行うこともできます。
$ brew upgrade --cleanup
また、後ろにパッケージ名をいれることで、そのパッケージのみをアップグレードすることも可能です。
Node.jsをアップグレードしてみます。
$ brew upgrade node
brew uninstall
brew uninstallの後ろに、パッケージ名を入力することで、そこパッケージをアンインストールすることができます。
$ brew uninstall node Uninstalling /usr/local/Cellar/node/6.1.0... (3,655 files, 38.6M)
また、下記の様にremoveやrmを使っても、uninstallと同じ動きをします。
$ brew remove node $ brew rm node
brew list
brew listは、インストールされているパッケージを表示するコマンドです。
この様に一覧で表示することができます。
$ brew list autoconf openssl rbenv readline ruby-build libyaml pkg-config rbenv-gemset ruby
また、brew lsというふうに省略することもできます。
$ brew ls autoconf openssl rbenv readline ruby-build libyaml pkg-config rbenv-gemset ruby
brew config
brew configはHomebrewシステム構成を表示するコマンドです。
$ brew config HOMEBREW_VERSION: 1.6.2-43-gbae92c9 ORIGIN: https://github.com/Homebrew/brew 〜略〜
brew commands
Homebrewのコマンドの一覧を表示します。
$ brew commands Built-in commands --cache cat doctor link postinstall tap untap --cellar cleanup fetch list 〜略〜
brew help
brew help コマンド で、そのコマンドの使い方が表示されます。
$ brew help info brew info: Display brief statistics for your Homebrew installation. brew info formula: Display information about formula. 〜略〜
brew home
brew homeは、Homebrewや、そのパッケージのページ表示をするコマンドです。
まず、Homebrewのページを表示してみます。
$ brew home
ブラウザが開き、Homebrewのページが表示されたと思います。
さらに、この後にパッケージ名を入力することで、そのパッケージのページを表示することもできます。
$ brew home node
この様にすると、node.jsのページを開くことができます。
man brew
Homebrewのマニュアルを表示します。コマンドについても多く書かれていますので、brewコマンドではなく、こちらを実行してもいいかもしれません。
$ man brew
どんなコマンドがあるんだろうと疑問に思ったら、このコマンドを思い出してください。
表示されたWarning
brew doctorを使い、警告があった場合、以下のようになります。
$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry or file an issue; just ignore this. Thanks! 〜略〜
といった文の後に、警告が表示されます。
では、自分自身のパソコンで表示された警告を、例として載せておきます。
Warning: “config” scripts exist outside your system or Homebrew directories. …
以下のようなエラーが表示された場合です。
Warning: "config" scripts exist outside your system or Homebrew directories. `./configure` scripts often look for *-config scripts to determine if software packages are installed, and what additional flags to use when compiling and linking. Having additional scripts in your path can confuse software installed via Homebrew if the config script overrides a system or Homebrew provided script of the same name. We found the following "config" scripts: /Users/xxxxx/Library/Python/3.6/bin/powerline-config /usr/local/opt/pkg-config
こちらは、以下を.zshrcや.bash_profileなどに入力することで解決するようです。
alias brew="PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin brew"
参考サイト : pyenv をインストールしてると brew doctor で出る Warning を消す方法
Warning: Broken symlinks were found. Remove them with `brew prune` …
以下のようなエラーが表示された場合です。
Warning: Broken symlinks were found. Remove them with `brew prune`: /usr/local/bin/bower
brew pruneを実行すればOKです。
$ brew prune Pruned 21 symbolic links and 24 directories from /usr/local
Warning: You have unlinked kegs in your Cellar …
以下のようなエラーが表示された場合です。
Warning: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. Run `brew link` on these: node git
言われた通りに、brew linkしてみたのですが、エラーが表示されたので、強制的に上書きしてくれるオプションをつけたら解決しました。
$ brew link --overwrite node Linking /usr/local/Cellar/node/10.0.0... 7 symlinks created $ brew link --overwrite git Linking /usr/local/Cellar/git/2.17.0... 188 symlinks created
Warning: Unbrewed header files were found in /usr/local/include. …
以下のようなエラーが表示された場合です。
Warning: Unbrewed header files were found in /usr/local/include. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected header files: /usr/local/include/python3.6m/greenlet/greenlet.h
/usr/local/include/python3.6m/greenlet/greenlet.hを削除することで、エラーは表示されなくなりました。
その他のWarning
以下は古いバージョンのHomebrewで表示Warningです。
もしかすると役にたつかもしれないので、そのまま残しておきます。
$ brew doctor Warning: A newer Command Line Tools release is available. Update them from Software Update in the App Store. Warning: Xcode is installed to a directory with a space in the name. This will cause some formulae to fail to build. Warning: Your Xcode (5.1.1) is outdated Please update to Xcode 7.3.1. Xcode can be updated from the App Store.
とりあえず、翻訳してみました。
警告 : 新しいコマンドラインツール(Command Line Tools)が利用可能です。App StoreのSoftware Updateから、アップデートしてください。
警告 : Xcodeは名前にスペースを含んだディレクトリにインストールされています。これはビルドに失敗という、いくつかの問題を引き起こすものです。
警告 : あなたのXcode(5.1.1)は古いバージョンです。Xcode 7.3.1にアップデートしてください。
普段、使用していないバージョンのOSを起動したため、Command Line Toolsがアップデートされていなかったことと、古いバージョンのXcodeがインストールされていたことが原因の様です。
2つ目の警告は、Xcodeをアップデートすることで解決すると思います。
まず、1つ目の警告はおいておいてXcodeをアップデートしましょう。
App Storeを開き、Xcode7.3.1をインストールします。

これで、2番目と3番目の警告は解決しました。
では、コマンドラインツールをアップデートします。
App Storeからアップデートする方法でもいいのですが、今回はもうちょっとイカしたアップデートの方法をしたいと思います。
$ xcode-select --install
インストールをクリックし、規約に同意すれば、インストールされます。

また、何日かHomebrewを使用した後に、brew doctorコマンドを使用すると、次の様な警告が表示されることがあります。
$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks! Warning: Your Homebrew is outdated. You haven't updated for at least 24 hours. This is a long time in brewland! To update Homebrew, run `brew update`.
とりあえず、警告部分だけ翻訳します。
あなたのHomebrewは古いバージョンです。
24時間以上アップデートしていません。これはbrewlandでは長年です!
Homebrewをアップデートするには、brew updateを実行してください。
24時間以上は、brewlandで長年だってよ。brewlandってどこ?
…まぁ、それはいいとして、つまり、brew updateを実行すればいいってことです。
$ brew update Updated Homebrew from 815edc0 to 2f20a42. Updated 2 taps (caskroom/cask, homebrew/core). ==> New Formulae bookloupe derby dssim git-secret mit-scheme wiredtiger czmqpp docker-clean frege-repl grt nuget ==> Updated Formulae activemq gnatsd p7zip activemq-cpp gnu-tar peco afl-fuzz godep planck apache-flink graphite2 plowshare aria2 hbase postgresql artifactory icdiff prometheus at-spi2-core idnits pyenv aws-sdk-cpp imagemagick pyvim 〜略〜 ==> Renamed Formulae beanstalk -> beanstalkd d-bus -> dbus ==> Deleted Formulae eet eina embryo evas tinyscheme
これで、アップデートが完了しました。
まとめ
今回はHomebrewの使い方を紹介しました。
Homebrewを使うと、パッケージの管理がとても楽になり、Web開発やソフトウェア開発などでとても便利になります。
さまざまなところでこのツールを使いますので、ぜひ使い方を覚えておくといいですね。