Webサイト発注虎の巻ダウンロード
Webサイト発注虎の巻ダウンロード

ローカル開発環境はanyenvで!インストール方法・おすすめプラグインを解説

がみさん

古い開発環境から新しい開発環境までいろいろな環境で開発を進めなければならない中で、複数のプログラミング言語やバージョンなどを管理しなければいけない状況があるかと思います。

単一の開発環境を作成するのはバックエンドエンジニアにとってはお手のものですが、複数の環境を共存させるためには四苦八苦してきました。それを解決するのがanyenvです。

anyenvとは

https://github.com/anyenv/anyenv

anyenvはこれまで利用してきたnodenvやpyenv、phpenvなどの各言語のバージョンをローカル環境で容易に切り替えることのできるツールです。

例えばMacを購入した際にデフォルトでインストールされているPythonのバージョンは2系です。しかしここ最近は3系で開発しなければならないことが非常に多いです。そのような際に2系と3系を切り替えて使う、またはプロジェクトによって利用するバージョンを指定して使うということができます。

また複数の言語の管理ツールなので開発に必要な多数の言語環境を整えることができます。

現在バージョン管理が利用可能な言語
・Renv・crenv・denv・erlenv・exenv・goenv・hsenv・jenv・jlenv・luaenv・nodenv・phpenv・plenv・pyenv・rbenv・sbtenv・scalaenv・swiftenv・tfenv

比較的たくさんある印象ですが、Open Source系の言語がほとんどです。

anyenvのインストールと設定

実際に手を動かしてみたほうが理解が早いということで、早速インストールしていきましょう。brewで簡単にインストールする方法もありますが、バージョンの反映が遅いのと細かい設定がしづらいという弱点もあるので、ここではGitから直接cloneして設定する方法を紹介します。
https://anyenv.github.io/

$ git clone https://github.com/anyenv/anyenv ~/.anyenv
$ echo ‘export PATH=”$HOME/.anyenv/bin:$PATH”‘ >> ~/.zshrc
$ echo ‘eval “$(anyenv init -)”‘ >> ~/.zshrc
$ ~/.anyenv/bin/anyenv init
$ anyenv install –init
$ exec $SHELL -l

基本的にはこのコマンドで初期状態のanyenvを動かすことができます。

$ anyenv –version
anyenv 1.1.4

anyenvと便利なツール

ここらは必ずインストールしておくことをおすすめします。ひとつはアップデートをサポートしてくれるプラグイン。もう一つはガベージコレクションをコントロールしてくれるプラグインです。

anyenv-updateプラグイン

$ anyenv updateコマンドでanyenvで入れた**env系のすべてをアップデートしてくれるプラグインです。デフォルトではこのコマンドは使えません。ちなみにanyenvの方の.gitignoreにはpluginsが書かれていたので、問題なかったです。


$ mkdir -p ~/.anyenv/plugins
$ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update

これでanyenv updateが使えるようになります。下記コマンドも時々実行しておきましょう。

$ anyenv update

anyenv-gitプラグイン

これでanyenvの全部とガベージコレクションなどの最適化を行うことができます。
$ git clone https://github.com/znz/anyenv-git.git ~/.anyenv/plugins/anyenv-git

anyenvの更新とガベージコレクションの最適化を行います。これも時々やっておきましょう。
$ anyenv git pull
$ anyenv git gc

数ある言語の中からここではnode.jsをインストールしてみます。node.jsを利用しているとするとnodenvを使っている方も多いかと思います。anyenvはこのnodenvのバージョンも管理することになります。

ここから先はnodenvの使い方と基本的には同じになります。

nodenvをインストールする

nodenvをインストールします。
$ anyenv install nodenv
$ exec $SHELL -l
$ nodenv –version
nodenv 1.4.0+3.631d0b6

これでnodenvが使えるようになりました。利用できるnode.jsのバージョンを確認してみましょう。

nodenv install -l

初期のバージョンから最新まで一応揃っています。すごいですね。node.jsのインストールはバージョンを指定してnodenvの使い方でインストールできます。

ここで注意したいことは、node.js自体をPCのローカル環境でグローバルで使うか、またはディレクトリ単位でローカルで使うかということです。つまりローカル環境のグローバルか、ローカル環境のローカルかを指定することができます。これは通常のシステムと同じロジックで末端のローカルが最も優先されるという仕組みになっています。

グローバルでnode.jsをインストールする

PC全体のグローバルでインストールしてみます。ここでは現時点での最新版をインストールしましょう。

$ cd ~
$ nodenv install 17.3.0
$ nodenv rehash
$ nodenv global 17.3.0
$ node -v
v17.3.0

グローバルでインストールしたので、PC内のどこでもこのnode.jsが使えるようになりました。もし使えない場合は.node-versionというファイルがカレントディレクトリにないかどうか確かめてみてください。これを削除するとグローバルインストールしたnodeが使えるようになります。

ちなみにインストールしたnode.js は~/.anyenv/envs/nodenv/versions/*に格納されています。不要になったnode.jsのバージョンはそのバージョンのディレクトリを直接削除すればよいです。

ローカルでnode.jsをインストールする

各プロジェクトで古いバージョンのnode.jsを使うことなんかがあると思います。そういうときはプロジェクトディレクトリ内のみで有効なnode.jsをインストールします。

$ cd /PROJECT_DIR/
$ nodenv install 16.9.1
$ nodenv local 16.9.1
$ node -v
v16.9.1

カレントディレクトリに.node-versionが生成されます。このファイルはnode.jsのバージョンを指定したいときはむしろGitの管理下においてもよいと思います。上記でも説明した通りこのファイルを削除するとグローバル領域のnode.jsのバージョンに切り替わります。

これで自身のPCの中で様々なバージョンのnode.jsを自由に使うことができます。