概要
複数のプロジェクトを抱えているソフトウェアエンジニアの方にとって、切っても切り離せない課題に、それぞれのプロジェクトで使用されているプログラミング言語のバージョンが異なるという課題があります。
一般的には、開発をおこなっている環境と本番環境で運用しているプログラム言語のバージョンは統一したほうが、バージョンごとによる影響やバグ、仕様変更などの影響が出ないため無難ですが、複数のプロジェクトを掛け持ちしている場合に難しいことがほとんどです。
例えば以下のように Python を使用してスクリプトを作成する状況を考えてみます。
- あるプロジェクト A で Python 3.6 系を利用している
- 同じ時期、プロジェクト B に参加する必要があり、こちらでは Python 3.8 系を利用している
- 勉強のために Python 3.10 系を使用したい
この場合開発環境が一つしかない場合、都度プログラム言語のバージョンをインストール・アンインストールする必要が出てくるため、非常に手間がかかりますし面倒です。
そういう状況の場合は、バージョン管理を行うための仮想環境 pyenv
や virtualenv
を使用されている方も多いかと思っており、このような仮想環境やバージョン管理を行えるツールが大変重宝すると思います。
しかし、Python の場合だったら pyenv
や conda
、Node.js だったら nvm
や n
など、プログラム言語ごとにバージョン管理ツールや仮想環境システムを使いこなすとなると、覚えることが多すぎて訳がわからなくなってしまう方も多いかと思います。
そんなとき、上記の課題を解決することができる OSS を今回見つけることができましたので、こちらでご紹介いたします。
今回ご紹介する OSS は、Python や Node.js、さらには awscli などさまざまなツールのバージョン管理ができるツール「asdf」になります。
「asdf」については基本的に macOS/Linux で利用することができます。
それでは早速こちらについて詳細をみていきましょう。
目次
特徴
「asdf」の特徴としては、以下が挙げられていました。
- 単一の CLI で複数の言語に対応
- すべての言語を管理するための一貫したコマンド操作
- デフォルトを 1 か所に保持する単一のグローバル構成
- .tool-versionsプロジェクトごとに 1つの構成ファイルで利用可能
- 選択した言語のサポートを追加するシンプルなプラグイン システム
- 一般的なシェル (Bash、Zsh、Fish、Elvish) で利用可能なシェル補完
利用手順
ここでは macOS でのインストール方法について記述します。
macOS へインストールする方法は簡単で、以下 3 項目で完了します。
Homebrew 経由でインストール
bash brew install asdf
~/.bash_profile
に以下を追記
. $HOME/.asdf/asdf.sh
- shell の再起動
exec $SHELL -l
なお、Linux でのインストール方法については以下の公式ドキュメントに記載されていますので参照ください。
使用状況
今回は macOS/Linux のみのため、ドキュメントの内容に沿って紹介しようと思います(筆者は Windows ユーザーのため)。
「asdf」で Python のバージョン管理を行うには、Python プラグインなるものをインストールする必要がありますので、以下のコマンドを入力します。
asdf plugin add python
なお、「asdf」がどのプログラミング言語・ツールのバージョン管理を行えるのかを確認したい場合は、以下のコマンドを入力することで把握することができます。
asdf plugin list all
なお、既にインストール済みの「asdf」プラグインを確認するには以下のコマンドを入力します。
asdf plugin list
Python プラグインをインストール後、使用可能なバージョンを確認するには以下のコマンドを入力します。
asdf list all python
上記コマンドで使用したい Python バージョンを見つけたら、バージョン指定して「asdf」にインストールします。
asdf install python 3.9.6
また、グローバルインストール、ローカルインストールすることも可能で、以下のようなコマンドを入力することで行えます。
# グローバルインストール asdf global python 3.9.6 # ローカルインストール asdf local python 3.9.6
基本的な使い方としては以上です。
ここでは Python を例にして紹介しましたが、Node.js など他のプログラミング言語、ツールでも利用可能ですので、詳細を把握したい場合は公式ドキュメントを参照してみてください。
まとめ
今回は、Python や Node.js、さらには awscli などさまざまなツールのバージョン管理ができるツール「asdf」をご紹介しました。
一つのツールで複数のプログラミング言語やツールのバージョン管理を行うことができるのは、統一感もあって非常に嬉しいですね!
macOS / Linux ユーザーの方のみのツールとなってしまいますが、もしプログラミング言語のバージョン管理ソフトを探していたならば、ぜひこちらの「asdf」を使用されてみてはいかがでしょうか。