検証環境フルスタックで複数開発しているとruby、python、node.js、reactなど様々なプログラム言語を使用する機会が増えてきます。異なったプロジェクトを同一マシンで行おうとすると各プログラム言語のバージョンなどが競合して上手く開発が行えなくなります。そこでanyenvの登場です。anyenvをインストールすることでメジャーどこの**env系を一括して管理できるようになりとても開発が楽になります。https://github.com/anyenv/anyenvかなりの**env系をサポートされています。「こんなに使わないからanyenv使うまでもないな」と思ってしまいがちですが、今後異なった言語を使う可能性がある場合はanyenvを導入するのをお勧めします。いうのもanyenvを導入する利点として、bashやzshなどにanyenvのパスを通すのみでその他は基本的にanyenv下で行ってくれるのでbash_profileなどがとてもきれいに保たれます。rbenv系を直接入れていたりするとndenvなど他のenv系をインストールしてbashなどにパスを通したところで上手くパスが通らないということが起こったりします。前置きが長くなりましたが早速anyenvのインストールについて書いていきます。anyenvのインストールインストールシェルはbashを使用する前提のコードです。Homebrewでインストール新たにmacOSユーザーはHomebrewからインストールできるようになっています。-lgithubのソースからインストールHomebrewを使わず、従来どおりgithubのソースをダウンロードしてインストールも可能です。-lたった四行でanyenvをインストールすることができました。一応解説すると以下のようなことを行っています。一応.bash_profileを確認してみましょう。.bash_profile以下のようにanyenvのパスが.bash_profileに記述されています。v9.9.0anyenvのPluginのインストール上記でanyenvを利用して**env系のインストール準備はできていますが、anyenvで入れた**env系のアップデートなどを一括でアップデートしてくれるなど、後々便利になってくるプラグインを初回からインストールしておきます。追記:znz/anyenv-updateとznz/anyenv-gitのプラグインのgithubページをみると、anyenvのリンク先が一見、旧anyenv(riywo/anyenv)のリンクのようですが、新anyenv(anyenv/anyenv)のページにリダイレクトされているかつ、anyenvの公式ページのPluginsでリンクが貼られているので互換性があるようです。Pluginをインストールしていきます。今回はanyenv-updateプラグインとanyenv-gitプラグインの2つをインストールするので、先にそれらのプラグインをインストールする「plugins」ディレクトリを.anyenv以下に作成しておきます。updateコマンドでanyenvで入れた**env系の全てをアップデートしてくれるプラグインです。gitコマンドでanyenvで入れた**env系の全てのgitコマンドを実行するプラグインです。※情報が古い場合はanyenv-gitの本家を確認して見てください。以上でanyenvのインストールおよびanyenvを快適に使用するプラグインのインストールは完了です。anyenvの使い方anyenvでインストールできる**env系のリストを表示anyenvでは**env系のサポートが増えることが有るので以下のコマンドでインストールできる**env系のリストを表示して確認することができます。-l**env系のインストール今回はnodeのバージョン管理を行うnodenvをインストールしてみます。nodenvanyenvでインストールしたnodenvを有効にするため、シェルの再起動をします。以下のコマンドでanyenvでインストールした**env系のバージョンを確認することができます。systemanyenvでnodenv自体をインストールしましたが、nodenvで管理するnodeをインストールしていないので上記のようにエラーが出力されます。次にnodenvを使ってnodeをインストールしていきます。**env系にインストールできるバージョンの確認anyenvで**env系をインストールした時点では上記のようにsystemに準拠したバージョンが指定されているので**env系に新たにインストールできるバージョンの確認を以下のコマンドで表示できます。-l..中略..8.10.08.11.08.11.18.11.28.11.38.11.48.12.08.13.08.14.0**env系に異なるバージョンのインストール上記でインストールできるバージョンを確認できたら、インストールしたいバージョンを以下のコマンドで指定してインストールすることができます。※nodenvの例で6.10.0と8.10.0の2つをインストールしてみます。functionsなどで対応されたためasync/awaitが使えて便利です。-lここで一旦**env系がインストールされているか確認してみましょう。以下のように指定したバージョンが表示されていれば無事成功です。globalを設定していないので*マークが付いていません。この状態でnodeコマンドを実行しても、どのバージョンのnodeを使用するのかシステム側は不明なのでエラーとなります。次にglobalを設定してシステムのデフォルトのバージョンを指定していきます。インストールされている**env系のバージョンを変更では実際に**envのバージョンを変更してみます。グローバルに変更すればシステムの全てのバージョンが指定したものに切り替わります。グローバルは変更せずに特定のプロジェクト(ディレクトリ以下)で指定のバージョンを使用したいときにはローカルでバージョンを変更することも可能です。8.10.0くどいですが、変更されているか確認してみます。/Users/xxxx/.anyenv/envs/nodenv/version)8.10.0の先頭にアスタリスクがついて無事globalとして設定・変更されています。ローカルで変更ではローカルで異なるバージョンを使えるようにしてみましょう。ここでは仮にtestdirを制作して、そこに上記で設定した6.10.0の環境を有効にしてみます。6.10.0ここでも確認してみます。8.10.0無事設定されています。グローバルは変更されていませんので、指定のローカルディレクトリ下以外ではグローバルで設定した8.10.0が有効になっています。byの後のパスがローカルで指定したディレクトリに制作された.node-versionになっています。anyenvを使うと複数の開発環境構築が楽になります。慣れてきたらDockerに挑戦すると面白いかもしれないです。