创建自定义版本的 luarocks 的步骤

Posted

技术标签:

【中文标题】创建自定义版本的 luarocks 的步骤【英文标题】:Steps to create a custom version of a luarocks 【发布时间】:2019-02-14 07:31:44 【问题描述】:

我需要自定义一个 luarocks 库。

假设我使用以下方式安装它:

sudo luarocks install lua-abc

如果我想要这个库的内部自定义版本,如何将它添加到我的 openresty 服务器?

luarocks 是否只是从 github 下载代码,然后将其保存到特定文件夹? (如果是,哪个文件夹?)

【问题讨论】:

【参考方案1】:

这取决于,如果包包含任何 C 库形式的外部依赖项,那么它会下载文件并编译它们并复制到 default 路径中。 通常默认路径是:

外部 C 库/usr/local/lib/lua/5.*/usr/local/share/lua/5.*

石头被下载到/usr/local/lib/luarocks/rocks/

【讨论】:

所以这意味着 openresty 将在 /lsr/local/lib/luarocks/rocks 路径文件中查找您需要的文件,例如:local http = require "resty.http" ? /lsr/local/lib/luarocks/rocks 仅用于存储rock文件和安装目的 @Blankman 顺便问一下,您想创建一个新的自定义 lua rock 还是自定义当前安装的版本以满足您的需要? 我想自定义一个 lua 岩石。然后我想在我的服务器上获取我的自定义版本。我复制了 lua 岩石,对其进行了自定义,但是当我推送到我的服务器时,我注意到我没有像 resty.http 这样的依赖项 @Blankman 您是否尝试将依赖项添加到您的 rockspec 文件中?【参考方案2】:

LuaRocks 在使用你自己的可执行文件名和你的编译器 CC 时真的很狡猾。像 cmake 这样的依赖项需要运行 LuaRocks 下载 C 和 C++ 源以编译成共享库,例如 LuaSocket 会生成一个文件core.so,这需要将执行驻留在 .so 文件中的luaopen_libluasocket(lua_State* L); 函数。

为了让我将 LuaRocks 与 LuaConsole 一起使用(我的 lua.c 替代 CLI 应用程序,很快将成为 luac.c),我必须在安装后修改实际文件。这是链接:https://github.com/tilkinsc/LuaConsole/wiki/LuaRocks-Support-Linux-GCC

基本上,要点是:LuaRocks 默认为开发人员的用例而不是普通的 gi-j​​oe。所以继续运行你的./configure,我不确定它是否支持--prefix=XXX 但是你需要编辑site_config_x_x.lua 文件以添加site_config.LUA_INTERPRETER=[[luaw]] -- name of lua interpreter,同时将实际调用切换到luarocks shell 内的解释器脚本。此处可以更好地解释该特定部分:@ 987654322@ 我确实做到了@ 987654330@ 而不是他们所做的任何事情......并且 %* 也就是所有参数,也就是传递所有参数。

在这一切都说完了之后,你的任务是设置 LUA_CPATH 和 LUA_PATH 来搜索你的文件。它会根据安装而改变,但找到它的命令是luarocks path --bin,它将它转储出去。如果需要,您可以将其添加到 LUA_INIT env var,但我在 Windows 上并使用以下方法动态设置我自己的路径变量:https://gist.github.com/tilkinsc/f6718ca61d76085b064c3dca02f96017 或者,您可以自己设置 package.path 和 package.cpath...但我不推荐。

LuaRocks 一旦你开始工作就很棒了:D

【讨论】:

【参考方案3】:
sudo apt-get install build-essential
cd /usr/local/src/

从Browse Here下载所需的版本

tar -xvf luarocks-3.2.1.tar.gz
cd luarocks-3.2.1

./configure
make build
sudo make install

【讨论】:

以上是关于创建自定义版本的 luarocks 的步骤的主要内容,如果未能解决你的问题,请参考以下文章

创建自定义视图的步骤

Cucumber 6 未定义的自定义步骤

zabbix自定义web检测

五自定义Zabbix监控项目

ios 使用 xib 文件创建自定义 UITableViewCell 的步骤

事件日志如何创建自定义报表