Wondershake 開発者ブログ

LOCARI(ロカリ)の運営会社の開発者ブログです。

asdfって知ってる?色んな言語のバージョン管理が出来ます!

この記事は Wondershake Advent Calendar 2016 13日目の記事です。

ワンダーシェイクのバックエンドエンジニアの@dykstraです。

今回はasdf version managerを紹介したいと思います。

asdfとは?

asdfはバージョン管理ツールです。RubyとElixirのコミュニティーでオープンソースに貢献している@HashNukeさんが作りました。 Rubyrvmrbenv のようなツールで、非常に導入しやすいツールなので、色んな言語にasdfを使えます!

なぜ他のバージョン管理ツールよりasdf使う?

使い方は本当にシンプルです。色んな言語で使えるので、他のバージョン管理ツールのようにそれぞれの言語管理ツールを使うのが通常ですが、asdfなコマンドが同じなので、asdfだけですべての言語のバージョン管理をすることができます。Toolingがいい言語(例えば、Ruby)だけ使ってたら、asdfに乗り換える必要がないと思いますが、tooling良くない言語使っていたり、同じサーバーに色んな言語を使っている場合は、asdf使えば、言語アップグレードする時にとても便利になります。この記事書いてる時点で、既に以下の20の言語がasdfでバージョン管理出来ます。

簡単に、どうやって使う?

  1. asdfインストールして、設定します。 https://github.com/asdf-vm/asdf
  2. asdf plugin-add <言語名> <git-url> (git_urlはここで見つけれます)
  3. インストールしたいバージョンを探します。 asdf list-all <言語名>
  4. そのバージョンをインストールします。 asdf install <言語名> <バージョン>
  5. グローバルでバージョンを設定します。 asdf global <言語名> <バージョン>
  6. プロジェクトのバージョンを設定します。(ホームディレクトリからこのコマンドやったほうがいいです) asdf local <言語名> <バージョン> (なかったら、$PWD/.tool-versions作ります)

すごく簡単ですね!もし操作がわからなくなっても、 asdf -h をすれば、コマンドの説明が詳しく表示されます。

僕の好きな言語のプラグインはない!どうする?

新しい言語を導入したい場合は、asdfのplugin APIで作ればすぐ使えます。

まとめ

開発に専念するためには、バージョン管理のことで時間を使いたくないですよね。asdfなら一つのツールで全部の言語のバージョン管理が出来るので時間の節約になり、エンジニア間のミスコミュニケーションもふせぐことができます。是非、asdfを使ってみてください!

明日はインフラのエンジニアつかださん書きます!ネタはまだ秘密なんですけど、楽しみにしてます!