Lua не может найти установленные luarocks на Ubuntu
Я устанавливаю luarocks:
$ sudo apt-get install luarocks
Я устанавливаю lua-cjson от luarocks:
$sudo luarocks install lua-cjson
показать пакеты:
$luarocks list
Installed rocks:
----------------
lua-cjson
2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks
Итак, я вижу пакет:
$luarocks show lua-cjson
License: MIT
Homepage: http://www.kyne.com.au/~mark/software/lua-cjson.php
Installed in: /usr/local
. . .
Modules:
cjson
lua2json
json2lua
cjson.util
lua-cjson
2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks
Но Луа не может видеть модуль:
$lua
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio
> require "cjson"
stdin:1: module 'cjson' not found:
....
$locate cjson.so
/usr/local/lib/lua/5.1/cjson.so
Что это за ошибка??
1 ответ
Кажется, проблема в том, что luarocks
по умолчанию устанавливает вещи для Lua 5.1 (это поведение, если вы установили его с помощью apt-get
). Если вы не возражаете против использования Lua 5.1, вы можете просто использовать его вместо этого (набрав lua5.1
), а также require "cjson"
должно работать нормально.
Если вы действительно хотите cjson
для Lua 5.2 это немного сложнее. Во-первых, вам нужно убедиться, что у вас есть файлы разработки для Lua 5.2. Пытаться
sudo apt-get install liblua5.2-dev
Затем загрузите последнюю версию исходного кода для luarocks
здесь Извлечь и cd
в каталог в терминале.
Затем выполните следующие команды (из этого поста)
./configure --lua-version=5.2 --versioned-rocks-dir
make build
sudo make install
Это установит версию luarocks
который работает с Lua 5.2. Вы можете установить cjson
с помощью
sudo luarocks-5.2 install lua-cjson
Вы должны быть в состоянии использовать cjson
в Lua 5.2.