6.58.2. Findutils 软件包内容
安装的程序: find, locate, updatedb, 和 xargs
安装的目录: /var/lib/locate
Findutils 软件包包含查找文件的程序。这些程序提供递归搜索目录树、创建、管理以及搜索数据库(通常比递归式的 find 要快,但如果数据库最近没有更新的话结果不可靠)。
首先,抑制测试中可能在某些机器中出现的无限循环:
sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in
然后,对应 glibc-2.28 或更高版本 glibc 的需求做一些修复:
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h
准备编译 Findutils:
./configure --prefix=/usr --localstatedir=/var/lib/locate
配置选项的含义:
--localstatedir
该选项改变 locate
数据库的位置为 FHS 兼容的 /var/lib/locate
。
编译软件包:
make
用以下命令测试结果:
make check
安装软件包:
make install
LFS-Bootscripts 包中的部分脚本依赖于 find。由于 /usr
在启动的早期阶段可能不可用,该程序需要被放置在根分区。updatedb 脚本也需要修改,以明确的路径更正:
mv -v /usr/bin/find /bin sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb