CentOS   发布时间:2022-05-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了CentOS上安装Lua & 问题解决大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

呃,在安装之前,先来看看什么是Lua以及Lua有什么特性、适合什么样的应用场景~

Lua概述

Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de figueiredo所组成并于1993年开发。

设计目的

Lua特性

Lua应用场景

Lua安装

Lua安装步骤

从Lua官网【https://www.lua.org/start.html】上可以看到CentOS上安装Lua只需要四个步骤

curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make linux test

下载Lua安装包

[root@dev18 srv]# curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
  % @R_994_10586@l    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   @R_994_10586@l   Spent    Left  Speed
100  296k  100  296k    0     0   104k      0  0:00:02  0:00:02 --:--:--  117k
[root@dev18 srv]#

解压下载好的安装包

[root@dev18 srv]# tar -zvxf lua-5.3.4.tar.gz 
lua-5.3.4/
lua-5.3.4/Makefile
lua-5.3.4/doc/
lua-5.3.4/doc/luac.1
lua-5.3.4/doc/manual.html
lua-5.3.4/doc/manual.css
lua-5.3.4/doc/contents.html
lua-5.3.4/doc/lua.css
lua-5.3.4/doc/osi-certified-72x60.png
lua-5.3.4/doc/logo.gif
lua-5.3.4/doc/lua.1
lua-5.3.4/doc/index.css
lua-5.3.4/doc/readme.html
lua-5.3.4/src/
lua-5.3.4/src/ldblib.c
lua-5.3.4/src/lmathlib.c
lua-5.3.4/src/loslib.c
lua-5.3.4/src/lvm.c
lua-5.3.4/src/ldo.h
lua-5.3.4/src/lua.h
lua-5.3.4/src/lgc.h
lua-5.3.4/src/ltm.h
lua-5.3.4/src/loadlib.c
lua-5.3.4/src/lmem.c
lua-5.3.4/src/lstate.h
lua-5.3.4/src/Makefile
lua-5.3.4/src/lzio.h
lua-5.3.4/src/luaconf.h
lua-5.3.4/src/lopcodes.c
lua-5.3.4/src/lua.c
lua-5.3.4/src/lundump.h
lua-5.3.4/src/lbaselib.c
lua-5.3.4/src/ltable.c
lua-5.3.4/src/ldump.c
lua-5.3.4/src/liolib.c
lua-5.3.4/src/llimits.h
lua-5.3.4/src/lfunc.h
lua-5.3.4/src/lualib.h
lua-5.3.4/src/lzio.c
lua-5.3.4/src/lctype.c
lua-5.3.4/src/lmem.h
lua-5.3.4/src/llex.h
lua-5.3.4/src/ltable.h
lua-5.3.4/src/lString.c
lua-5.3.4/src/ldebug.h
lua-5.3.4/src/lbitlib.c
lua-5.3.4/src/lprefix.h
lua-5.3.4/src/llex.c
lua-5.3.4/src/linit.c
lua-5.3.4/src/lobject.h
lua-5.3.4/src/lapi.h
lua-5.3.4/src/ldebug.c
lua-5.3.4/src/ldo.c
lua-5.3.4/src/lvm.h
lua-5.3.4/src/lauxlib.c
lua-5.3.4/src/luac.c
lua-5.3.4/src/lctype.h
lua-5.3.4/src/lString.h
lua-5.3.4/src/lcorolib.c
lua-5.3.4/src/lutf8lib.c
lua-5.3.4/src/lgc.c
lua-5.3.4/src/lstate.c
lua-5.3.4/src/lundump.c
lua-5.3.4/src/ltablib.c
lua-5.3.4/src/lauxlib.h
lua-5.3.4/src/ltm.c
lua-5.3.4/src/lparser.c
lua-5.3.4/src/lcode.h
lua-5.3.4/src/lobject.c
lua-5.3.4/src/lcode.c
lua-5.3.4/src/lopcodes.h
lua-5.3.4/src/lfunc.c
lua-5.3.4/src/lapi.c
lua-5.3.4/src/lparser.h
lua-5.3.4/src/lua.hpp
lua-5.3.4/src/lstrlib.c
lua-5.3.4/README
[root@dev18 srv]#

@H_84_13@make linux test

[root@dev18 srv]# cd lua-5.3.4
[root@dev18 lua-5.3.4]# make linux test
cd src && make linux
make[1]: Entering directory `/srv/lua-5.3.4/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/srv/lua-5.3.4/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lcode.o lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lctype.o lctype.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ldebug.o ldebug.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ldo.o ldo.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ldump.o ldump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lfunc.o lfunc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lgc.o lgc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o llex.o llex.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lmem.o lmem.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lobject.o lobject.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lopcodes.o lopcodes.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lparser.o lparser.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lstate.o lstate.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lString.o lString.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ltable.o ltable.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ltm.o ltm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lundump.o lundump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lvm.o lvm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lzio.o lzio.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lauxlib.o lauxlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lbaselib.o lbaselib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lbitlib.o lbitlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lcorolib.o lcorolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ldblib.o ldblib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o liolib.o liolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lmathlib.o lmathlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o loslib.o loslib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lstrlib.o lstrlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o ltablib.o ltablib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lutf8lib.o lutf8lib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o loadlib.o loadlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o linit.o linit.c
ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lString.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o 
ranlib liblua.a
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lua.o lua.c
lua.c:82:31: error: readline/readline.h: No such file or directory
lua.c:83:30: error: readline/history.h: No such file or directory
lua.c: In function ‘pushline’:
lua.c:312: warning: implicit declaration of function ‘readline’
lua.c:312: warning: assignment makes pointer from Integer without a cast
lua.c: In function ‘addreturn’:
lua.c:339: warning: implicit declaration of function ‘add_history’
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory `/srv/lua-5.3.4/src'
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/srv/lua-5.3.4/src'
make: *** [linux] Error 2
[root@dev18 lua-5.3.4]#

问题 & 解决

问题

从上述执行@H_727_82@make linux test命令的结果可以看出,遇到了找不到readline相关文件或者目录的错误,如

lua.c:82:31: error: readline/readline.h: No such file or directory
lua.c:83:30: error: readline/history.h: No such file or directory

解决方法

安装readline

使用yum install readline-devel 命令安装readline devel~

[root@dev18 lua-5.3.4]# yum install readline-devel 
Loaded plugins: fastestmirror,security
SetTing up Install Process
Determining fastest mirrors
ISO                                                                                                                                                                                                                                                    | 4.0 kB     00:00     
epel                                                                                                                                                                                                                                                   | 4.3 kB     00:00     
http://download.fedoraproject.org/pub/epel/6/x86_64/repodata/94743b7d3ecf549c9e9e96b30de5d95e67f987ef488c0df4cd3ebd3ca664b9b1-priMary.sqlite.bz2: [Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"
Trying other mirror.
Resolving Dependencies
--> Running transaction check
---> Package readline-devel.x86_64 0:6.0-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                                Arch                                                           Version                                                              Repository                                                   Size
==============================================================================================================================================================================================================================================================================
Installing:
 readline-devel                                                         x86_64                                                         6.0-4.el6                                                            ISO                                                         134 k

transaction SumMary
==============================================================================================================================================================================================================================================================================
Install       1 Package(s)

@R_994_10586@l download size: 134 k
Installed size: 255 k
Is this ok [y/N]:

输入“y”

Installed size: 255 k
Is this ok [y/N]: y
Downloading Packages:
readline-devel-6.0-4.el6.x86_64.rpm                                                                                                                                                                                                                    | 134 kB     00:00     
Running rpm_check_debug
Running transaction Test
transaction Test Succeeded
Running transaction
  Installing : readline-devel-6.0-4.el6.x86_64                                                                                                                                                                                                                            1/1 
  Verifying  : readline-devel-6.0-4.el6.x86_64                                                                                                                                                                                                                            1/1 

Installed:
  readline-devel.x86_64 0:6.0-4.el6                                                                                                                                                                                                                                           

Complete!
[root@dev18 lua-5.3.4]#

再次执行make linux test

[root@dev18 lua-5.3.4]# make linux test
cd src && make linux
make[1]: Entering directory `/srv/lua-5.3.4/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/srv/lua-5.3.4/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o lua.o lua.c
gcc -std=gnu99 -o lua   lua.o liblua.a -lm -Wl,-E -ldl -lreadline 
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o luac.o luac.c
gcc -std=gnu99 -o luac   luac.o liblua.a -lm -Wl,-E -ldl -lreadline 
make[2]: Leaving directory `/srv/lua-5.3.4/src'
make[1]: Leaving directory `/srv/lua-5.3.4/src'
src/lua -v
Lua 5.3.4  Copyright (C) 1994-2017 Lua.org,PUC-Rio
[root@dev18 lua-5.3.4]#

从上述输出内容,可以看出Lua已经安装了~

验证

[root@dev18 ~]# lua -i
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org,PUC-Rio
> print("Welcome to lua world");
Welcome to lua world
>

也可以编写lua脚本查看lua是否安装成功,创建Hello.lua文件,文件内填写如下内容:

然后执行lua脚本~

[root@dev18 luafiles]# vim Hello.lua 
[root@dev18 luafiles]# lua Hello.lua 
welcome to lua world~

通过上述的几个尝试和验证,可以认定Lua已经在CentOS上安装成功了~

大佬总结

以上是大佬教程为你收集整理的CentOS上安装Lua & 问题解决全部内容,希望文章能够帮你解决CentOS上安装Lua & 问题解决所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。