バージョン管理ツール asdf

各種ツールのバージョン管理を行うことができる CLI ツール「asdf」を導入して、プロジェクト毎での各種ツールのバージョン切替を楽にすることが出来るようになります。

images/cards/asdf.webp

目次

0. Introduction

Python のバージョン管理ツールでも、Conda、Anaconda、pyenv 等があります。他のプログラミング言語でも、様々な env 系ツールが存在する中で、プロジェクト毎にそれぞれのツールで異なるバージョンを管理したいことがあります。

  • 対象となる読者

    • プロジェクト毎に各種ツールのバージョンが異なり、それらの管理に困っている方
  • 本記事の価値

    • 各種ツールのバージョン管理を行うことができる CLI ツール「asdf」を導入して、プロジェクト毎での各種ツールのバージョン切替を楽にすることが出来るようになります。
  • 前提

    • Linux 開発環境(Ubuntu)がある方

1. Install Dependencies

asdf で必要なライブラリをまずインストールしておきます。

apt install curl git

2. Download asdf

asdf の最新のソースコードをクローンしてきます。

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0

3. Install asdf

Bash 環境として、~/.bashrc に以下を追加し、起動時に読み込むようにします。Completions も追加しておきます。以上で asdf のインストールは終了です。

. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash

4. Install Plugins

それでは、各種ツール(プラグイン)のインストールをします。ここでは、NodeJS と Python を対象とします。

NodeJS の場合

asdf list all nodejsで入手可能なバージョンを確認することができますが、ここでは最新のバージョンを入手します。

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf install nodejs latest

Python の場合

同様に、asdf list all pythonで入手可能なバージョンを確認することができますが、ここでは 3.7.10 のバージョンを入手します。

asdf plugin add python
asdf install python 3.7.10

5. Set a Version(Global)

asdf は、現在の作業ディレクトリから HOME ディレクトリまでのすべての .tool-versions ファイルでツールのバージョン ルックアップを実行します。グローバル デフォルトは $HOME/.tool-versions で管理されます。 以下では、グローバル バージョンを設定します。

NodeJS の場合

asdf global nodejs latest

Python の場合

asdf global python latest

6. Set a Version(Local)

ローカル バージョンは、$PWD/.tool-versions ファイル (現在の作業ディレクトリ) で定義されます。 通常、これはプロジェクトの Git リポジトリになります。 目的のディレクトリに移動したら、次を実行します。

NodeJS の場合

asdf local nodejs latest

Python の場合

asdf local python latest

参考

関連記事