見出し画像

「asdf」というバージョン管理ツールで環境構築をしよう❗

こんにちは、おおとろ(@digiangler)です。

以前、 anyenv という様々な env 系のバージョンを複数インストールできる管理ツールについて書きました。

最近、積み上げ中である Docker や Kubernetes などを管理できるツールを探していたら、asdf というバージョン管理ツールがありました。

asdf は、kubectl や terraform 、awscli、docker-slim などの多種多様なツールのバージョン管理も行うことができます。

何かと便利なので、anyenv から asdf にローカル環境を変更することにしました。

asdf のインストール

注意:情報が古くなっている場合がありますので、必ず、本家「asdf-vm」のGitHubリポジトリを参照しながらやりましょう。

依存するパッケージをインストールします。

brew install coreutils curl git

asdf をインストールします。

brew install asdf

or

brew install asdf --HEAD

Git からインストールしたい場合はこちら。

git clone https://github.com/asdf-vm/asdf.git ~/.asdf
cd ~/.asdf
git checkout "$(git describe --abbrev=0 --tags)"

最後にパスを通します。

# zsh の場合
echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

# fish shell の場合
echo -e "\nsource "(brew --prefix asdf)"/asdf.fish" >> ~/.config/fish/config.fish

アップデートするときはこちら。

brew upgrade asdf


プラグインのインストール

プラグイン共通で使うパッケージがあるのでインストールします。

すでにインストール済みの場合はスキップしましょう。

brew install \
 coreutils automake autoconf openssl \
 libyaml readline libxslt libtool unixodbc \
 unzip curl

利用できるプラグインのリストを表示します。

asdf plugin list all

プラグインをインストールします。

# asdf で管理されているプラグインの場合
asdf plugin add <プラグイン名>

# asdf で管理されていないプラグインの場合
asdf plugin add <プラグイン名> <プラグインのURL>


# 例:awscli
asdf plugin add awscli https://github.com/MetricMike/asdf-awscli.git

インストール済みのプラグインを確認します。

asdf plugin list


バージョン管理

利用できるバージョンのリストを確認します。

asdf list all <プラグイン名>


# 例:awscli
asdf list all awscli

インストールしたいバージョンを指定してインストールします。

asdf install <プラグイン名> <バージョン>


# 例:awscli
asdf install awscli 2.2.1

インストール済みのバージョン一覧を確認します。

asdf list <プラグイン名>


# 例:awscli
asdf list awscli

利用したいバージョンを指定します。

グローバル環境で使うバージョンを固定するには、asdf global コマンドを利用します。

asdf global <プラグイン名> <バージョン>


# 例:awscli
asdf global awscli 2.2.1

ディレクトリ単位でバージョンを固定するとき。

asdf local <プラグイン名> <バージョン>


# 例:awscli
asdf local awscli 2.2.1

現在の環境で有効となっているバージョンを確認します。

asdf current <プラグイン名>


# 例:awscli
asdf current awscli

プラグインがない場合は、自作プラグインを作成することもできるようです。

公式ドキュメントはこちら。

以上


おわり

ツールを一本化したいという動機から anyenv から asdf へ移行しましたが、今のところ不便はないですね。Docker などのコンテナでプロジェクト環境を構築していますが、コンテナにまだ慣れていないので、そういうときは asdf は非常に便利ではないでしょうか。


最後まで、読んで頂きありがとうございました❗

読んだ証明として、1 日 1 回クリックをお願い致します m(_ _)m
👇
人気ブログランキング

それでは、また。

画像1

是非、感想をコメントや SNS でくださると嬉しいです。

Twitter: @digiangler
Instagram: @digi_angler

また、スキボタンを ”こっそり” 押したり、サポートしてくださるのも、とても嬉しいです。

"こっそり" Twitter からのリツイートでの感想もくださると嬉しいです。


よろしければサポートよろしくお願い致します。頂いたサポートはライターとしての活動費に使わせて頂きます❗m(_ _)mまた、感想のツイートやリクエスト、ぜひぜひお寄せください(*⌒▽⌒*)