Edited at

Homebrew でバージョンを指定してインストールするコマンド作った

More than 5 years have passed since last update.

homebrewでバージョンを指定してインストールするが便利だったのでコマンドにしてみました。


homebrew-install-version


#!/usr/bin/env zsh

if [[ $# -lt 2 ]]; then
print -P "%UUsage%u: brew install-version [install options] FORMULA VERSION"
exit 1
fi

formula=
version=
install_opts=()
versions_opts=()
for arg in $*; do
if
[[ $arg =~ '^--' ]]; then
install_opts+=$arg
[[ $arg == --devel ]] && versions_opts+=$arg
continue
fi
if
[[ -z $formula ]]; then
formula=$arg
continue
fi
version=$arg
done

versions=`brew versions $versions_opts $formula`
if [[ $? -ne 0 ]]; then
print -P "%F{red}%UError%u%f: No available formula for $formula"
exit 1
fi

object=$(echo $versions | awk '$1=="'$version'" {print $4":"$5}')
object=${object/:`brew --prefix`\//:}
if [[ -z $object ]]; then
print -P "%F{red}%UError%u%f: No available formula for $formula version $version"
exit 1
fi

formula_cache="`brew --cache`/Formula/$formula.rb"
git --git-dir="`brew --repository`/.git" show $object > $formula_cache
if [[ $? -eq 0 ]]; then
brew install $install_opts $formula_cache
fi


ダウンロードしてパスの通ったディレクトリに置き、ファイル名をbrew-install-versionとして chmod +x してください。

brew install-version FORMULA VERSION で特定のバージョンのソフトウェアをインストールします。有効なバージョンは brew versions FORMULA で確認できます。

インストールしたバージョンが brew upgrade でアップグレードされないよう固定するには brew pin FORMULA とします。

gist はこちら: https://gist.github.com/2987161