Linux
由于由缺失或过时的第三方工具(如编译器)引发的问题总是难以诊断,我们为 PLC4X 的构建扩展了一个 prerequisiteCheck,它会自动检查所需工具是否已安装,以及是否满足所需的最低版本。
如果任何前置条件未满足,构建将以错误信息失败,该信息将有助于找出问题所在。
检查项的数量很大程度上取决于启用了哪些 profile。例如,只有启用了 with-c profile 时,才会检查 C 编译器的可用性和版本。
如果检查报告了任何问题,请按照本指南中的相应步骤安装这些工具。
Git
检查内容:
git --version如果你得到了成功的输出,那么你很可能无需做任何操作。
基于 Apt 的系统:
sudo apt install git基于 Yum 的系统:
sudo yum install gitJava
检查中:
java --version如果你成功看到输出显示至少为 Java 11,则无需进行任何操作。
基于 Apt 的系统:
sudo apt install openjdk-21-jdk可选及其他语言支持
构建 PLC4X 的 Java 部分,Git 和 Java 应该就足够了。
LibPCAP(用于原始以太网支持)
基于 Apt 的系统:
sudo apt install libpcap-dev基于 Yum 的系统:
sudo yum install libpcap-devel通常,使用 libpcap 需要 root 权限。不过,可以通过执行以下命令为 Java 进程授予相应权限。
sudo setcap cap_net_raw,cap_net_admin=eip /path/to/java/path/to/java 却必须是一个真实文件,而不是符号链接。因此,在我的 Ubuntu 22.04 系统上(我按照上文所述的方式安装了 Java),命令如下:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/lib/jvm/java-21-openjdk-arm64/bin/java有时我不得不将 uid 设置为以所有者(root)的权限来执行 Java 可执行文件…… 不过,这是一个相当不够理想的解决方案。
sudo chmod 4755 /path/to/javagcc(用于 PLC4C)
看起来在 aarch64(Apple 的 Silicon 芯片)上运行 Linux 时会出现一些问题……我们正在处理中。欢迎关注 https://github.com/apache/plc4x/issues/1582] 以获取相关更新。 |
|---|
gcc --version如果你得到了任何成功的输出,那么你很可能无需再做任何操作。
基于 Apt 的系统:
sudo apt install gcc基于 Yum 的系统:
sudo yum install gccdotnet(用于 PLC4Net)
正在检查:
dotnet --version如果你得到了成功的输出,可能什么都不用做。
微软在.Net SDK 这里记录了所需内容
对于 Ubuntu,命令为:
sudo mkdir -p /etc/apt/keyrings
wget https://packages.microsoft.com/keys/microsoft.asc -O /etc/apt/keyrings/microsoft.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/microsoft.asc] https://packages.microsoft.com/ubuntu/24.04/prod noble main" | sudo tee /etc/apt/sources.list.d/microsoft-dotnet.list
sudo apt update
sudo apt install dotnet-sdk-8.0对于其他发行版,请在下拉菜单中选择相应发行版,并按照其中的说明进行操作。
如果在安装后再次检查版本时出现如下错误:
A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist那么请查看这个 StackOverflow 帖子(已采纳的解决方案)https://stackoverflow.com/questions/73753672/a-fatal-error-occurred-the-folder-usr-share-dotnet-host-fxr-does-not-exist]
python(用于 PLC4Py)
检查中:
python3 --version如果你报告的版本是 3.7 或更高,可能无需进行任何操作。
基于 Apt 的系统:
sudo apt install python3基于 Yum 的系统:
yum intall python3Python venv(用于 PLC4Py)
检查中:
python3 -Im ensurepip如果除了 No module named ensurepip 之外你得到的是其他任何内容,那就没问题。看来在某些系统上需要手动安装它。
基于 Apt 的系统:
sudo apt install python3-venv评论
登录后参与评论
KnowForge