Table of Contents
In this article, I will take you through the steps to install Lua Programming language on Ubuntu 20.04 LTS. Lua is an open source, lightweight, high level programming language developed specifically for embedded use in applications. It is built on top of C programming language. Lua is dynamically typed programming language that runs by interpreting bytecode with a register-based virtual machine. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
Other Features
The other important features of Lua programming language includes:-
- It is easy to use on any platform
- Automatic memory management with a generational garbage collection
- Ideal for configuration, scripting, and rapid prototyping
- No notion of main program
- Works embedded in a host client
- Does not use any global variables. Keep all information it needs in a dynamic structure.
How to Install Lua Programming Language on Ubuntu 20.04 LTS
Also Read: How to Install Miniconda on Ubuntu 20.04 LTS (Focal Fossa)
Step 1: Prerequisites
a) You should have a running Ubuntu 20.04 LTS
System.
b) You should have sudo
or root
access to run privileged commands.
c) You should have apt
utility available in your System.
Step 2: Update Your Server
In the first step, you need to update the System packages to the latest available version by using sudo apt update
command as shown below. This will sync the system packages with the latest versions available from the Ubuntu repo.
cyberithub@ubuntu:~$ sudo apt update
[sudo] password for cyberithub:
Hit:1 https://download.docker.com/linux/ubuntu focal InRelease
Get:2 https://dl.google.com/linux/chrome/deb stable InRelease [1,811 B]
Hit:3 http://in.archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease
Get:6 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:7 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1,077 B]
Hit:8 https://apt.boltops.com stable InRelease
Get:9 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,746 kB]
Get:10 http://in.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:11 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2,121 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-security/main i386 Packages [497 kB]
Get:13 http://in.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [727 kB]
..................................................
If any of the packages needs to be upgraded then run sudo apt upgrade
command as well.
cyberithub@ubuntu:~$ sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: libjs-jquery-ui pypy-lib python-matplotlib-data python3-cycler python3-kiwisolver Use 'sudo apt autoremove' to remove them. The following packages will be upgraded: google-chrome-stable 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 92.1 MB of archives. After this operation, 2,305 kB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 https://dl.google.com/linux/chrome/deb stable/main amd64 google-chrome-stable amd64 106.0.5249.61-1 [92.1 MB] Fetched 92.1 MB in 16s (5,815 kB/s) (Reading database ... 258675 files and directories currently installed.) Preparing to unpack .../google-chrome-stable_106.0.5249.61-1_amd64.deb ... Unpacking google-chrome-stable (106.0.5249.61-1) over (105.0.5195.125-1) ... Setting up google-chrome-stable (106.0.5249.61-1) ... Processing triggers for mime-support (3.64ubuntu1) ... Processing triggers for gnome-menus (3.36.0-1ubuntu1) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Step 3: Install Lua
There are multiple ways to install Lua Interpreter on Ubuntu 20.04 LTS system. You can choose any of the below method depending on the lua version you require in your System.
a) Using apt
You can choose to install lua interpreter by using apt
package manager from default Ubuntu repo. But it might be possible that Ubuntu repo does not always have the latest version available. So if you are not worried about the lua version, then you can simply install the package from default Ubuntu repo by using sudo apt install lua5.3
command as shown below.
cyberithub@ubuntu:~$ sudo apt install lua5.3 Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libjs-jquery-ui pypy-lib python-matplotlib-data python3-cycler python3-kiwisolver Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: lua5.3 0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded. Need to get 110 kB of archives. After this operation, 414 kB of additional disk space will be used. Get:1 http://in.archive.ubuntu.com/ubuntu focal/universe amd64 lua5.3 amd64 5.3.3-1.1ubuntu2 [110 kB] Fetched 110 kB in 1s (95.4 kB/s) Selecting previously unselected package lua5.3. (Reading database ... 258675 files and directories currently installed.) Preparing to unpack .../lua5.3_5.3.3-1.1ubuntu2_amd64.deb ... Unpacking lua5.3 (5.3.3-1.1ubuntu2) ... Setting up lua5.3 (5.3.3-1.1ubuntu2) ... update-alternatives: using /usr/bin/lua5.3 to provide /usr/bin/lua (lua-interpreter) in auto mode update-alternatives: using /usr/bin/luac5.3 to provide /usr/bin/luac (lua-compiler) in auto mode Processing triggers for man-db (2.9.1-1) ...
b) Using Source code
If you are looking to install the latest available version, then you can visit the official website and download the latest version source code using curl
utility as shown below.
cyberithub@ubuntu:~$ curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 352k 100 352k 0 0 196k 0 0:00:01 0:00:01 --:--:-- 196k
After downloading the tar file, you need to extract it by using tar zxf lua-5.4.4.tar.gz
command as shown below.
cyberithub@ubuntu:~$ tar zxf lua-5.4.4.tar.gz
Switch to directory lua-5.4.4
using cd lua-5.4.4
command as shown below.
cyberithub@ubuntu:~$ cd lua-5.4.4
Then build and compile the code by using make all test
command as shown below.
cyberithub@ubuntu:~/lua-5.4.4$ make all test
make[1]: Entering directory '/home/cyberithub/lua-5.4.4/src'
Guessing Linux
make[2]: Entering directory '/home/cyberithub/lua-5.4.4/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl"
make[3]: Entering directory '/home/cyberithub/lua-5.4.4/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_3 -DLUA_USE_LINUX -c -o lapi.o lapi.c
........................
gcc -std=gnu99 -o luac luac.o liblua.a -lm -Wl,-E -ldl
make[3]: Leaving directory '/home/cyberithub/lua-5.4.4/src'
make[2]: Leaving directory '/home/cyberithub/lua-5.4.4/src'
make[1]: Leaving directory '/home/cyberithub/lua-5.4.4/src'
make[1]: Entering directory '/home/cyberithub/lua-5.4.4/src'
./lua -v
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
make[1]: Leaving directory '/home/cyberithub/lua-5.4.4/src'
Finally install the binary by using sudo make install
command as shown below.
cyberithub@ubuntu:~/lua-5.4.4$ sudo make install
[sudo] password for cyberithub:
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.4 /usr/local/lib/lua/5.4
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib
cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1
Step 4: Check Version
You can test the installation by running lua -v
command as shown below.
cyberithub@ubuntu:~$ lua -v Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
Step 5: Write a Sample Program
Now that Lua is successfully installed in your System, it is time to test the tool by writing a sample program. You can write a simple print statement to display "Hi, This is from CyberITHub"
on the output as shown below.
cyberithub@ubuntu:~$ nano hello.lua print("Hi, This is from CyberITHub")
To run the above program, you need to use sudo lua hello.lua
as shown below.
cyberithub@ubuntu:~$ sudo lua hello.lua Hi, This is from CyberITHub
Step 6: Check the Man Page
You can check all the options available with Lua Interpreter from its Man page. You need to use man lua
command to open its Man Page as shown below.
cyberithub@ubuntu:~$ man lua
LUA(1) General Commands Manual LUA(1)
NAME
lua - Lua interpreter
SYNOPSIS
lua [ options ] [ script [ args ] ]
DESCRIPTION
lua is the standalone Lua interpreter. It loads and executes Lua programs, either in textual source form or in precompiled binary form. (Precom‐
piled binaries are output by luac, the Lua compiler.) lua can be used as a batch interpreter and also interactively.
After handling the options, the Lua program in file script is loaded and executed. The args are available to script as strings in a global table
named arg and also as arguments to its main function. When called without arguments, lua behaves as lua -v -i if the standard input is a termi‐
nal, and as lua - otherwise.
.............................................