我正在尝试从源代码构建 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