brewでmissing xcrun

表題の件。

■ 環境

  • Homebrew
  • Mac OSX El Capitan

■ brew update

`brew update`したところ下記のようなエラーが出た。

$ brew update
==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics.html

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: Failure while executing: git config --local --replace-all homebrew.analyticsmessage true

なんだろう?と思いつつも、再度実行してみたところ問題はなかったので気にしないことにしていた。

$ brew update
Already up-to-date.
$

`brew search`で検索して、`brew info`で確認しようとしたところ、下記のように”Dependencies“の箇所に同様のエラーが出ていた。

$ brew info ...
  :
==> Dependencies
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Required: erlang@17 ✘
==> Requirements
Required: macOS >= 10.8 ✔, arch ✔
$

下記で解決できるようだったので実施。

$ xcode-select --install
xcode-select: note: install requested for command line developer tools
$

“インストール”を押してしばし待機。完了後に再度`brew info`を実施したがエラーは出なくなった。

以上。

HomebrewのGitHubレポジトリが分離

表題の通り。ちょっとFormulaファイルを見てみようと思っていつもの場所を見に行ったのだが見つからない。。と思っていたら1.0.0のリリースと共に少し変わったようである。

■ 環境

  • Homebrew 1.1.0
  • Mac OSX El Capitan

■ brew

以前のレポジトリは下記。

Homebrew/legacy-homebrew
https://github.com/Homebrew/legacy-homebrew

そして分離し、Homebrew本体とFormulaファイル等のレポジトリに分かれたようである。

Homebrew/brew
https://github.com/Homebrew/brew

Homebrew/homebrew-core
https://github.com/Homebrew/homebrew-core

versionを見てみると下記のようになっていた。

$ brew -v
Homebrew 1.1.0
Homebrew/homebrew-core (git revision f86b2; last commit 2016-11-09)
$

なるほど。

以上。

Homebrewで不要なversionを削除

表題の通り。Homebrewにおいて”upgrade“をした時に複数のversionがインストールされたままとなるので、不要となったタイミングで最新version以外を削除する。

■ 環境

  • Mac OSX (10.9.5)
  • Homebrew

■ 不要versionを確認

brew info [Formula]

info“コマンドで、どのversionがインストールされているかを確認する。下記は”awscli“で試した場合である。後半は省略している。

$ brew info awscli
awscli: stable 1.7.18 (bottled), HEAD
https://aws.amazon.com/cli/
/usr/local/Cellar/awscli/1.7.8 (1768 files, 19M)
Poured from bottle
/usr/local/Cellar/awscli/1.7.18 (1587 files, 17M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/awscli.rb
==> Caveats
  :
$

上記からは、このマシンには下記の2つのversionがインストールされている事がわかる。

  • 1.7.8
  • 1.7.18

また、現在使用しているのが”1.7.18“である。

■ 不要versionの削除

brew cleanup [Formula]

cleanup“コマンドを使用する事で、最新version以外を削除する事ができる。下記は引き続き”awscli“で試している。

$ brew cleanup awscli
Removing: /usr/local/Cellar/awscli/1.7.8... (1768 files, 19M)
$

1.7.8“が削除された事が確認できるであろう。”info“コマンドで再度確認すると表記が変わっている事がわかるはずである。

$ brew info awscli
awscli: stable 1.7.18 (bottled), HEAD
https://aws.amazon.com/cli/
/usr/local/Cellar/awscli/1.7.18 (1587 files, 17M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/awscli.rb
==> Caveats
  :
$

cleanup“コマンド実行時のメッセージの通り、”1.7.8“が削除されている事が確認できるであろう。最新版しか使用しないのであれば、過去versionを保持しておくとディスクを圧迫する可能性もあるので、削除しておくに越した事はないだろう。

以上。

■ 関連

Homebrewでversionが新しいか確認

表題の通り。Homebrewでインストールしているソフトウェアは常に最新版にしておきたいわけではないのだが、最新版はどこまでリリースされていて、ローカルはどのversionを使用しているのかを、たまに確認したくなるのでメモとして残しておく。

■ 環境

  • Mac OSX (10.9.5)
  • Homebrew

■ outdated

下記コマンドで実行する事が可能である。

brew outdated

実際に使用する際には、まず”update“でローカルのFormulaファイルを最新にしてから実施する。

$ brew update
$ brew outdated
elasticsearch (1.4.4 < 1.5.0)
maven (3.2.3, 3.2.5 < 3.3.1)
mongodb (2.6.8, 3.0.0 < 3.0.1)
$

インストール済みのソフトウェアの中で、最新版と異なるversionがインストールされている場合に表示される。上記例の場合では下記3つのソフトウェアが最新版ではない事が分かる。

  • elasticsearch
  • maven
  • mongodb

また、最新版とインストール済みのversionも併記される。上記例のmongodbの場合、インストール済みのversionは”2.6.8″と”3.0.0″であるが、最新版は”3.0.1″である事が分かる。

ちなみに、”upgrade“することで最新版を利用する事ができる。試しにmongodbをupgradeしてみる。

$ brew upgrade mongodb
==> Upgrading 1 outdated package, with result:
mongodb 3.0.1
==> Upgrading mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.1.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mongodb-3.0.1.mavericks.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
    mongod --config /usr/local/etc/mongod.conf
==> Summary
    /usr/local/Cellar/mongodb/3.0.1: 17 files, 153M
$

上記ではmongodbだけをupgradeの対象にしたが、”upgrade“の引数に何も渡さなければ全てのソフトウェアが対象となる。

$ brew upgrade

以上。

■ 関連