In the evolving landscape of Linux package management, Flatpak and
Snap stand out as two prominent technologies designed to simplify
application distribution and enhance security across various Linux
distributions. Understanding their differences can help users choose the best
option for their needs.
What are the differences?
Flatpak and Snap each serve to package applications in a way that allows them
to run consistently across different Linux environments. Here’s a brief
overview of each.
Flatpak
Flatpak allows developers to create a single package that can run on any Linux
distribution. It emphasizes sandboxing, enabling applications to run in
isolated environments, thereby improving security and preventing interference
with the system.
Snap
Created by Canonical, the publishers of Ubuntu, Snap is designed to package
applications along with their dependencies, ensuring they run smoothly on any
Linux distribution. Snaps are automatically updated and can roll back to
previous versions if needed.
Installation and Setup
Flatpak
First, install Flatpak via your package manager. For example, in
Debian/Ubuntu:
Install Snap via your package manager. On Debian/Ubuntu, it is:
sudo apt install snapd
Install a Snap application:
sudo snap install hello-world
Run the application directly from the terminal or application menu.
Differences
We do not necessarily believe that there are pros/cons here, so we want to
highlight the differences.
Flatpak
Strong sandboxing for enhanced security
Works on multiple distributions
Flexibility to use existing package managers
Smaller number of available applications compared to Snap
Requires user intervention for updates
Snap
Automatic updates and rollback options
Large library of applications available in the Snap Store
Good integration with Ubuntu ecosystems
Slightly heavier due to background services
Limited to the Snap Store, which can restrict availability
Conclusion
Both Flatpak and Snap offer compelling advantages for Linux users looking to
simplify application management while enhancing security.
Your choice between them may depend on your distribution, personal
preferences, and the specific applications you wish to use. By understanding
the differences outlined above, you'll be better equipped to decide which
packaging format best suits your needs in the Linux ecosystem.
Our recommendation? Consider trying both, as each has its unique strengths and can coexist on the
same system. Happy Linux!
Wednesday, April 22, 2026
Understanding Package Managers in Linux
Package managers make managing software very easy and much simpler on Linux
than on Macs or Windows PCs. Learn how...
Package managers make managing software very easy, making it much simpler to
install software on Linux than it is on Macs or Windows PCs.
With package managers, both regular users and sysadmins have access to a
simple process to install, upgrad, revert, and remove applications in Linux.
In this article, we'll explore the package managers associated with some of
the most popular Linux distributions: Alpine, Debian/Ubuntu, Arch, RHEL, and
SUSE.
Understanding Package Managers in Linux
Package managers are programs that allow users install and uninstall software
packages efficiently, manage dependencies, and ensure that systems remain
organized and secure.
The process behind package managers is simple. First, the user passes the name
of a software package as an argument. The package manager then performs a
lookup against a package repository to see whether that package exists. If it
is found, the package manager installs the application defined by the package
and its dependencies to the specified locations on the system.
Package managers can be divided into two categories: binary package managers,
which handle precompiled binaries, and source package managers, which build
software from source.
Each major Linux distribution often has its own package management system that
is tailored to its unique needs. Let's see the most popular ones next.
Package Managers for Popular Distributions
Alpine (apk)
Alpine Package Keeper (apk) is a lightweight package manager designed
for simplicity and speed. It uses
.apk files and is focused on
minimalism and security.
# Install a package
$ apk add <package>
# Remove a package
$ apk del <package>
# Search packages
$ apk search <keyword>
# Update the package index.
$ apk update
# Upgrade installed packages
$ apk upgrade
Debian/Ubuntu (apt)
Advanced Package Tool (apt) is a powerful command-line tool for
managing packages. It works with
.deb files and allows users to
search for, install, and update software across repositories.
# Install a package
$ apt install <package>
# Remove a package
$ apt remove <package>
# Search packages
$ apt search <package>
# Update the package index
$ apt update
# Upgrade all installed packages
$ apt upgrade
Arch (pacman)
Pacman is the package manager for Arch Linux and its derivatives.
It uses a simple syntax and manages both binary packages and the sources of
the software. Pacman is known for its speed and simplicity.
# Install a package
$ pacman -S <package>
# Remove a package
$ pacman -R <package>
# Search packages
$ pacman -Ss <package>
# Synchronize and update the package database
$ pacman -Sy
# Upgrade all installed packages
$ pacman -Su
RHEL/CentOS (yum/dnf)
Yellowdog Updater Modified (yum) and Dandified YUM (dnf) are package managers
for Red Hat-based distributions. They handle
.rpm files and are known for their
dependency resolution and repository management. DNF is the next-generation
version of YUM.
Zypper is the command line package manager for SUSE, designed to
manage .rpm packages and their
dependencies effectively. It offers features such as delta RPMs, enabling
faster downloads and updates. |
# Install a package
$ zypper install <package>
# Remove a package
$ zypper remove <package>
# Search packages
$ zypper search <package>
# Refresh the repository data $ zypper refresh
# Upgrade all installed packages. $ zypper update
Conclusion
Understanding package managers is crucial for effective Linux system
management.
Each distribution has tailored its package manager, so if you use many distros, make sure you understand well the package manager for your distro.
Mastering these tools can significantly enhance your Linux experience, making
software management seamless and efficient. As Linux continues to evolve,
familiarity with these package managers will remain a valuable skill for users
and administrators alike.
Wednesday, April 8, 2026
Lynx: A great web browser for the Linux terminal
Text-based terminals used to be a thing in Linux. But they are still used today
Not much known to new Linux users is that Linux has had for many decades web
browsers that can be used directly in the terminal. In this post, let's learn
about Lynx, a great terminal application for Linux.
Lynx stands as one of the oldest web browsers still in use today, providing a
unique and efficient way to browse the web directly from the terminal.
Designed for speed and simplicity, Lynx is a text-based browser that allows
users to navigate web pages in a manner that is particularly beneficial for
users with limited bandwidth or those who prefer a distraction-free
interface.
Key Features
Speed and Performance
Lynx is lightweight and operates swiftly, particularly on older hardware or
over slow connections. Since it exclusively handles text, loading much faster
than graphical browsers is a significant advantage.
Keyboard Navigation
Designed for keyboard lovers, Lynx utilizes intuitive keyboard shortcuts for
navigation, making it a great choice for those who prefer not to use a mouse.
You can jump between links, scroll through pages, and execute commands
seamlessly with just your keyboard.
Accessibility
Lynx is not just for tech-savvy users; it's an accessible tool for anyone who
finds visual interfaces overwhelming. As a text-based browser, it is highly
usable for individuals with visual impairments, who might rely on screen
readers.
Customization
Users can easily configure Lynx to suit their needs. Settings related to
display, colors, and even configurations for specific websites can be
adjusted, making it a versatile option.
Security
Lynx presents a smaller attack surface compared to graphical browsers, which
can be subject to more vulnerabilities. The lack of JavaScript and other
executable content significantly reduces risks.
Installing Lynx on Linux
The installation process for Lynx is straightforward and typically can be done
via terminal commands. Here’s how you can install Lynx on various Linux
distributions:
Ubuntu/Debian
```bash
sudo apt update
sudo apt install lynx
```
Fedora/RHEL
```bash
sudo dnf install lynx
```
Arch Linux
```bash
sudo pacman -S lynx
```
OpenSUSE
sudo zypper install lynx
Basic Usage of Lynx
Lanching
After installation, you can launch Lynx by simply typing `lynx` in the
terminal.
Navigation
Navigating Lynx is simple but does require memorization of some key commands:
Arrow Keys: Use these to move up and down through links and content.
Enter: Opens the selected link.
B: Go back to the previous page.
G: Go to a specific URL.
Q: Quit Lynx.
H: Access Help to see all commands
Opening a Website
To open a website, simply type:
lynx https://www.example.com
Lynx will display the content in a readable format, with links clearly
indicated.
Why use browser based terminals?
Pros:
Lightweight and fast
Ideal for low-bandwidth usage
Simple keyboard navigation
More secure due to fewer features
Cons:
No graphical support
Limited to text-only content
Less user-friendly for beginners
Modern web features often unsupported
Conclusion
For users seeking a fast, efficient, and distraction-free browsing experience,
Lynx is a commendable choice. Its simplicity and speed can be
especially appealing in today’s world, where online bloat can slow down even
the most robust systems.
Despite not having graphical capabilities of modern browsers, Lynx has its
place in the toolkit of anyone looking for an alternative way to experience
the web.
Whether you’re a seasoned programmer, a terminal enthusiast, or simply someone
looking to reduce your online distractions, Lynx is worth exploring in your
Linux environment.
Wednesday, March 25, 2026
What is a Shell in Linux?
Learn what is a shell in Linux, your shortcut to a successful career with Linux and open source software
Commonly mentioned in the Linux (and systems administration) world is the word shell. But what is it?
A shell in the context of Linux is a user interface that allows users to
interact with the operating system. It provides a way to execute commands, run
programs, and manage files from a command-line interface (CLI) instead of a
graphical user interface (GUI).
Types of Shells
There are several types of shells available in Linux, each with its own
features. The most common are listed below.
Bash
The Bourne Again SHell, the default shell for many Linux distributions, known
for its rich feature set and scripting capabilities.
Zsh
Z Shell, an extended version of Bash with enhanced features such as improved
auto-completion and globbing.
Fish
Friendly Interactive SHell, designed for user-friendliness, with syntax
highlighting and automatic suggestions.
Tcsh
An enhanced version of the C shell (csh), offering command-line editing and
job control. |
Key Functions of a Shell
Let's review why a shell exists in the first place.
Command Execution
You can run commands to perform tasks such as file manipulation, program
execution, and system monitoring.
Scripting
Shells allow users to write scripts to automate repetitive tasks, making
system administration more efficient.
Environment Management
Users can set and manage environment variables, affecting how processes
behave.
Job Control
You can manage running processes, including background tasks and foreground
processes.
How to Access the Shell
So how does one access a shell in Linux?
Open the Terminal
You can typically find the terminal in the applications menu or by using a
shortcut like `Ctrl + Alt + T`, using the mouse (click on the terminal icon)
or in Gnome, press the Super key -> terminal to start it.
Command Line Interface
Once open, you will see a command prompt where you can type commands.
Basic Commands
Here are some basic commands everyone should know while using the shell.
ls Lists files and directories.
cd [directory]: Changes the current directory.
cp [source] [destination]: Copies files or directories.
mv [source] [destination]: Moves or renames files or directories.
rm [file]: Deletes files.
What to learn next
We recommend learning Bash next. Bash is the default shell in most Linux
distros, and also default on enterprise Linux distributions such as Ubuntu or
RHEL.
Conclusion
The shell is an essential component of Linux, giving users powerful
functionalities for interaction without needing a graphical interface.
Understanding how to use the shell can greatly enhance productivity and system
control. Whether you're a beginner or advanced user, getting comfortable with
the shell will improve your efficiency in managing a Linux environment.
Monday, February 23, 2026
Using the ip command in Linux
Why you have to stop using ifconfig and start using ip, the modern method for
configuring a Linux network interface.
For a long time, the ifconfig command was the default
method for configuring a network interface. It served Linux users
well, but networking is complex, and the commands to configure it
must be robust. The ip command is the new default
networking command for modern systems, and in this article, I'll
show you how to use it.
The ip command is functionally organized on two layers
of the
OSI networking stack: Layer 2 (data link layer) and Layer 3 (network or IP layer). It
does all the work in the old net-tools package.
The ip command is included in the
iproute2util package. It's probably already included in
your Linux distribution. If it's not, you can install it from your
distro's software repository.
Comparing ipconfig and ip usage
The ip and ipconfic commands can be used
to configure a network interface, but they do things differently.
I'll compare how to do common tasks with the old
(ipconfig) and new (ip) commands.
View network interface and IP address
If you want to see the IP address of a host or view network
interface information, the old ifconfig command,
with no arguments, provides a good summary:
The new ip command provides similar results, but
the command is ip address show, or just
ip a for short:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether bc:ee:7b:5e:7d:d8 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:71:90:81:1e:b5 brd ff:ff:ff:ff:ff:ff
inet 10.1.1.6/27 brd 10.1.1.31 scope global dynamic wlan0
valid_lft 83490sec preferred_lft 83490sec
inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212/64 scope global noprefixroute dynamic
valid_lft 6909sec preferred_lft 3309sec
inet6 fe80::8eb3:4bc0:7cbb:59e8/64 scope link
valid_lft forever preferred_lft forever
Add IP address
To add an IP address to an interface with ifconfig, the
command is:
$ ifconfig eth0 add 192.9.203.21
The command is similar for ip:
$ ip address add 192.9.203.21 dev eth0
Subcommands in ip can be shortened, so this command is
equally valid:
$ ip addr add 192.9.203.21 dev eth0
You can make it even shorter:
$ ip a add 192.9.203.21 dev eth0
Remove an IP address
The inverse of adding an IP address is to remove one.
With ifconfig, the syntax is:
$ ifconfig eth0 del 192.9.203.21
The ip command syntax is:
$ ip a del 192.9.203.21 dev eth0
Enable or disable multicast
Enabling (or disabling)
multicast
on an interface with ifconfig happens with the
multicast argument:
# ifconfig eth0 multicast
With ip, use the set subcommand with
the device (dev) and a Boolean or toggle
multicast option:
# ip linkset dev eth0 multicast on
Enable or disable a network
Every sysadmin is familiar with the old "turn it off and then on
again" trick to fix a problem. In terms of networking interfaces,
that translates to bringing a network up or down.
The ifconfig command does this with the
up or down keywords:
# ifconfig eth0 up
Or you could use a dedicated command:
# ifup eth0
The ip command uses the set subcommand to
set the interface to an up or down state:
# ip linkset eth0 up
Enable or disable the Address Resolution Protocol (ARP)
With ifconfig, you enable ARP by declaring it:
# ifconfig eth0 arp
With ip, you set the arp property
as on or off:
# ip linkset dev eth0 arp on
Pros and cons of ip and ipconfig
The ip command is more versatile and technically more
efficient than ifconfig because it uses
Netlink sockets rather than ioctl system
calls.
The ip command may appear more verbose and more complex
than ifconfig, but that's one reason it's more
versatile. Once you start using it, you'll get a feel for its
internal logic (for instance, using set instead of a
seemingly arbitrary mix of declarations or settings).
Ultimately, ifconfig is outdated (for instance, it
lacks full support for network namespaces), and ip is
designed for the modern network. Try it out, learn it, use it.
You'll be glad you did!
Tuesday, April 13, 2021
How to get started with the Linux terminal
The terminal may seem scary for new Linux users. However, it's one of the
tools that has the biggest potential on your Linux journey. Learn why
The Linux terminal on Ubuntu
On a previous post we discussed the benefits of using the Linux terminal.
Today, let's review how to get started with Bash, the most common
shell in GNU/Linux operating systems.
The history of Bash
But before we get hands-on, let's learn more a little about Bash. Bash is
a Unix shell and command language written by
Brian Fox
for the GNU Project as
a
free software
replacement for the
Bourne shell (which is located in your system under /usr/bin/sh and is still widely used, especially in containers).
First
released in 1989, it has been used as the default login shell for most Linux
distributions including the most popular distributions such as
Ubuntu, Fedora, Arch,
Debian and even on the
Raspberry Pi.
To finish our introduction, the name Bash is an acronym for Bourne Again
Shell, a pun on the name of
the Bourne shell that
it replaces (and extends).
Why learn Bash
Due to its popularity, power and ubiquity, we strongly recommend that you
learn it if you want to be comfortable in Linux and computers in general. Many
skills you'll learn in your bash/OSS-journey will definitely carry over to
Macs, Windows and well into your professional life.
Bash on Windows
Today, Bash can also be found on Windows via the
Windows Subsystem for Linux
(WSL for short). We will review how to get started on WSL real soon. Keep
tuned!
Starting the Terminal
To start the terminal on Ubuntu (or any
GNOME-based distro), simply type terminal
on the Activities tab. KDE and
Xfce users should also have equivalent
terminal apps in their systems.
On Ubuntu, type terminal to open your first terminal
Clicking on the terminal icon should open a new terminal for you:
Your bash terminal on Linux
You can confirm that it's running bash by running the following command:
echo $SHELL
/bin/bash
Entering Commands
Entering commands in your terminal is straightforward, just type them. For
example, here are some basic ones:
pwd - lists the current directory
ls - lists the files in the current directory
cd - change the current folder
cat - prints the contents of a file
cp - copies a file
mv - moves a file
rm - removes a file
mkdir - creates a new directory
Some simple commands on the terminal
The above list may seem a lot for a new user. Don't stress,
with time you'll learn these tools and soon they'll be part of your
muscle memory
Manual Page
Linux also has an interesting utility called man that is used for reading
the manuals (documentation) of the programs, tools and libraries available on your system. To view Bash's manual, type:
man bash
To go the extra mile, we also recommend checking this related manual page:
man bash-builtins
Follow up video
To finish, we would like to point you to an online resource that will teach
you Bash better than we could. Feel free to watch it at your own pace to get
familiar with it. For the record, we have absolutely no affiliation we the video below, we
just want you to learn Bash and Linux 😊
Conclusion
On this article we learned a little more about the Linux terminal and Bash. Bash is a fantastic tool that any Linux user should learn. We hope it helps!
The command-line (aka terminal) is a scary thing for new Linux users. But
understanding it can be a huge step in your Linux journey and a significant
step in your career
If you're new to Linux, the command-line interface (also known as CLI
or terminal) may look scary. But it shouldn't. The CLI is a powerful and
resourceful tool that every aspiring Linux user should learn and be
comfortable with. On this article, let's review many reasons why you should
learn and use the command line, commonly (and often incorrectly) referred to
as terminal, shell, bash and CLI.
Ubiquitous
The command-line interface (CLI) is available in every operating system, not
only in Linux. Very frequently, developers and system administrators spend
most of the time in them. If you want to work with Linux and technology in
general, better start learning it.
Terminals are available in every operating system including Linux,
Windows and Macs
Powerful
CLI-based apps are much more powerful than their GUI-based equivalents. That
happens because usually GUIs are
wrappersaround libraries
developed by developers. Very frequently, these libraries contain way more
functionality than what's available in the graphical interface because, as you
might expect, since software development takes time and costs money to
produce, developers only add to GUI apps the most popular features.
For example, these are some of the options that the
GNU find tool provides
us:
Does your GUI-based find tool has all those options?
Quicker
Common and repetitive tasks are also faster in the terminal with the advantage
that you will be able to repeat and even schedule these tasks so they run
automatically, releasing you to do actual work, leaving the repetitive tasks
to computer.
For example, consider this standard development workflow:
If you were doing the above using a GUI-based git client (for example, Tortoise Git), the workflow would be similar to the below, taking you approximately 20
minutes to complete:
Right-click a folder in Nautilus (or Windows Explorer, or Finder) ->
Select clone -> Paster the Url -> Click OK
Wait for the download to Complete -> Click OK
Back to Nautilus -> Find File -> Open it
Make your changes (by probably using GEdit, KEdit or Visual Studio Code)
-> Save
Back to Nautilus
Right Click -> Commit
Right Click -> Push
Take a deep breath
In the terminal (for example, in Ubuntu),
the workflow would be equivalent to the below and could be completed in less
than 2 minutes:
sudo apt update && sudo apt install git -y # install
git
git clone <url> # clone the GitHub repo locally
vim/nano file -> save # edit the file using a text-based editor
git commit -m <msg> # commits the file locally
git push # push the changes back to our GitHub repo
Scriptable
Terminal/CLI-based tasks can be scripted (automated) and easily repeated
meaning that you will be able to optimize a big part of your workflow. Another
benefit is that these scripts
can be easily shared, exactly as
business and professional developers do!
So let's continue the above example. Our developer realized she is wasting too
much time in the GUI and would like to speed up her workflow even more. She
learned
some bash scripting
and wrote the function below:
gcp ()
{
msg="More updates";
if [ -n "$1" ]; then
msg=$1;
fi;
git add ./ && git commit -m "$msg" && git push
}
She's happy because now she can run from the terminal, the below command as
soon as she finishes her changes:
gcp <commit-msg>
What previously took 5 minutes is now is done in 2 seconds (1.8 seconds to
write the commit message and 0.2 to push the code upstream). A huge advantage
in her workflow. Imagine how much more productive she would be during the
course of her career!
It's important to always think how can you optimize your workflow. These small
optimizations add up to your productivity significantly over time.
Lightweight
Not only the CLI is faster and more lightweight than equivalent GUI-based
applications but it's quicker to run the same commands. For example, consider
a Git client like Tortoise Git. It was
supposed to be lightweight (what most GUI apps aren't) but it takes 3s to
completely load and uses 10Mb of memory:
Our GUI-based git client TortoiseGit
Meanwhile, its CLI equivalent, git status runs in 0.3s and consumes less than
1Mb. In other words, 20 times more efficient memory-wise and 10 times
faster.
A simple CLI command is 20x more efficient and 10x faster then its GUI
equivalent
Disk Space Efficient
Another advantage of terminal apps over their GUI-equivalents is reduced disk
space. For example, contrast these two popular apps. Can you spot the
differences?
Application
Installation Size
Total Size
Memory Usage
Visual Studio Code
80Mb
300Mb
500Mb (on sunny days)
Nano
0.2 Mb
0.8 Mb
3 Mb
400x more efficient
375x more efficient
160x more efficient
Extensible
Another important aspect is that the CLI is extensible. From it, skilled users
could easily either extend its basic functionality using its built-in features
like pipes and redirections combining inputs and outputs from different tools.
For example, sysadmins could list the first two users in the system who use
Bash as a shell, ordered alphabetically with:
What's interesting from the above command is how we combined 5 different tools
to get the results we need. Once you master the Linux terminal, you'll too
will be able to utilize these tools effectively to get work done significantly
faster!
This is a more advanced topic. We'll see in future posts more details about
it.
Customizable
As you might expect, the terminal is extremely customizable. Everything from
the prompt to functions (as seen above) and even custom keybindings can be
customized. For example, want to bind Ctrl+E to open the Nano text editor on the terminal? Simple. Add this to your
.bashrc
file:
bind '"\C-E":"nano\n"'
Extensive range of Apps
Contrary to what most newcomers thing, the terminal has apps too! You will
find apps for pretty much any use case. For example:
Want to work with Linux? Another important aspect of using the terminal is
that it will make you more ready for the job market. Since Linux servers
usually don't have GUIs, you will end up having to use some of the above tools
on your day-to-day work. So why not start now?
Learn more about Linux
Hopefully at this point you realize that you will learn way more about your
Linux system and computers in general when you use the terminal. This is the
secret sauce that the most productive developers want you to know!
It's also a huge win for testing new tools, maintaining your system,
installing software, fixing issues and tweaking as you wish.
Getting Started
Ready to get started on your terminal/CLI journey? Watch the video below:
Note: We don't have any affiliation with the video above. We just want you
to learn the terminal 😊
Conclusion
Every modern computer has a terminal. Learning it will save you time, allow
you to automate common actions, make you learn more about your system, save
time, grow professionally and be more comfortable with Linux. Well worth the
effort, isn't it?
If you're looking for a lightweight and robust Linux distribution, check
Ubuntu Mate. A lighter version of Ubuntu but not not less
powerful
Ubuntu MATE's default desktop
Before switching to Linux permanently, it's recommended to test it first on a
virtual machine so that you can feel the experience before making permanent
changes on your system.
On this tutorial, we will continue revisiting the best
lightweight distributions of 2021 and learn how to install
Ubuntu MATE on VirtualBox in Windows 10.
This process should be pretty similar to accomplish in either
VirtualBox or VMWare Workstation player.
About Ubuntu MATE
Ubuntu MATE is a lightweight and simplified Linux distribution based on
Ubuntu. It's stable, easy-to-use and comes with the lightweight (and
familiar) MATE desktop environment. It is ideal for those who want the most
out of their computers and prefer a traditional. Another advantage is that it
requires modest hardware requirements.
Another advantage of Ubuntu MATE is that it runs from modern workstations, to
single board computers and IoT. Ubuntu MATE makes modern computers fast and
old computers usable.
Downloading Ubuntu MATE
Head to
Ubuntu Mate download page
an grab the ISO by clicking on
64-bit PCs/Macs > 20.04.1 LTS Focal Fossa. For this tutorial we'll
use Ubuntu MATE 20.04 LTS which's the a version supported until
April 2023. The file should be around 2.5 Gb in size so go grab a coffee while
it downloads.
An ISO is simply an image of the installer containing all the files needed to
boot and install that distribution in your system.
Installing Mate
With the ISO downloaded, let's start the process. Open VirtualBox:
VirtualBox's main screen
Click New, enter the name of the VM, set Type = Linux and
Version = Ubuntu (64-bit) and specify its save location:
Choose the memory size (4Gb or more is recommended):
Create a Virtual Hard Disk:
As Hard disk file type, Choose VDI (VirtualBox's default format):
Set it to Dynamically Allocated (slower) if you don't have much
disk space or Fixed Size (faster) if you do:
After clicking Create, you should see a summary of your new VM:
Booting the VM
Okay, so it's now time to boot (load) our VM so we can install it in the
virtual hard drive. On the screen above click on Start to have
your VM initialized. We'll first need to attach our ISO as if it were a
virtual CD-ROM. Click Add and select your downloaded ISO from your
Downloads folder and click Create to set it:
Installing Ubuntu
Once your VM boots, you will be asked to choose a language in the very first
screen:
And will be prompted with this pleasant menu:
For our setup, choose the third (3) option: Install Ubuntu MATE. A few
seconds later, you should see the loaded installer where you'll again be able
to choose your language:
Select your keyboard:
Choose what/how to install and if you would like to download updates during
installation:
On the Installation type screen, choose
Erase disk and install Ubuntu MATE(don't worry, none of your
files will be deleted):
Select your time zone:
And the installation begins. Give it 10 minutes or so and have fun with the
information provided:
Installation Begins
You'll see nice progress, tips and tricks during the install
Once it ends, you'll be asked to reboot:
First Login
With the installation done, let's login the first time. Enter your password as
specified during the installation on the login screen:
Default Desktop
After login, you should see Ubuntu MATE's beautiful desktop:
Ubuntu MATE's default desktop
Next Steps
There you are! Feel free to have fun with your new Ubuntu VM! We will cover
some more interesting topics in the future but we recommend that you play with
it in the meanwhile.
Conclusion
On this tutorial we learned how to install Ubuntu MATE in a VirtualBox virtual machine (VM). Installing Linux on a VM is the first step you
need to explore Linux in its multiple variations. The next step is obviously,
replacing your Windows or Mac. But take your time!