准备你的计算机

Linux

qianmoQqianmoQ· 更新于 2026-10-01· 阅读 7 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

由于由缺失或过时的第三方工具(如编译器)引发的问题总是难以诊断,我们为 PLC4X 的构建扩展了一个 prerequisiteCheck,它会自动检查所需工具是否已安装,以及是否满足所需的最低版本。

如果任何前置条件未满足,构建将以错误信息失败,该信息将有助于找出问题所在。

检查项的数量很大程度上取决于启用了哪些 profile。例如,只有启用了 with-c profile 时,才会检查 C 编译器的可用性和版本。

如果检查报告了任何问题,请按照本指南中的相应步骤安装这些工具。

Git

检查内容:

git --version

如果你得到了成功的输出,那么你很可能无需做任何操作。

基于 Apt 的系统:

sudo apt install git

基于 Yum 的系统:

sudo yum install git

Java

检查中:

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/java

gcc(用于 PLC4C)

看起来在 aarch64(Apple 的 Silicon 芯片)上运行 Linux 时会出现一些问题……我们正在处理中。欢迎关注 https://github.com/apache/plc4x/issues/1582] 以获取相关更新。
gcc --version

如果你得到了任何成功的输出,那么你很可能无需再做任何操作。

基于 Apt 的系统:

sudo apt install gcc

基于 Yum 的系统:

sudo yum install gcc

dotnet(用于 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 python3

Python venv(用于 PLC4Py)

检查中:

python3 -Im ensurepip

如果除了 No module named ensurepip 之外你得到的是其他任何内容,那就没问题。看来在某些系统上需要手动安装它。

基于 Apt 的系统:

sudo apt install python3-venv

评论

登录后参与评论

正在加载评论…