CentOS 上配置 lua 的服务器环境(enet)

安装 lua & luarocket

安装依赖

$ yum install gcc gcc-c++ kernel-devel     
$ yum install readline-dev                          
$ yum install ncurses-devel.i386                

下载并编译lua源文件

$ wget http://www.lua.org/ftp/lua-5.1.4.tar.gz      
$ tar zxvf lua-5.1.4.tar.gz                                      
$ cd lua-5.1.4                                                        
$ make linux                                     

下载并安装 luarocks

$ wget http://luarocks.org/releases/luarocks-2.0.6.tar.gz     
$ tar zxvf luarocks-2.0.6.tar.gz                                              
$ cd luarocks-2.0.6                                                                
$ ./configure                                                                           
$ make                                                                                   
$ make install                    

安装 enet && lua enet

下载并编译enet

$ wget http://enet.bespin.org/download/enet-1.3.13.tar.gz
$ tar zxvf enet-1.3.13.tar.gz                                              
$ cd enet-1.3.13                                                                
$ ./configure                                                                           
$ make                                                                                   
$ make install                    

下载并安装 lua enet

$ luarocks install enet

测一下

$ lua
> require "enet"

没报错的话说明好了

我遇到两次报错,第一次是没找到 enet.so ,这是因为lua在设置的路径范围内没有找到它,设置下LUA_CPATH ,这个值可以通过 luarocks path 查看

$ export LUA_CPATH='/usr/lib/lua/5.1//?.so;/usr/.luarocks/lib/lua/5.1//?.so;./?.so;/usr/lib/lua/5.1/?.so;/usr/lib/lua/5.1/loadall.so'

第二次是加载 enet.so 的时候没找到 libenet.so.7 ,这是因为动态链接库 so 在路径范围内没有找到它,设置下 LD_LIBRARY_PATH,用 find / -name libenent.so.7 查看文件在哪里

libenet.so.7: cannot open shared object file: No such file or directory
$ export LD_LIBRARY_PATH=/home/tangyikejun/lib:$LD_LIBRARY_PATH

开端口

iptables -A INPUT -m state --state NEW -p tcp --dport 1111 -j 

写个示例测连接,我第一次写没成功,用 nc 测一下连接

服务端

$ nc -l 1111

客户端

$ nc 34.55.44.222 1111

如果连通的话在客户端输入 haha,在服务端也会收到 haha

参考:
centos 安装lua
so 文件查找路径的方式

作者:唐衣可俊
出处:http://www.cnblogs.com/tangyikejun/
版权:本文版权归作者本人所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任