我使用anyenv安装所有脚本语言版本。目前正在将其用于perl plenv
,节点ndenv
,python pyenv
,并且还安装了luaenv。太棒了,因为不会污染系统目录 - 所有内容都安装在我的用户定义的目录中。
luaenv
安装正常,我可以:
$ luaenv install 5.1.5 #installed OK
$ luaenv global 5.1.5 #OK
$ luaenv which lua
/opt/anyenv/envs/luaenv/versions/5.1.5/bin/lua
$ luaenv versions
* 5.1.5 (set by /opt/anyenv/envs/luaenv/version)
$ lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
看起来一切正常。
当然也想安装luarocks
。不幸的是,luaenv
本身并没有为luarocks
的安装提供支持,(例如,错过了luaenv install-rocks
或类似的perl:plenv install-cpanm
) - 所以尝试过按照quick-start guide,例如:
./configure
make build
配置失败,并显示有关缺少lua.h
的消息。
Checking Lua includes...
lua.h not found (looked in /opt/anyenv/envs/luaenv/include, /opt/anyenv/envs/luaenv/include/lua/5.1, /opt/anyenv/envs/luaenv/include/lua5.1)
You may want to use the flag --with-lua or --with-lua-include. See --help.
所以,第一个错误:luaenv
没有设置正确的路径。 :(
之后:
$ find /opt/anyenv/envs/luaenv -name lua.h -print
/opt/anyenv/envs/luaenv/versions/5.1.5/include/lua.h
再次尝试:
$ ./configure --with-lua=/opt/anyenv/envs/luaenv/versions/5.1.5
现在它已成功完成,因此跟随make build
。
检查src/luarocks/site_config.lua
local site_config = {}
site_config.LUAROCKS_PREFIX=[[/usr/local]]
site_config.LUA_INCDIR=[[/opt/anyenv/envs/luaenv/versions/5.1.5/include]]
site_config.LUA_LIBDIR=[[/opt/anyenv/envs/luaenv/versions/5.1.5/lib]]
site_config.LUA_BINDIR=[[/opt/anyenv/envs/luaenv/versions/5.1.5/bin]]
site_config.LUAROCKS_SYSCONFDIR=[[/usr/local/etc/luarocks]]
site_config.LUAROCKS_ROCKS_TREE=[[/usr/local]]
site_config.LUAROCKS_ROCKS_SUBDIR=[[/lib/luarocks/rocks]]
site_config.LUA_DIR_SET=true
site_config.LUAROCKS_UNAME_S=[[Darwin]]
site_config.LUAROCKS_UNAME_M=[[x86_64]]
site_config.LUAROCKS_DOWNLOADER=[[curl]]
site_config.LUAROCKS_MD5CHECKER=[[md5sum]]
return site_config
显然错了。这些路径不是指向/usr/local
,而是指向由luaenv
管理的版本化目录。
我是个lua-noob。试着去学习它。但我甚至无法设置基本环境。 :(经过一个小时的谷歌搜索放弃并在这里问:
如何配置和安装luarocks
以正确使用luaenv
安装的lua
和luaenv
版本?