I have unified the articles regarding Ubuntu and Fedora setup since they’re very similar.
The only difference is the package manager:
apt for Ubuntu,
dnf for Fedora.
Here is a comprehensive list of pieces of software and tools you need to getting started with an Ubuntu-based Linux machine.
Ubuntu uses apt as package manager.
Here is a comprehensive list of pieces of software and tools you need to getting started with a Fedora-based Linux machine.
Fedora uses dnf as package manager.
This tool allows you to write bootable SD card or USB drives starting from an .ISO file.
It comes in help when working with Raspberry Pi or any Linux distributions.
# if receiving a GPG error when running apt-get update, the default umask may be incorrectly configured, preventing detection of the repository public key file
# try granting read permission for the Docker public key file before updating the package index
Many modern Linux distributions use systemd to manage which services start when the system boots.
To automatically start docker and containerd on boot, run the following commands:
git is a VCS (Version Control System) created by Linus Torvalds, the same software engineer who developed the Linux kernel!
Version control systems is used to track changes in a directory over the time.
Nowadays, they’re used to maintaining the history of all the software products’ codes.
To allow several developer to work on the same code, a VCS must rely on platform like GitHub or GitLab where the code is uploaded and versioned.
The key features that a VCS must provide are:
Maintain independent branches of code for team members
Ease of comparison of code across different branches
Merging of code from several branches of multiple team members
Annotate changes with the name of author and message in a version of the code
Simple comparison across versions
Revert changes made to the code to any state from its history
It’s better to have a different pair of SSH keys foreach server (i.e. GitHub, GitLab, BitBucket, self-hosted, …) you connect to.
Let’s start:
Terminal window
cd~/.ssh/
# if the directory does not exist, then create it
mkdir~/.ssh/
# generate a new key
ssh-keygen-ted25519-C"I am the key label"
It will output:
Terminal window
# Generating public/private ed25519 key pair.
# Enter file in which to save the key (/home/$USER/.ssh/id_ed25519):
If you accept the default files location, their names will contain the encryption algorithm name.
If you need to use multiple SSH key, it’s better to have the provider’s name inside file names.
Specify the new name after : sign of the line above.
Terminal window
# /home/$USER/.ssh/id_[PROVIDER]
# Example: add GitLab.com SSH key
/home/$USER/.ssh/id_gitlab
You can also rename the files later on.
Remind to rename both the private and public keys:
Terminal window
# mv id_[ALGORITHM] id_[PROVIDER]
# mv id_[ALGORITHM].pub id_[PROVIDER].pub
Once you have both private and public keys, you’re read to start ssh-agent in background:
Terminal window
eval"$(ssh-agent-s)"
# add your SSH private key to the ssh-agent
ssh-addid_gitlab
# ssh-add id_[PROVIDER]
# show the content to copy
catid_gitlab.pub
# cat id_[PROVIDER].pub
Copy the public key and add in the right place inside the website of the server provider.
GCC stands for as GNU Compiler Collection.
It includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages.
GCC helps you write and execute programs in Linux.
# update-alternatives: using /usr/lib/jvm/zulu-21-arm/bin/java to provide /usr/bin/java (java) in auto mode
sudoupdate-alternatives--configjava
# here, select the Java installation of your choice
Possible musl vs glibc mismatch: if .jar.gz file name contains musl word, it may not work.
Most Raspberry Pi OS uses glibc package: musl builds will not run and java will fail silently (or not execute).
Test run executable manually:
Terminal window
/usr/lib/jvm/zulu-21-arm/bin/java-version
If java does not start in this way, you have installed the wrong java executable.
Postman is an API platform for building and using APIs.
It simplifies each step of the API lifecycle and streamlines collaboration, so you can create better APIs faster.
Go to Download page and download the tar.gz file or use the following commands:
IDE stands for Integrated Development Environment.
They’re tools that helps you while programming and allow you to be more productive, efficient and effective.
You can setup your Arduino device to be a slave device by following this link: openplcproject on Arduino.
Then, you can setup your Raspberry Pi board to be the master device by following this link: openplcproject on Raspberry Pi.
You can also use Docker or Podman to run Open PLC runtime environment:
MATLAB (abbreviation of “MATrix LABoratory”) is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks.
MATLAB allows matrix manipulations, plotting of functions and data.
It allows algorithms’ implementation, creation of UIs and interfacing with programs written in other languages.
Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multi-domain dynamical systems.
You need to have a MathWorks account to install MathWorks’ products.
Go to Download page and download the .zip Linux installer.
Terminal window
cd~/Downloads
# create a folder to extract files
mkdirmatlab
# unzip the MATLAB file
unzip-qqmatlab*.zip-dmatlab
cdmatlab
# launch installer with sudo permissions
sudo./install
# if the graphical installer does not starts
xhost+SI:localuser:root && sudo./install
Once the graphical installer starts, follow the steps below:
Login with MathWorks Account
Select the available License
Select Matlab Products or Toolbox to install
Select the Destination address
The default is:
/usr/local/MATLAB/R2023a/bin
Where R2023a refers to the release year and version (usually a and b).
Please Note: Set as username the actual name of the user logged-in in the computer.
You can find you name by launching this command in a Terminal window:
Save the Desktop Shortcut file by pressing Ctr + X and the type Y followed by the Enter Key.
Go to the Desktop, right-click on the created file and select the “Allow Launching” option for the desktop entity.
You can now launch MATLAB by double-clicking the desktop icon.
Once the installation is complete, remind to clear the Downloads directory:
If you try to install new toolboxes using Add-Ons manager, it will throw errors since you have not write access to /usr/local/MATLAB/.
If you launch MATLAB as root user, it will throw a License Manager Error -9 Your username does not match the username in the license file.
The correct solution is to set the permission for the current user:
Terminal window
sudochown-R$USER/usr/local/MATLAB/
Now the user has write access: use the Add-Ons manager carefully!
After installing the desired toolboxes, revert the permission change for security reason:
# it will estract everything in a directory called bin/
# move its content in /opt/
sudomvbin/Typora-linux-x64/opt/typora
# remove unnecessary files
rm-rfTypora-linux-x64.tar.gz./bin
# run Typora
/opt/typora/./Typora
You can also ad an alias to your configuration file.
The alias below launches typora in the background and silenced.
The terminal is detached, and you don’t have to open another one to work:
alias typora="/opt/typora/./Typora </dev/null &>/dev/null &"
You can also add the application entry for the App Menu:
Terminal window
# create the entry
cd~/.local/share/applications/
# eventually, use '/usr/share/applications/' path
# to allow all machine users to see this desktop application
For Debian and Ubuntu based distributions, the easiest way to install Visual Studio Code is to download and install the .deb package (64-bit), either through the graphical software center if it’s available, or through the command line with: