나는 페도라의 녹슨 환경에서 libudev에 의존하는 녹 애플리케이션을 구축하려고 합니다. 현재 다음을 사용하여 애플리케이션을 컴파일하려고 할 때 오류가 발생합니다 cargo build --release
.
error: failed to run custom build command for `libudev-sys v0.1.4`
Caused by:
process didn't exit successfully: `/home/me/myApp/target/release/build/libudev-sys-7d615f10fc24f9b2/build-script-build` (exit status: 101)
--- stdout
cargo:rerun-if-env-changed=LIBUDEV_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=LIBUDEV_STATIC
cargo:rerun-if-env-changed=LIBUDEV_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"libudev\"` did not exit successfully: exit status: 1\n--- stderr\nPackage libudev was not found in the pkg-config search path.\nPerhaps you should add the directory containing `libudev.pc'\nto the PKG_CONFIG_PATH environment variable\nPackage 'libudev', required by 'virtual:world', not found\n"', /home/me/.cargo/registry/src/github.com-1ecc6299db9ec823/libudev-sys-0.1.4/build.rs:38:41
과거에는 우분투(또는 Rustup 대신 시스템 Rust Install을 사용하는 데비안 기반 시스템)에서 위의 작업을 수행한 후 모든 것이 잘 작동했습니다 sudo apt install libudev1 && sudo apt install libudev-dev
.
지금까지 나는 다음을 시도했거나 고려했습니다.
제안사항을 살펴보세요Libudev.pc를 찾을 수 없습니다, 대부분의 제안은 누군가의 homebrew/linuxbrew 설정에 대한 것인 반면, 이 질문은 Rust 환경에 Rustup이 설치된 Fedora에 대한 것입니다.
내 콘텐츠를 업데이트
PKG_CONFIG_PATH
하고 콘텐츠를 확인하세요PKG_CONFIG
. 구체적으로 다음과 같습니다.- 도서관
yum provides */libudev.pc
위치 를 확인해보세요 .Filename : /usr/lib/pkgconfig/libudev.pc
Filename : /usr/lib64/pkgconfig/libudev.pc
PKG_CONFIG_PATH
내 폴더에 lib 폴더를 추가합니다.bashrc
.PKG_CONFIG_PATH=$PATH:/usr/lib/pkgconfig/:/usr/lib64/pkgconfig
- 새 셸을 시작하고 실행했지만
pkg-config --libs --cflags libudev
여전히 오류가 발생합니다.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 Package 'libudev', required by 'virtual:world', not found
- 실행 중인
pkg-config --variable pc_path pkg-config
프로그램/usr/lib64/pkgconfig:/usr/share/pkgconfig
- 도서관
이렇게 할까 고민도 했으나
sudo dnf install libudev
Rustup 환경을 사용하고 있어서 망설였는데, 설치하면 Fedora 시스템 버전의 Rust도 설치하게 됩니다.
답변1
이렇게 하면 sudo dnf install rust-libudev-devel
문제가 해결될 수 있지만, 그렇게 하려면 중복된 Rust(Fedora 패키지) 설치도 필요하기 때문에 개인적으로 이 답변에 만족하지 않습니다.
답변2
이렇게 하면 sudo dnf install libudev-devel
(실제로 systemd-devel
최소한 Fedora 37에 를 설치하면) 다른 Fedora 패키지(및 가 아닌 ) cargo
를 중복 설치하지 않고도 문제가 해결됩니다 .rust
rustup