使用Luasec生成"模块' ssl.core'找不到"

时间:2016-12-03 03:18:28

标签: linux ssl lua

我在Ubuntu 16.04上运行Lua 5.1

我所拥有的openssl版本符合dpkg -l | grep openssl 1.0.2g-1ubuntu4.5

我已经取消了Luasec 0.5.1的来源

安装说要跑 lua options.lua -g /usr/include/openssl/ssl.h > options.h针对您的ssl版本生成新的options.h。

我已经完成了这项工作,然后使用make linux构建而没有错误。 sudo make install然后

install -d //usr/share/lua/5.1/ssl //usr/lib/lua/5.1
install -D ssl.so //usr/lib/lua/5.1
install -m644 -D ssl.lua //usr/share/lua/5.1
install -m644 -D https.lua //usr/share/lua/5.1/ssl

在我的代码中,我从

开始
local socket = require("socket")
local smtp = require("socket.smtp")
local ssl = require("ssl")

在运行它时,ssl行产生:

lua: /usr/local/share/lua/5.1/ssl.lua:7: module 'ssl.core' not found:
no field package.preload['ssl.core']
no file 'ssl/core.lua'
no file '/usr/local/share/lua/5.1/ssl/core.lua'
no file '/usr/local/share/lua/5.1/ssl/core/init.lua'
no file '/usr/local/luajit/share/luajit-2.1.0-beta2/ssl/core.lua'
no file './ssl/core.so'
no file '/usr/local/lib/lua/5.1/ssl/core.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './ssl.so'
no file '/usr/local/lib/lua/5.1/ssl.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

我在源代码中找不到core.lua。它在这里寻找什么?

1 个答案:

答案 0 :(得分:1)

ssl.coressl.so中定义,请参阅luaopen_ssl_core

但是,ssl.so中安装了/usr/lib/lua/5.1,但未在错误消息中列出的默认路径中找到。

将其移至/usr/local/lib/lua/5.1/ssl.so或更改LUA_CPATHpackage.cpath以包含/usr/lib/lua/5.1/

INSTALL告诉您调整顶级Makefile中的LUAPATHLUACPATH