luarocks lyaml安装错误

Tan*_*tel 3 lua luarocks

我收到luarocks install lyaml以下错误:

Error: Could not find expected file libyaml.a, or libyaml.so, or libyaml.so.* for YAML -- you may have to install YAML in your system and/or pass YAML_DIR or YAML_LIBDIR to the luarocks command. Example: luarocks install lyaml YAML_DIR=/usr/local

lua版本:5.1.5

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

His*_*H M 5

每当你收到 LuaRocks 消息,you may have to install ____ in your system表示 rockspec 有外部依赖项

安装外部依赖项

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

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

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

安装外部依赖项后...

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

luarocks install lyaml

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

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

libyaml.so如果失败,您可以找到库 ( ) 和标头 ( ) 的安装目录yaml.h并告诉 LuaRocks。例如,如果 libyaml.so 安装在某些非标准位置(例如/opt/lib/yaml/libyaml.so和 中的标头),/opt/include/yaml-1/yaml.h您将执行以下操作:

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

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

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