• トップ
  • ブログ一覧
  • Homebrewで過去バージョンのパッケージをインストールする手順
  • Homebrewで過去バージョンのパッケージをインストールする手順

    たけちゃん(エンジニア)たけちゃん(エンジニア)
    2022.12.27

    IT技術

    導入

    Javaのバージョンを下げて入れ直そうとしたところ、Homebrewだとそのままではできません。
    というのも、Homebrewのスタンスとしてbrew install は最新バージョンのパッケージをインストールするためです。

    最終的には過去バージョンをインストールできたので、今回はその紹介になります。

    Homebrewについて

    Homebrewは独自の概念(登場人物)があるため、簡単に整理します。

    Formula (調理法)

    ・パッケージの情報が定義されたファイル

    ・このファイルを読み込んでローカルにビルドする

    Tap (蛇口)

    ・パッケージの元(リポジトリ)と紐づける操作およびディレクトリ

    ・デフォルトではGitHub上にある「Homebrew/homebrew-core」というリポジトリがTapされている(=指定不要)

    ・独自・外部のリポジトリに対してTapすることもできる

    Cellar (貯蔵庫)

    ・ローカルにある、brewコマンド経由でインストールしたパッケージ群の保管場所(の大元)

    Rack (ラック)

    ・パッケージ単位で用意されるディレクトリ(=パッケージ名)

    Keg (小樽)

    ・パッケージのバージョン毎に用意されるディレクトリ

    ・内部には実行可能ファイルやライブラリ本体が置かれる

    ・/usr/local/binなどからシンボリックリンクが貼られる(別途リンク作成、PATH通し必要なこともあり)

    リポジトリにある調理方法が書かれたファイル(Formula)を取得するための窓口(Tap)を取り付け、インストールを実行して入れ物に格納&棚に整理するイメージです。

    Homebrewで過去バージョンをインストール

    Homebrewの概要を整理したので、早速実践していきます。(以降では、Homebrewは/usr/localにインストールされているものとします。)

    1.ローカルにあるFormulaファイルが置かれている場所に移動する

    1$ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

    2.コミットログを調べ、インストールしたいバージョンのコミットIDを把握する

    1$ ls // インストールしたいパッケージのFormulaファイルを探す
    2$

    今回は`3511bcd192f openjdk@11 11.0.16.1`をインストール対象とする。

    3.そのコミットにHEADを移す

    1$ git switch -d 3511bcd192f

    ※作業後元のブランチに戻しておきましょう。

    4.該当パッケージをインストール

    1$ brew install openjdk@11
    2// openjdk@11の箇所はインストールしたいパッケージ名を指定

    ここでインストールが成功すれば完了です。(PATHを通す、リンクを貼るなどは今回の対象外とします。)

    インストール時にエラーが出た場合

    1Error: Calling Installation of <パッケージ名> from a GitHub commit URL is disabled! Use 'brew extract <パッケージ名>' to stable tap on GitHub instead.

    4.のインストール時にこのようなエラーがでる場合があります。
    その場合はbrew tap を使って、公式以外のリポジトリからインストールするようにする。

    外部リポジトリを作成&tap接続

    brew tap-new <ユーザー名>/<リポジトリ名>
    // <ユーザー名>/<リポジトリ名>は任意(GitHubの命名規則に則るためこのような指定)
    // /usr/local/hoewbrew/Library/Taps/<ユーザー名>/homebrew-<リポジトリ名> のディレクトリを作成

    この操作で、ローカルの適当に名付けたディレクトリを作成&そのディレクトリをhomebrewがソース元として認識

    インストールしたいパッケージ(バージョン指定で)を作成したtapに持ってくる

    1brew extract --version=X.Y.Z <packageName> <ユーザー名>/<リポジトリ名>
    2// /usr/local/hoewbrew/Library/Taps/<ユーザー名>/homebrew-<リポジトリ名>/Formula 配下にダウンロードされる

    指定したバージョンのパッケージをインストールする

    1brew install <packageName>@X.Y.Z

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    たけちゃん(エンジニア)

    たけちゃん(エンジニア)

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background