代码之家  ›  专栏  ›  技术社区  ›  Tanvi Patel

Luarocks Lyaml安装错误

  •  2
  • Tanvi Patel  · 技术社区  · 7 年前

    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?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hisham H M    7 年前

    每当你收到卢阿洛克的留言 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 install lyaml

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

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

    如果失败,您可以找到库所在的目录( libyaml.so )和标题( yaml.h )已经安装好并告诉卢阿洛克了。例如,如果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