Help us understand the problem. What is going on with this article?

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

uasi
Qiita, Qiita:Team, Qiita Jobs を開発していました。趣味では Rust とシェルスクリプトをよく書きます。
http://uasi.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away