Rust용 Fedora에 Rustup 설치: Libudev.pc를 찾을 수 없습니다.

Rust용 Fedora에 Rustup 설치: Libudev.pc를 찾을 수 없습니다.

나는 페도라의 녹슨 환경에서 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. 구체적으로 다음과 같습니다.

    1. 도서관 yum provides */libudev.pc위치 를 확인해보세요 .Filename : /usr/lib/pkgconfig/libudev.pcFilename : /usr/lib64/pkgconfig/libudev.pc
    2. PKG_CONFIG_PATH내 폴더에 lib 폴더를 추가합니다 .bashrc.PKG_CONFIG_PATH=$PATH:/usr/lib/pkgconfig/:/usr/lib64/pkgconfig
    3. 새 셸을 시작하고 실행했지만 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
      
    4. 실행 중인 pkg-config --variable pc_path pkg-config프로그램/usr/lib64/pkgconfig:/usr/share/pkgconfig
  • 이렇게 할까 고민도 했으나 sudo dnf install libudevRustup 환경을 사용하고 있어서 망설였는데, 설치하면 Fedora 시스템 버전의 Rust도 설치하게 됩니다.

답변1

이렇게 하면 sudo dnf install rust-libudev-devel문제가 해결될 수 있지만, 그렇게 하려면 중복된 Rust(Fedora 패키지) 설치도 필요하기 때문에 개인적으로 이 답변에 만족하지 않습니다.

답변2

이렇게 하면 sudo dnf install libudev-devel(실제로 systemd-devel최소한 Fedora 37에 를 설치하면) 다른 Fedora 패키지(및 가 아닌 ) cargo를 중복 설치하지 않고도 문제가 해결됩니다 .rustrustup

관련 정보