![在 GitHub actions ubuntu-latest 环境中的 pkg-config 搜索路径中找不到 libudev](https://linux22.com/image/226586/%E5%9C%A8%20GitHub%20actions%20ubuntu-latest%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%20pkg-config%20%E6%90%9C%E7%B4%A2%E8%B7%AF%E5%BE%84%E4%B8%AD%E6%89%BE%E4%B8%8D%E5%88%B0%20libudev.png)
我正在为我正在开发的 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
就成功了。