ターミナルがダサいとモテない。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自体は簡単です。
go install github.com/mah0x211/lenv@latestwhich lenvInitialize
GitHub - mah0x211/lenv: Lua Version Manager
Lua Version Manager. Contribute to mah0x211/lenv development by creating an account on GitHub.
github.com
こちらを見れば、以下のように記載されています。
lenv path > ~/.lenvrc
source ~/.lenvrc自分はちょっとめんどくさいので以下の形でやっています。
eval "$(lenv path)"lenv fetch
ここまででlenvの準備はできました。
まずはlenv fetchして使えるluaとluarocksとluajitの一覧を取得します。
lenv fetchlenv vers
lenv fetchで取得したavailableなlua/luarocks/luajitの一覧を出力してくれます。
2024/12/19時点では以下のようになっていました。
lenv installで指定するluaとluarocksのversionをここから選択してinstallするという流れです。
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.1lenv install
lua/luajit/luarocksをinstallします。
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できるっぽいです。
あらゆる環境で試したわけではないので、以下を見て試してみてください。
lenv install <lua version>:<luarocks version> [macos]lenvではluaのversionに対しluarocksのversionが紐づいてInstallされるみたいです。
lenv use
lenv lsでinstallされているlua versionを入れることで設定されます。
自分の場合は以下です。
lenv use 5.1.5lenv ls
自分の状態はこんな感じでした。
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)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) からの転載です。
