Rust用FedoraへのRustupのインストール:Libudev.pcが見つかりません。

Rust用FedoraへのRustupのインストール:Libudev.pcが見つかりません。

私はFedoraのさびた環境で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

以前は、Ubuntu(またはRustupの代わりにシステムRust Installを使用するDebianベースのシステム)で上記の操作を実行した後、すべてがうまく機能しました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フォルダを追加します.bashrcPKG_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-develFedora 37にインストールすると、他のFedoraパッケージ(および非)を重複してインストールすることなくcargo問題を解決できます。rustrustup

関連情報