「Luaでパッケージ管理を行いたい」
「JSONが扱えるlua-cjsonをインストールしたい」
「UbuntuにLuaRocksをインストールしたい」
このような場合には、この記事の内容が役に立ちます。
この記事では、LuaRocksのインストールと使い方を解説しています。
本記事の内容
- LuaRocksとは?
- LuaRocksのシステム要件
- LuaRocksのインストール
- LuaRocksの動作確認「lua-cjsonのインストール」
それでは、上記に沿って解説していきます。
LuaRocksとは?
LuaRocksは、Luaモジュールのパッケージマネージャです。
次の形で表現すれば、一目瞭然でしょう。
言語 | パッケージ管理 |
Python | pip |
PHP | Composer |
Node.js | npm |
Lua | LuaRocks |
この表より、LuaRocksの重要性がわかるはずです。
よって、Luaで開発を行う上では必須と言えます。
そもそも、Luaには標準でモジュールが充実していません。
デフォルトでは、LuaはJSONすら扱うことができません。
そのため、モジュールを追加していくことが必須と言えます。
その際、LuaRocksのようなパッケージ管理システムがないとどうなるでしょうか?
言うまでもありませんね。
だからこそ、LuaのインストールとセットでLuaRocksは語られます。
Luaのインストールについては、次の記事で解説しています。
そして、この記事ではLuaRocksのインストールを説明しています。
以上、LuaRocksについての説明でした。
次は、LuaRocksのシステム要件を確認します。
LuaRocksのシステム要件
現時点(2021年12月末)でのLuaRocksの最新バージョンは、3.8.0となります。
この最新バージョンは、2021年11月9日にリリースされています。
ソースからビルドすれば、この最新版をインストールすることは可能です。
しかし、Ubuntu・Debianでは基本的にビルドはするべきではありません。
可能ならば、aptでインストールすべきです。
aptが難しいなら、dpkgでのインストールを検討します。
今回、LuaRocksについてはaptでのインストールが可能です。
どのUbuntuでも、公式でインストール対象となるのはLuaRocks 2.4.2です。
ただし、LuaRocks 2.4.2は2016年11月にリリースされています。
GithubにあるCAHNEG.LOGには、3系しか載っていませんでした。
公式ページにもこれと言った記載はありません。
Googleで検索して、このメーリングリストを見つけました。
とにかく、それぐらいLuaRocks 2.4.2は古いのです。
以下は、LuaRocks 2.4.2のパッケージ情報です。
$ sudo apt info luarocks Package: luarocks Version: 2.4.2+dfsg-1 Priority: optional Section: universe/interpreters Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Enrico Tassi <gareuselesinge@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 705 kB Depends: lua-any, lua5.1 | lua5.2 | lua5.3, liblua5.1-dev | liblua5.2-dev | liblua5.3-dev, wget, zip, unzip Recommends: lua-sec Homepage: http://luarocks.org/ Download-Size: 97.6 kB APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages Description: deployment and management system for Lua modules This package contains LuaRocks, a tool for managing rocks. A Lua rock is a bundle containing a module and some metadata like compilation instructions and copyright. The command line utility luarocks can download, build, install and remove rocks, properly handling dependencies among them and allowing multiple versions of the same rock to coexist. . The tool installs system-wide rocks in /usr/local when run by the superuser, but a regular user can easily tune it to install rocks in his home directory. . This package also provides the luarocks-admin tool, needed to create a rocks repository, and the documentation for luarocks, describing the command line tools as well as the library to manipulate rocks.
ここで気になるのが、依存関係の部分です。
Depends: lua-any, lua5.1 | lua5.2 | lua5.3, liblua5.1-dev | liblua5.2-dev | liblua5.3-dev, wget, zip, unzip
lua5.4がないのです。
しかし、「lua-any」とあります。
これは、「どのバージョンでも大丈夫」と解釈しましょう。
実際、大丈夫です。
以上、LuaRocksのシステム要件を説明しました。
次は、LuaRocksをインストールします。
LuaRocksのインストール
LuaRocksのインストールは、簡単です。
まずは、パッケージリストを更新。
sudo apt-get update
LuaRocksのインストールは、次のコマンドとなります。
sudo apt-get install luarocks
LuaRocksのインストールは、それほど時間はかかりません。
インストールが完了したら、確認です。
$ luarocks --version /usr/bin/luarocks 2.4.2 LuaRocks main command-line interface
上記のようにバージョンが出れば、インストールに問題はありません。
以上、LuaRocksのインストールを説明しました。
最後は、実際にLuaRocksを使ってモジュールをインストールしてみましょう。
LuaRocksの動作確認「lua-cjsonのインストール」
今、最も人気のあるモジュールをインストールしましょう。
「lua-cjson」は、LuaでJSONを扱うことが可能になるモジュールです。
やはり、人気のモジュールなのでしょう。
では、「lua-cjson」のページにアクセスします。
https://luarocks.org/modules/openresty/lua-cjson
「lua-cjson」のインストールコマンドが記載されています。
そのまま実行します。
$ sudo luarocks install lua-cjson Installing https://luarocks.org/lua-cjson-2.1.0.6-1.src.rock gcc -O2 -fPIC -I/usr/include/lua5.1 -c lua_cjson.c -o lua_cjson.o gcc -O2 -fPIC -I/usr/include/lua5.1 -c strbuf.c -o strbuf.o gcc -O2 -fPIC -I/usr/include/lua5.1 -c fpconv.c -o fpconv.o gcc -shared -o cjson.so -L/usr/local/lib lua_cjson.o strbuf.o fpconv.o lua-cjson 2.1.0.6-1 is now installed in /usr/local (license: MIT)
インストールが成功したようです。
なお、書き込み権限が必要な以上は「sudo」が必要となります。
インストールしたモジュールは、次のコマンドで確認できます。
$ luarocks list Installed rocks: ---------------- lua-cjson 2.1.0.6-1 (installed) - /usr/local/lib/luarocks/rocks
ここまで確認できれば、LuaRocksの動作確認としては十分でしょう。
以上、LuaRocksの動作確認「lua-cjsonのインストール」の説明でした。