apt: バージョン指定してElixirをインストールする方法

Ubuntu/Debianにaptを利用してElixirをインストールする方法は、ここに書いてある通りです:

https://elixir-lang.jp/install.html#unix-%E7%B3%BB

ただし、これをそのまま実行すると最新のElixirがインストールされます。バージョン指定してElixirをインストールするための方法を紹介します。

Erlang solutionsのリポジトリを追加して、Erlangをインストールします。

$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install esl-erlang

ここで、インストール可能なバージョンのリストを調べます。

$ apt policy elixir
elixir:
  インストールされているバージョン: 1.11.2-1
  候補:               1.12.0-1
  バージョンテーブル:
     1.12.0-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
     1.11.4-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
 *** 1.11.2-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
        100 /var/lib/dpkg/status
     1.11.1-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
     1.10.4-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
     1.10.3-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
     1.10.2-1 999
        999 http://binaries.erlang-solutions.com/debian focal/contrib amd64 Packages
     1.9.1.dfsg-1.3 500
        500 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

現在、1.11.2-1 がインストールされていて、最新版は 1.12.0-1 です。このまま sudo apt-get upgrade を実行すると最新版がインストールされます。

1.11.4-1 をインストールします。

$ sudo apt-get install elixir=1.11.4-1

Elixirのバージョンを固定します。

$ sudo apt mark hold elixir

こうしておくと、sudo apt-get upgrade で自動的にアップグレードされないようになります。