mac 安裝 luasocket

mac lua版本已經升級到5.3,通過luarocks install luasocket一直失敗,無法安裝,於是選擇手工安裝

1.下載並編譯安裝luasocket安裝包

$git clone https://github.com/diegonehab/luasocket.git
$sudo make
/Library/Developer/CommandLineTools/usr/bin/make -C src linux
/Library/Developer/CommandLineTools/usr/bin/make all-unix PLAT=linux
gcc  -I/usr/include/lua/5.1 -I/usr/include/lua5.1 -DLUASOCKET_NODEBUG -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic   -c -o luasocket.o luasocket.c
In file included from luasocket.c:15:
./luasocket.h:27:10: fatal error: 'lua.h' file not found
#include "lua.h"
         ^~~~~~~
1 error generated.
make[2]: *** [luasocket.o] Error 1
make[1]: *** [linux] Error 2
make: *** [linux] Error 2

編譯時未找到lua.h文件,系統中安裝的是lua5.3,修改編譯參數

$sudo make LUAINC=-I/usr/local/Cellar/lua/5.3.5_1/include/lua macosx
$sudo make install

/Library/Developer/CommandLineTools/usr/bin/make -C src install
install -d /usr/local/share/lua/5.1
install -m644 ltn12.lua socket.lua mime.lua /usr/local/share/lua/5.1
install -d /usr/local/share/lua/5.1/socket
install -m644 http.lua url.lua tp.lua ftp.lua headers.lua smtp.lua /usr/local/share/lua/5.1/socket
install -d /usr/local/lib/lua/5.1/socket
install socket-3.0-rc1.so /usr/local/lib/lua/5.1/socket/core.so
install -d /usr/local/lib/lua/5.1/mime
install mime-1.0.3.so /usr/local/lib/lua/5.1/mime/core.so

2.測試驗證

¥lua
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
> require("socker")
stdin:1: module 'socker' not found:
	no field package.preload['socker']
	no file '/usr/local/share/lua/5.3/socker.lua'
	no file '/usr/local/share/lua/5.3/socker/init.lua'
	no file '/usr/local/lib/lua/5.3/socker.lua'
	no file '/usr/local/lib/lua/5.3/socker/init.lua'
	no file './socker.lua'
	no file './socker/init.lua'
	no file '/usr/local/lib/lua/5.3/socker.so'
	no file '/usr/local/lib/lua/5.3/loadall.so'
	no file './socker.so'
stack traceback:
	[C]: in function 'require'
	stdin:1: in main chunk
	[C]: in ?

由於安裝路徑默認安裝路徑與lua查找文件路麼不一徑,嘗試INSTALL_TOP_SHARE 和INSTALL_TOP_LIB重新安排,仍未成功,

於是手工修拷備

$cd  /usr/local/share/lua

$sudo cp -R 5.1 5.3

$cd /usr/local/lib/lua 

$sudo cp   -R 5.1 5.3

3.再次驗證

$ lua
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
> require("socket")
table: 0x7fd7c1c03ad0
>

驗證成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章