ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻

ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻

Photo by Breno Freitas on Unsplash

The story of changing the Lua version manager from luaver to lenv.

恵比寿でIT企業をやっているとモテると聞いて創業しましたが早いことありがたいことに10年目に突入した長谷川です。

まだモテる成果は出ていません、、、これからです!(もうめんどくさいのでカウントやめました😆)

luaverで今までluaを管理していたんですが、いろいろトラブルも多いのでluaverをやめました。

gvmもそうだけど、lenvに切り替えて1週間以上たっても特に問題がないのでこれでいいかな・・・

luaverは以下の記事

ターミナルがダサいとモテない。luaverが一番新しい? lua version managerで悩むの巻

あなたはlua version managerは何を使っていますか?

medium.com

lenvの紹介をします。

GitHub - mah0x211/lenv: Lua Version Manager

Lua Version Manager. Contribute to mah0x211/lenv development by creating an account on GitHub.

github.com

Install

lenvはgoで書かれているのでgoが入っていればsetup自体は簡単です。

Plain text
go install github.com/mah0x211/lenv@latest
Plain text
which lenv

Initialize

GitHub - mah0x211/lenv: Lua Version Manager

Lua Version Manager. Contribute to mah0x211/lenv development by creating an account on GitHub.

github.com

こちらを見れば、以下のように記載されています。

Plain text
lenv path > ~/.lenvrc
source ~/.lenvrc

自分はちょっとめんどくさいので以下の形でやっています。

Plain text
eval "$(lenv path)"

lenv fetch

ここまででlenvの準備はできました。

まずはlenv fetchして使えるluaとluarocksとluajitの一覧を取得します。

Plain text
lenv fetch

lenv vers

lenv fetchで取得したavailableなlua/luarocks/luajitの一覧を出力してくれます。

2024/12/19時点では以下のようになっていました。

lenv installで指定するluaとluarocksのversionをここから選択してinstallするという流れです。

Plain text
lenv vers
list available "lua" versions:
5.4.7  5.4.6  5.4.5  5.4.4  5.4.3  5.4.2  5.4.1  5.4.0  5.3.6  5.3.5  5.3.4
5.3.3  5.3.2  5.3.1  5.3.0  5.2.4  5.2.3  5.2.2  5.2.1  5.2.0  5.1.5  5.1.4
5.1.3  5.1.2  5.1.1  5.1    5.0.3  5.0.2  5.0.1  5.0    4.0.1  4.0    3.2.2
3.2.1  3.2    3.1    3.0    2.5    2.4    2.2    2.1    1.1    1.0

list available "luajit" versions:
v2.1    v2.0    master

list available "luarocks" versions:
3.11.1      3.11.0      3.10.0      3.9.2       3.9.1       3.9.0
3.8.0       3.7.0       3.6.0       3.5.0       3.4.0       3.3.1
3.3.0       3.2.1       3.2.0       3.1.3       3.1.2       3.1.1
3.1.0       3.0.4       3.0.3       3.0.2       3.0.1       3.0.1-rc2
3.0.1-rc1   3.0.0       3.0.0-rc2   3.0.0-rc1   3.0.0beta2  3.0.0beta1
2.4.4       2.4.3       2.4.2       2.4.1       2.4.0       2.3.0
2.3.0-rc2   2.3.0-rc1   2.2.3-rc2   2.2.3-rc1   2.2.2       2.2.1
2.2.0       2.2.0beta1  2.1.2       2.1.1       2.1.0       2.1.0-rc3
2.1.0-rc2   2.1.0-rc1   2.0.13      2.0.12      2.0.11      2.0.10
2.0.9       2.0.9-rc2   2.0.9-rc1   2.0.9.1     2.0.8       2.0.8-rc2
2.0.8-rc1   2.0.7       2.0.7.1     2.0.6       2.0.6-rc1   2.0.5
2.0.5-rc1   2.0.4       2.0.4-rc3   2.0.4-rc2   2.0.4-rc1   2.0.4.1
2.0.3       2.0.3-rc2   2.0.3-rc1   2.0.2       2.0.1       2.0
1.0.1       1.0         0.6.0.2     0.5.2       0.5.1       0.5
0.4.3       0.4.2       0.4.1       0.4         0.3.2       0.3.1
0.3         0.2         0.1

lenv install

lua/luajit/luarocksをinstallします。

Plain text
declare lua_version=5.1.
declare luarocks_version=3.9.
declare luajit_version=lj-v2.1
if command -v lenv &> /dev/null; then
  eval "$(lenv path)"
  lenv fetch
  if [ $(uname -s) == "Darwin" ]; then
    lenv install ${lua_version}:${luarocks_version} macosx
    lenv install ${luajit_version}
  else
    lenv install ${lua_version}:${luarocks_version}
    lenv install ${luajit_version}
  fi
  lenv use ${lua_version}
fi

ひとつずつ簡単に解説していきます。

環境変数のlua_version/luarocks_version/luajit_versionはそれぞれのversionを指定しています。

2024/12/19時点の目的のluaは5.1.5です。

lua_version=5.1.

と指定することで5.1の最新を取得できるようです。

ここを見ると書かれています。

mah0x211/lenv Usage | the following example are installing the lua and luarocks at same time.

luarocksは3.9系最新

luarocks_version=3.9.

luajitだけちょっと変わった感じだけど

luajit_version=lj-v2.1

またmacosの場合は引数をつけるとinstallできるっぽいです。

あらゆる環境で試したわけではないので、以下を見て試してみてください。

Plain text
lenv install <lua version>:<luarocks version> [macos]

lenvではluaのversionに対しluarocksのversionが紐づいてInstallされるみたいです。

lenv use

Plain text
lenv ls

でinstallされているlua versionを入れることで設定されます。

自分の場合は以下です。

Plain text
lenv use 5.1.5

lenv ls

自分の状態はこんな感じでした。

Plain text
lenv ls
list installed lua and luarocks versions:
5.1.5 (/Users/yusukeh/.lenv/lua/5.1.5) (used)
 └ luarocks
    └ 3.9.2 (used)

list installed luajit and luarocks versions:
v2.1 (/Users/yusukeh/.lenv/luajit/v2.1)
Plain text
which lua luarocks
/Users/yusukeh/.lenv/current/bin/lua
/Users/yusukeh/.lenv/current/lua_modules/bin/luarocks

ちょっとinstallするときの指定の仕方に癖がありますが、理解できれば使いやすいです。

luaverに比べるとシンプルでわかりやすいですね

ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください!
『ターミナルがダサいとモテない』シリーズ一覧

転載:ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻

この記事は Medium(@yusuke_h) からの転載です。