Raspberry-Pi์—์„œ lua ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์น˜

Install luarocks ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋งŒ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ $ sudo apt update && sudo apt upgrade $ apt install git build-essensial #git, gcc, make ํ™˜๊ฒฝ ํ•„์š” $ apt install lua5.1.0 liblua5.1.0 #lua module ์ปดํŒŒ์ผ์‹œ liblua ํ•„์š” $ git clone https://github.com/lunarmodules/luafilesystem.git #luafilesystem ์†Œ์Šค ๋ณต์‚ฌ $ cd luafilesystem $ make # gcc, make, liblua5.1.x ํ•„์š” ์กฐ๊ฑด $ cp src/lfs.so your_devel_directory/ $ cd your_devel_directory/ $ vim myprogram.lua require'lfs' ... LuaStatic ์„ค์น˜ ๋ฐฉ๋ฒ•1: luastatic.lua ์ž์‹ ์„ ์ปดํŒŒ์ผํ•ด์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์‚ฌ์šฉ $ git clone https://github.com/ers35/luastatic.git $ cd luastatic/ $ uastatic.lua luastatic.lua /usr/lib/arm-linux-gnueabihf/liblua5.1.a -I/usr/include/lua5.1/ $ ./luastatic # ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹คํ–‰ ๋ฐ ๋ฒ„์ „ ํ™•์ธ ๋ฐฉ๋ฒ•2: luastatic.lua๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ $ git clone https://github.com/ers35/luastatic.git $ cd luastatic/ $ ./luastatic.lua # ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๋ฐ ๋ฒ„์ „ ํ™•์ธ ๋ชจ๋“ˆ๊ณผ ํ•ฉ์ณ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ปดํŒŒ์ผ ํ•˜๊ธฐ luastatic.lua ์ž์‹ ์€ ์˜์กด์„ฑ์ด ์—†์œผ๋ฏ€๋กœ ~/bin ๋“ฑ์— ์˜ฎ๊ธด ํ›„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. myprogram.lua๊ฐ€ ๊ฐ™์€ ํด๋”์— ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ํฌํ•จํ•ด์„œ ์ปดํŒŒ์ผ๋œ๋‹ค. $ cp luastatic.lua ~/bin $ luastatic.lua myprogram.lua /usr/lib/arm-linux-gnueabihf/liblua5.1.a -I/usr/include/lua5.1/ ๊ณ ๋ ค ์‚ฌํ•ญ ์œ„์˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ์ปดํŒŒ์ผ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์–ด requireํ•ด์„œ ์‚ฌ์šฉ. ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๊ณผ main.lua๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋งŒ๋“ ๋‹ค. ๋˜๋Š” ํŒŒ์ผ์„ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ•  ์˜ˆ์ •.

2022-09-13 ยท 181 words

Luarocks - lua ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ

INTRO lua์˜ ํ™•์žฅ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. INSTALL and SETUP Install System-Wide : /usr/local/ $ sudo apt install luarocks # luarocks ์„ค์น˜ $ sudo luarocks install stdlib # ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ $ sudo chmod a+r /usr/local/share/lua/5.1/* # ์ผ๋ฐ˜์‚ฌ์šฉ์ž ์ฝ๊ธฐ ๊ถŒํ•œ ๋ถ€์—ฌ $ sudo luarocks install package_name # ํŒจํ‚ค์ง€ ์„ค์น˜ Install User Base : $HOME/.luarocks $ sudo apt install luarocks # luarocks ์„ค์น˜ $ echo 'PATH=$PATH:$HOME/.luarocks/bin' >> ~/.bashrc # add luarock bin path $ echo 'eval "$(luarocks path --bin)"' >> ~/.bashrc # add LUA_PATH, LUA_CPATH $ . ~/.bashrc $ luarocks install --local package_name # ํŒจํ‚ค์ง€ ์„ค์น˜ (--local) Rcoktree Structure: ๊ธฐ๋ณธ ์„ค์น˜ ๊ตฌ์กฐ {base} (base rocks tree directory) โ”œโ”€โ”€ bin (deployment of command line scripts) โ”œโ”€โ”€ lib โ”‚ โ”œโ”€โ”€ luarocks โ”‚ โ”‚ โ””โ”€โ”€ rocks (contains manifest and sub-dirs with rocks) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ lua โ”‚ โ””โ”€โ”€ 5.1 (deployment of binary modules) โ”‚ โ””โ”€โ”€ share โ””โ”€โ”€ lua โ””โ”€โ”€ 5.1 (deployment of Lua modules) Usage $ luarocks # show help and usage $ luarocks list # show installed packages $ luarocks search pack_name # search packages $ luarocks install pack_name # remove installed packages $ luarocks show pack_name # show info installed packages $ luarocks remove pack_name # remove installed packages ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ก€ ํŒจํ‚ค์ง€๋Š” http://luarocks.org ์ฐธ์กฐ - ๊ฐ ๋ชจ๋“ˆ ๋‹ค์šด๋กœ๋“œ ์ˆœ์œ„๋„ ์ฐธ๊ณ  ...

2022-08-30 ยท 309 words

Luastatic - lua ๋…๋ฆฝ์‹คํ–‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ปดํŒŒ์ผ๋Ÿฌ

Intro lua ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹จ๋… ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ (gcc๋กœ ์ปดํŒŒ์ผ) ์ฝ”๋“œ๋ฅผ ์ˆจ๊ธฐ๊ณ  ๋น ๋ฅธ ๋‹จ๋… ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฐ”๊พธ๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉ ๋˜๋Š” ๊ฐœ๋ฐœ์‹œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฃจ์•„ํŒŒ์ผ์„ require๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ณ ์ž ํ•  ๋•Œ luarocks๋กœ ์„ค์น˜ํ•œ๋‹ค. luarocks๋กœ ์„ค์น˜๋œ ๋ชจ๋“ˆ์€ ~/.bashrc์— eval "$(luarocks path --bin)"๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ํฌํ•จ๋œ๋‹ค. ๋ฌธ์ œ๋Š” ๊ฐ™์€ ๋ฆฌ๋ˆ…์Šค๋ผ๋„ ๋ฒ„์ „๊ฐ„ ๋ฐฐํฌํŒ๊ฐ„์— glibc ํ˜ธํ™˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ด๋‹ค. ๊ฑฐ์˜ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ๋งŒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ณธ๋‹ค. ๋‹จ, alpine linux์˜ ๊ฒฝ์šฐ์—๋Š” glibc ๋ฒ„์ „ ๋ฌธ์ œ๊ฐ€ ์—†๊ณ , ์šฉ๋Ÿ‰๋„ ์ž‘๋‹ค. debian ๊ณ„์—ด ์š”๊ตฌ์‚ฌํ•ญ: build-essential(gcc), lua, luastatic alpine Linux ์š”๊ตฌ์‚ฌํ•ญ: build-base, clang, luajit, luastatic Install and Howto Install $ luarocks install --local luastatic # install luastatic $ export PATH=$PATH:$HOME/.luarocks/bin # set PATH for luarocks bin $ luastatic # show version and usage Compile Single Lua file $ luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 $ ./myprogram Embed library.lua for require(โ€œlibraryโ€) $ luastatic myprogram.lua \ myprogram.lua \ library.lua \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 C library containing luaopen_() $ luastatic myprogram.lua \ library.a \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 LuaJit on Ubuntu - ์šฐ๋ถ„ํˆฌ์—์„œ LuaJit ์‚ฌ์šฉ $ sudo apt install luajit # install luajit - 2.1.0 $ sudo apt install libluajit-5.1-dev # install libluajit dev - 5.1 $ luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/libluajit-5.1.a \ -I /usr/include/luajit-2.1 \ -no-pie LuaJit on Alpine - LuaJit, clang with musl lib static compile # apk add luajit luajit-dev # install luajit - 2.1.0 # apk add build-base clang make # install build base and clang # env CC=clang luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/libluajit-5.1.a \ -I /usr/include/luajit-2.1 \ -no-pie ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐ Links https://github.com/ers35/luastatic ...

2022-08-30 ยท (updated 2022-11-29) ยท 249 words