我正在为我正在开发的 Rust 应用程序设置 CI,该应用程序(间接)取决于libudev-sys
板条箱。这个 CI 的一部分意味着构建我的箱子,这也意味着构建libudev-sys
.
当工作流程运行并进入构建阶段时,货物在尝试构建时失败并显示此错误消息libudev-sys
:
thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libudev-sys-0.1.4/build.rs:38:41:
called `Result::unwrap()` on an `Err` value:
`PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" PKG_CONFIG_ALLOW_SYSTEM_LIBS="1" "pkg-config" "--libs" "--cflags" "libudev"` did not exit successfully: exit status: 1
error: could not find system library 'libudev' required by the 'libudev-sys' crate
Package libudev was not found in the pkg-config search path.
Perhaps you should add the directory containing `libudev.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libudev' found
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
我正在努力调试这个问题,因为每个更改都需要提交并推送到存储库,然后等待工作流程运行。这不是我自己的系统上遇到的错误。
根据此页面有关 ubuntu 最新环境,systemd
已安装(提供libudev
),以及pkg-config
来自apt
(因此这个答案相关问题中的内容不适用)。
我尝试使用systemd
和进行sudo apt-get update
安装sudo apt-get install systemd
,但这表明systemd
已经安装了。我也尝试PKG_CONFIG_PATH
按照以下方式更新这个答案,但这也不起作用。
答案1
正如@steeldriver 所评论的,事实证明该libudev-dev
包是必需的。libudev-dev
用sudo apt-get update
and安装sudo apt-get install libudev-dev
就成功了。