私はudevをインストールしようとします。そして、udevは./configure
--exists: command not found configure: error:
pkg-config and "glib-2.0 >= 2.16" not found, please set GLIB_CFLAGS and GLIB_LIBS
to the correct values or pass --with-internal-glib to configure
OK、pkg-configとglib-2.0がありません。
最初に、pkg-configをインストールしようとしました。私はこのメッセージを受け取りました:
checking whether to list both direct and indirect dependencies... no
checking for Win32... no
checking if internal glib should be used... no
checking for pkg-config... no
./configure: line 13557: --exists: command not found
configure: error: pkg-config and "glib-2.0 >= 2.16" not found,
please set GLIB_CFLAGS and GLIB_LIBS to the correct values or
pass --with-internal-glib to configure
わかりました、そのglibが欠落しています。
Glibをインストールする次のステップ。
そして私はこのメッセージを受け取りました:
configure: error: in `/root/glib-2.33.3':
configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables LIBFFI_CFLAGS
and LIBFFI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
しかし、私は今困惑しています。彼らは互いに必要ですか?私の間違いは何ですか?
すでに確認したように、実際にはpkg-configとglibの間に循環依存関係があります。それを壊すために、pkg-configの ソースコード には、コンパイルするのに十分なバージョンのglibが含まれています。これは依存サイクルを壊すはずです。
--with-internal-glib
を使用してpkg-configを構成してみてください。
これはすでにglibエラーメッセージに含まれています。
または、環境変数LIBFFI_CFLAGSおよびLIBFFI_LIBSを設定して、pkg-configを呼び出す必要をなくすこともできます。詳細については、pkg-configのmanページを参照してください。
Glibビルドスクリプトは、pkg-configを使用してlibffiを見つけます。ただし、環境変数を設定することにより、手動で情報を提供することもできます。その場合、pkg-configの呼び出しは必要ありません。 Glib自体はpkg-configをまったく必要としません。
この問題の別の解決策は、pkg-config担当者によって提供されます。繰り返しますが、エラーメッセージの最後に:
gLIB_CFLAGSとGLIB_LIBSを正しい値に設定してくださいまたは--with-internal-glibを渡して設定してください
このシナリオでは、pkg-config自体が、システムにGlibがなくてもビルドに必要なすべてがパッケージされています。
export GLIB_CFLAGS="$(pkg-config --cflags glib-2.0)"
export GLIB_LIBS="$(pkg-config --libs glib-2.0)"
printf '# In the case of a RHEL6.5\n\tGLIB_CFLAGS=%s\n\tGLIB_LIBS=%s\n' "$GLIB_CFLAGS" "$GLIB_LIBS"
# In the case of a RHEL6.5
GLIB_CFLAGS=-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
GLIB_LIBS=-lglib-2.0
# _now_ it is a no-brainer.
libudevがsystemdの一部になり、glibに依存しなくなりました。
ほとんどのLinuxディストリビューションは、pkg-config、libudev、およびglibのバイナリを提供します。それらはおそらくすでにインストールされていますが、そうでない場合は、パッケージマネージャーを使用して取得できます。
これを自分でコンパイルする必要がある場合は、glibを使用しないpkg-configの軽量実装である pkgconf の使用を検討してください。