2016-09-29 2 views
1

-je installer luarocks:Lua ne peut pas trouver installé luarocks sur Ubuntu

$ sudo apt-get install luarocks 

J'installer lua-cjson par luarocks:

$sudo luarocks install lua-cjson 

Afficher les paquets:

$luarocks list 

Installed rocks: 
---------------- 
lua-cjson 
    2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks 

Alors, je vois paquet:

$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 

Mais, Lua ne peut pas voir le module:

$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 

Ce qu'il est l'erreur ??

Répondre

2

Le problème semble être que luarocks par défaut installe des choses pour Lua 5.1 (c'est le comportement si vous l'avez installé en utilisant apt-get). Si cela ne vous dérange pas d'utiliser Lua 5.1, vous pouvez simplement l'utiliser à la place (en tapant lua5.1), et require "cjson" devrait fonctionner correctement.

Si vous voulez vraiment cjson pour Lua 5.2, c'est un peu plus compliqué. Tout d'abord, vous devez vous assurer que vous avez les fichiers de développement pour Lua 5.2. Essayez

sudo apt-get install liblua5.2-dev 

télécharger ensuite la dernière version de la source pour luarockshere. Extrait et cd dans le répertoire d'un terminal.

font ensuite les commandes suivantes (de this post)

./configure --lua-version=5.2 --versioned-rocks-dir 
make build 
sudo make install 

Cela installera une version de luarocks qui fonctionne avec Lua 5.2. Vous pouvez ensuite installer cjson utiliser

sudo luarocks-5.2 install lua-cjson 

Vous devriez alors être en mesure d'utiliser cjson dans Lua 5.2.