6.60.2. Findutils 的内容
安装的程序: code, find, locate, oldfind, updatedb, 以及
xargs
Findutils 软件包包含用于查找文件的程序。 这些程序能够递归地搜索目录树,以及创建、维护和搜索数据库 (一般比递归搜索快,但在数据库最近没有更新时不可靠)。
首先,禁用一个在某些机器上会无限循环的测试:
sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in
然后,进行 glibc-2.28 要求的一些修补:
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
数据库的位置改为 /var/lib/locate
, 以与
FHS 兼容。
编译该软件包:
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