luarocks lyaml 安装错误

标签 lua luarocks

luarocks install lyaml 上我收到以下错误:

错误:找不到 YAML 的预期文件 libyaml.a、libyaml.so 或 libyaml.so.*——您可能必须在系统中安装 YAML 和/或将 YAML_DIR 或 YAML_LIBDIR 传递给luarocks 命令。示例:luarocks install lyaml YAML_DIR=/usr/local

lua版本:5.1.5

如何在系统中安装 YAML 以开始使用 lyaml rock?

最佳答案

每当你收到一条 LuaRocks 消息说 you may have to install ____ in your system 这意味着 rockspec 有一个 external dependency .

安装外部依赖

满足这种依赖性的方法是使用系统的适当方式安装包:如果使用 Debian/Ubuntu,使用 apt-get,如果使用 macOS,可能使用 Homebrew

请注意,对于构建代码,在具有 dev packages 概念的系统中,比如大多数Linux发行版,需要同时安装主库包和dev包(里面包含编译用的头文件)。例如,对于 Debian/Ubuntu,要满足此依赖关系,您需要运行 apt-get install libyaml libyaml-dev

不幸的是,名称在系统和发行版之间并不完全一致:一个模块在一个系统中可能称为 ncurses-dev,在另一个系统中可能称为 libncurses6w-dev,等等。因此,在您的特定情况下,您必须在系统中搜索 YAML 库(提供 libyaml 的包)的正确名称。

一旦安装了外部依赖...

使用系统包管理器安装库通常会在LuaRocks自动检测到的位置安装必要的文件,所以运行

luarocks 安装 lyaml

应该再次找到 libyaml 文件并继续安装。

如果外部依赖安装在非标准位置

如果失败,您可以找到安装库 (libyaml.so) 和 header (yaml.h) 的目录,并将其告知 LuaRocks。例如,如果 libyaml.so 安装在一些非标准位置,例如 /opt/lib/yaml/libyaml.so/opt/include/yaml-1/中的 header yaml.h 你会这样做:

luarocks install lyaml YAML_LIBDIR=/opt/lib/yaml/YAML_INCDIR=/opt/include/yaml-1/

当系统在子目录中安装头文件或库时,就会发生这种情况。例如,对于使用 OpenSSL 的 Mac 上的 LuaSec,有时需要使用这样的路径名:

luarocks 安装 luasec OPENSSL_INCDIR=/usr/local/opt/openssl/include OPENSSL_LIBDIR=/usr/local/opt/openssl/lib

关于luarocks lyaml 安装错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088040/

相关文章:

c++ - nvcc 致命 : Unsupported gpu architecture 'compute_61' while CUDA 8. 0 已安装

lua - 如何在Lua中找到 `f`,使 `pcall(pcall, f)`返回 `false`?

lua - 什么是管理 luarocks rockspec 文件的好方法,为什么?

LUA - 如何舍入百分比数字?

string - 使用 gmatch 捕获来索引表

Luarock : Copying . make'ing 时将 lua 文件复制到目录

lua - 安装了多个版本的 Lua 后,是否可以指定要安装到哪一个 luarock?

Windows 上的 Luarocks 无法识别我的 lua_libdir

nginx - Redis 长轮询 Pub/Sub 频繁消息阻塞

ios - 如何在 iPhone 上使用 Corona sdk 旋转图像