安装 Lua 模块以在 LuaLaTeX 中使用 - 续集

安装 Lua 模块以在 LuaLaTeX 中使用 - 续集

有一个同名的问题,安装 Lua 模块以供 LuaLaTeX 使用,显然没有得到解决。我遇到了类似的问题,目前我已经没有主意了。

我正在运行 Debian Testing,并通过包管理器安装了 lua 的 xmlrpc 库。文件安装在

/usr/share/lua/5.1/xmlrpc
/usr/share/lua/5.1/xmlrpc/http.lua
/usr/share/lua/5.1/xmlrpc/init.lua
/usr/share/lua/5.1/xmlrpc/server.lua

并且系统的 lua 安装可以正常找到它。

我已经确定package.path系统的lua安装和luatex之间的参数有所不同。系统:

mpalmer@holzkopf:~$ lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(package.path)
./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua
> 

在 luatex 中,/usr/share/lua路径中缺少 和 子目录。当我将LUA_PATH环境变量设置为系统路径时,/usr/share/lualuatex 中的 和 子目录也会显示出来package.path,但xmlrpc仍然找不到模块。我还尝试创建/usr/local/share/lua的符号链接(实际上并不存在)/usr/share/lua,但同样没有成功。

另一方面,luatex 没有给我一个错误,所以大概成功了,require "socket.http"

该模块存在于 中,/usr/share/lua/5.1/socket/http.lua即使 既不/usr/share/lua是符号链接也不是 ,也可以找到它package.path。因此,它几乎似乎package.path被 luatex 完全忽略了。

有谁知道我在这里遗漏了什么?

答案1

这个答案LuaTeX 会搜索需要加载的文件。require ("socket.http")有效,因为 LuaTeX 有这个内置功能(提到过)在参考手册中在第 3.3 节“Lua 模块”中)。

相关内容