如何导入本地模块luarocks

我已经使用Lua Rocks在本地安装了cjson

 luarocks install --local  lua-cjson

但我无法访问模块。

> require('cjson')
stdin:1: module 'cjson' not found:

包已经安装在~/.luarocks中。以下是文件结构

.
├── bin
│   ├── json2lua
│   └── lua2json
├── lib
│   ├── lua
│   │   └── 5.4
│   │       └── cjson.so
│   └── luarocks
│       └── rocks-5.4
│           ├── lua-cjson
│           │   └── 2.1.0.6-1
│           │       ├── bin
│           │       │   ├── json2lua
│           │       │   └── lua2json
│           │       ├── lua-cjson-2.1.0.6-1.rockspec
│           │       ├── rock_manifest
│           │       └── tests
│           │           ├── agentzh.t
│           │           ├── bench.lua
│           │           ├── example1.json
│           │           ├── example2.json
│           │           ├── example3.json
│           │           ├── example4.json
│           │           ├── example5.json
│           │           ├── genutf8.pl
│           │           ├── numbers.json
│           │           ├── octets-escaped.dat
│           │           ├── README
│           │           ├── rfc-example1.json
│           │           ├── rfc-example2.json
│           │           ├── test.lua
│           │           ├── TestLua.pm
│           │           └── types.json
│           └── manifest
└── share
    └── lua
        └── 5.4
            ├── cjson
            │   └── util.lua
            ├── json2lua.lua
            └── lua2json.lua

应该设置哪些环境变量以便Lua能够找到包?

点赞
用户6202210
用户6202210

luarocks path 打印出需要添加的所有内容

➜  ~ luarocks path
export LUA_PATH='/usr/share/lua/5.4/?.lua;/usr/share/lua/5.4/?/init.lua;/usr/lib/lua/5.4/?.lua;/usr/lib/lua/5.4/?/init.lua;./?.lua;./?/init.lua;/home/s1n7ax/.luarocks/share/lua/5.4/?.lua;/home/s1n7ax/.luarocks/share/lua/5.4/?/init.lua'
export LUA_CPATH='/usr/lib/lua/5.4/?.so;/usr/lib/lua/5.4/loadall.so;./?.so;/home/s1n7ax/.luarocks/lib/lua/5.4/?.so'
export PATH='/home/s1n7ax/.luarocks/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/s1n7ax/.s1n7ax/bin:/home/s1n7ax/.yarn/bin:/home/s1n7ax/.local/bin'

它只是打印它们,不会运行它们。所以需要运行它们。我添加以下行到启动脚本中以在系统启动时添加路径

eval $(luarocks path)
2021-07-10 08:38:56