“配置:错误:未满足包要求(blkid)”

“配置:错误:未满足包要求(blkid)”

我正在尝试从源代码构建 btrfs-progs,但是当我运行 ./configure 时出现错误:

checking for BLKID... no
configure: error: Package requirements (blkid) were not met:

No package 'blkid' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BLKID_CFLAGS
and BLKID_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

blkid安装在/sbin所以,大概它的所有库都在默认位置。

我需要做什么才能告诉 pkg-configblkid我在哪里或者实际上缺少一个包?

仅供参考:我正在运行 Debian 8(sid/unstable),其内核为大约一周前从 github.com/torvalds/linux.git 构建的 4.1.0 内核(提交:g6aaf0da)。

答案1

如果缺少软件包,您可以使用apt-cache

% apt-cache search blkid
libblkid-dev - block device id library - headers and static libraries
libblkid1 - block device id library

甚至:

% apt-cache search blkid | grep '\-dev'
libblkid-dev - block device id library - headers and static libraries

我们知道我们需要开发库来编译一些东西,因此做......

apt-get install libblkid-dev

...作为root用户。

答案2

当您从链接到特定库的源代码构建二进制文件时,构建过程需要一些与该库相关的额外(“头”)文件,这些文件在运行时不需要,因此它们不会与基础文件一起安装库包(因为需要库本身的其他发行版包已经构建了二进制文件)。

在 Debian 上,额外的文件位于-dev包中。这里实际的库是libblkid,所以你需要:

apt-get install libblkid-dev

答案3

跑步

apt-get build-dep btrfs-tools

获取所有构建依赖项,包括libblkid-dev.

答案4

arch-distros 的解决方案:

sudo pacman -S util-linux libutil-linux

相关内容