anyenvでパッケージマネージャをマネジメント

MacであればHomebrewで直接env系のバージョン管理ツールをインストールすることもできるが、様々な言語を扱うのであればanyenvを使ってまとめて扱った方が合理的であると思う。それに.zshrcがパスで汚染されることもなく清潔だ。

まずはHomebrewからanyenvのインストール。

% brew install anyenv

# インストールするだけでは実行できない
% anyenv install nodenv
anyenv-install: definition not found: nodenv

% echo 'eval "$(anyenv init -)"' >> ~/.zshrc

% anyenv init

% exec $SHELL -l

% anyenv install --init

何をインストールできるのか確認。

% anyenv install -l
  Renv
  crenv
  denv
  erlenv
  exenv
  goenv
  hsenv
  jenv
  jlenv
  luaenv
  nodenv
  phpenv
  plenv
  pyenv
  rbenv
  sbtenv
  scalaenv
  swiftenv
  tfenv

今回はnodenvとrbenvをインストールしてみる。

まずはnodevnから。

% anyenv install nodenv

# シェルを再起動
% exec $SHELL -l

# インストールできるバージョンを確認
% nodenv install -l
0.1.14
0.1.15
0.1.16
0.1.17
0.1.18
0.1.19
0.1.20
# 以下省略

# バージョンを指定してインストール
% nodenv install 15.8.0

# シムリンクの更新
% nodenv rehash

# グローバルにバージョンを指定
% nodenv global 15.8.0

# ローカルにバージョンを指定
# 対象のプロジェクトディレクトリに移動
% cd IdeaProject/keitenkiki
% nodenv local 15.8.0 

# nodenvのバージョンを確認
% nodenv --version
nodenv 1.4.0+3.631d0b6

# nodenvでインストールしたNode.jsのバージョンを確認
% nodenv versions
  5.0.0
  5.12.0
  6.17.1
  7.10.1
  8.17.0
* 15.8.0 (set by /Users/ki/.anyenv/envs/nodenv/version)

env系の良いところなんだけど、基本的にオプションが流用できるので学習コストが少ない。rbenvもnodenvと同じ要領で行う。

% anyenv install rbenv

# シェルを再起動
% exec $SHELL -l

# インストールできるバージョンを確認
% rbenv install -l
2.5.8
2.6.6
2.7.2
3.0.0
jruby-9.2.14.0
mruby-2.1.2
rbx-5.0
truffleruby-21.0.0
truffleruby+graalvm-21.0.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

# バージョンを指定してインストール
% rbenv install 3.0.0

# シムリンクの更新
% rbenv rehash

# グローバルにバージョンを指定
% rbenv global 3.0.0

# ローカルにバージョンを指定
# 対象のプロジェクトディレクトリに移動
% cd IdeaProject/keitenkiki
% rbenv local 15.8.0

# rbenvのバージョンを確認
% rbenv --version
rbenv 1.1.2-44-gd604acb

# rbenvでインストールしたRubyのバージョンを確認
% rbenv versions
  system
  2.5.7
  2.7.1
* 3.0.0 (set by /Users/kh/.anyenv/envs/rbenv/version)

取り敢えず以上のコマンドを操作できれば困ることはないと思う。一応以下のコマンドもあるが、気が向いた時にでも試してみて使えそうなものだけピックアップしたい。

% anyenv commands
--version
commands
completions
envs
global
help
init
install
local
root
uninstall
version
versions

% nodenv commands
--version
commands
completions
exec
global
help
hooks
init
install
local
prefix
rehash
root
shell
shims
uninstall
vars
version
version-file
version-file-read
version-file-write
version-name
version-origin
versions
whence
which

% rbenv commands
--version
commands
completions
exec
global
help
hooks
init
install
local
prefix
rehash
root
shell
shims
uninstall
version
version-file
version-file-read
version-file-write
version-name
version-origin
versions
whence
which

To comment

@TOC
閉じる