Linux
As tracking down issues which result from missing or outdated third party tools such as compilers are always hard do diagnose, we have extended the build of PLC4X with a prerequisiteCheck
that automatically checks if required tools are installed and if a required minimum version is available.
If any of the prerequisites are not met, the build fails with an error message that will help finding out what’s wrong.
The number of checks is highly dependent on which profiles are enabled.
So for example the availability and version of the C compiler is only checked if the with-c
profile is enabled.
If the check is reporting any issues, please feel free to follow the corresponding steps in this guide to install the tools.
Git
Checking:
git --version
If you get any successful output, you probably don’t need to do anything.
Apt-based systems:
sudo apt install git
Yum based systems:
sudo yum install git
Java
Checking:
java --version
If you get successful output indicating at least Java 11, you don’t need to do anything.
Apt based systems:
sudo apt install openjdk-21-jdk
Optional and other language support
Git an Java should be all you need for building the Java part of PLC4X.
LibPCAP (For raw-ethernet support)
Apt-based systems:
sudo apt install libpcap-dev
Yum based systems:
sudo yum install libpcap-devel
Using libpcap usually requires root privileges, however the java process can be granted permission to do so by executing the following command.
sudo setcap cap_net_raw,cap_net_admin=eip /path/to/java
/path/to/java
however needs to be a real file and not a symlink.
So on my Ubuntu 22.04 system, where I installed java as described above the command is as follows:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/lib/jvm/java-21-openjdk-arm64/bin/java
Sometimes I had to set the uid to execute the java executable with the permissions of the owner (root) … however this is quite suboptimal solution.
sudo chmod 4755 /path/to/java
gcc (For PLC4C)
It seems that when running Linux on aarch64 (Apple’s Silicon Chips), that there are issues … we’re working on that. Feel free to watch https://github.com/apache/plc4x/issues/1582 on updates to this.
|
Checking:
gcc --version
If you get any successful output, you probably don’t need to do anything.
Apt-based systems:
sudo apt install gcc
Yum based systems:
sudo yum install gcc
dotnet (For PLC4Net)
Checking:
dotnet --version
If you get any successful output, you probably don’t need to do anything.
Microsoft has documented what is needed to install .Net SDK
here
For Ubuntu this would be:
wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt install apt-transport-https sudo apt update sudo apt install dotnet-sdk-6.0
For other distributions, please select the distribution in the drop-down menu and follow the instructions there.
If, when checking the version again after installing, you are getting an error:
A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist
Then please have a look at this Stackoverflow post (the accepted solution) https://stackoverflow.com/questions/73753672/a-fatal-error-occurred-the-folder-usr-share-dotnet-host-fxr-does-not-exist