---
title: "ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻 | grasys blog"
url: "https://blog.grasys.io/post/yusukeh/terminal-lenv"
description: "The story of changing the Lua version manager from luaver to lenv. Photo by Breno Freitas on Unsplash 恵比寿でIT企業をやっているとモテると聞いて創業しましたが早いことありがたいことに10年目に突入した長谷川です。 まだモテる成果は出ていません、、、これからです！（もうめんどくさいのでカウントやめました😆） luaverで今までlua…"
---

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

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[yusukeh](/authors/yusukeh/)
-   公開日：2024年12月19日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#シリーズ: ターミナル環境](/tags/シリーズ-ターミナル環境/)[#Lua](/tags/lua/)[#lenv](/tags/lenv/)

![ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻](/_astro/ogp.Cpeg2GrW_Z29p7FQ.webp)

Photo by [Breno Freitas](https://unsplash.com/@brenofreitas?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=medium&utm_medium=referral)

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](https://github.com/mah0x211/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](https://github.com/mah0x211/lenv)はgoで書かれているのでgoが入っていればsetup自体は簡単です。

Plain textcontent\_copy

```
go install github.com/mah0x211/lenv@latest
```

Plain textcontent\_copy

```
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 textcontent\_copy

```
lenv path > ~/.lenvrc
source ~/.lenvrc
```

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

Plain textcontent\_copy

```
eval "$(lenv path)"
```

## lenv fetch

ここまでで[lenv](https://github.com/mah0x211/lenv)の準備はできました。

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

Plain textcontent\_copy

```
lenv fetch
```

## lenv vers

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

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

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

Plain textcontent\_copy

```
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 textcontent\_copy

```
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.](https://github.com/mah0x211/lenv?tab=readme-ov-file#usage)

luarocksは3.9系最新

luarocks\_version=3.9.

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

luajit\_version=lj-v2.1

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

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

Plain textcontent\_copy

```
lenv install <lua version>:<luarocks version> [macos]
```

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

## lenv use

Plain textcontent\_copy

```
lenv ls
```

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

自分の場合は以下です。

Plain textcontent\_copy

```
lenv use 5.1.5
```

## lenv ls

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

Plain textcontent\_copy

```
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 textcontent\_copy

```
which lua luarocks
/Users/yusukeh/.lenv/current/bin/lua
/Users/yusukeh/.lenv/current/lua_modules/bin/luarocks
```

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

[luaver](https://github.com/DhavalKapil/luaver)に比べるとシンプルでわかりやすいですね

ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください！  
[『ターミナルがダサいとモテない』シリーズ一覧](https://blog.grasys.io/tags/series-terminal-update)

転載：[ターミナルがダサいとモテない。Lua Version Managerでまた悩んでlenvに変えたの巻](https://medium.com/@yusuke_h/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8C%E3%83%80%E3%82%B5%E3%81%84%E3%81%A8%E3%83%A2%E3%83%86%E3%81%AA%E3%81%84-lua-version-manager%E3%81%A7%E3%81%BE%E3%81%9F%E6%82%A9%E3%82%93%E3%81%A7lenv%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F%E3%81%AE%E5%B7%BB-65bff9b20fb1)

この記事は [Medium（@yusuke\_h）](https://medium.com/@yusuke_h) からの転載です。

## この記事を書いた人

[![](/_astro/yusukeh.BvUd2yKE_1mQ6Fp.webp)](/authors/yusukeh/)

### [yusukeh](/authors/yusukeh/)

Fly high. Think deep. Move fast. Go far.🦅

-   [X](https://x.com/yusukeh "X")
-   [GitHub](https://github.com/yusukeh "GitHub")
-   [Medium](https://medium.com/@yusukeh "Medium")
-   [Facebook](https://www.facebook.com/yusuke.exzm "Facebook")
-   [Instagram](https://www.instagram.com/yusukehasegawa/ "Instagram")
-   [LinkedIn](https://www.linkedin.com/in/hasegawa-yusuke-091b4164/ "LinkedIn")

[プロフィールと記事一覧](/authors/yusukeh/)