Util-linux 软件包其它实用程序。包括处理文件系统、控制台、分区以及消息等工具。
6.65.1. FHS 兼容性注意事项
FHS 推荐使用 /var/lib/hwclock
目录而不是通常的 /etc
目录作为 adjtime
文件的位置。首先新建目录用于存储 hwclock 程序:
mkdir -pv /var/lib/hwclock
6.65.2. 安装 Util-linux
准备编译 Util-linux:
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ --docdir=/usr/share/doc/util-linux-2.26 \ --disable-chfn-chsh \ --disable-login \ --disable-nologin \ --disable-su \ --disable-setpriv \ --disable-runuser \ --disable-pylibmount \ --without-python
--disable 和 --without 选项用于防止出现关于 LFS 中缺少构建组件需要的软件包或和其它软件包安装的程序不一致的警告。
编译软件包:
make
如果需要的话,以非 root 用户运行测试套件:
![[Warning]](https://linux.cn/lfs/LFS-BOOK-7.7-systemd/images/warning.png)
警告
以 root 用户运行测试套件会对系统有害。为了运行测试套件,必须保证当前运行 的系统中用于内核的 CONFIG_SCSI_DEBUG 选项可用,还必须保证以一个模块的方式编译。 把它构建到内核中可以防止启动。为了全面覆盖,还必须安装其它的 BLFS 软件包。 如果需要的话,可以在重启进入完整的 LFS 系统后用以下命令运行该测试:
bash tests/run.sh --srcdir=$PWD --builddir=$PWD
chown -Rv nobody . su nobody -s /bin/bash -c "PATH=$PATH make -k check"
![[Note]](https://linux.cn/lfs/LFS-BOOK-7.7-systemd/images/note.png)
注意
在上面的测试中,如果用最新的内核,tests/ts/ipcs/limits2 会失败。可以安全地忽略该失败。
安装软件包:
make install
6.65.3. Contents of Util-linux
简要介绍
通知 Linux 内核有新的分区 | |
打开一个 tty 端口,提示输入登录名,然后调用 login 程序 | |
丢弃设备上的扇区 | |
用于定位和打印块设备属性的命令行工具 | |
允许用户在命令行中调用块设备的 ioctls | |
显示一个简单的日历 | |
管理指定设备的分区表 | |
更改 CPU 的状态 | |
管理进程的的实时属性 | |
过滤掉反向换行符 | |
为终端过滤缺少某些功能,例如加粗和半行的 nroff 输出 | |
过滤掉指定的列 | |
格式化指定文件为多列 | |
设置 Ctrl+Alt+Del 组合键的功能为硬或软复位 | |
请求 Linux 内核移除一个分区 | |
转储内核启动信息 | |
弹出可移除媒体 | |
为文件预分配空间 | |
低级别格式化软盘 | |
管理指定设备的分区表 | |
通过标签或通用唯一标识符(UUID)查找文件系统 | |
libmount 库中用于和 mountinfo、fstab 和 mtab 文件工作的命令行接口 | |
请求一个文件锁,然后用所持有的锁执行命令 | |
用于检查或者修复文件系统 | |
在指定设备的 Cramfs 文件系统上进行一致性检查 | |
在指定设备的 Minix 文件系统上进行一致性检查 | |
FIFREEZE/FITHAW ioctl 内核驱动操作的简单封装 | |
丢弃已挂载的文件系统中未使用的块 | |
解析给定命令行中的选项 | |
以十六进制或其它指定格式转储给定文件 | |
读取或设置系统硬件时钟,也称为实时时钟(RTC)或基本输入输出系统(BIOS)时钟 | |
到 setarch 的符号链接 | |
为某个程序获取或设置 io 调度类和优先级 | |
创建多种 IPC(进程间通信) 资源 | |
移除指定的进程间通信(IPC)资源 | |
提供 IPC 状态信息 | |
报告 iso9660 文件系统的大小 | |
向进程发送信号 | |
通过反向查找 | |
根据 | |
向行中添加行规则 | |
到 setarch 的符号链接 | |
到 setarch 的符号链接 | |
输入给定的信息到系统日志 | |
显示以指定字符串开头的行 | |
设置和控制环路设备 | |
以类似树的形式列出所有或指定块设备的信息 | |
打印 CPU 架构信息 | |
列出本地系统锁 | |
列出关于用户、组和系统账号的信息 | |
为 xauth 生成 magic cookies(128位随机十六进制数) | |
控制其它用户是否可以向当前用户终端发送信息 | |
在设备上构建文件系统(通常是一个硬盘分区) | |
创建 Santa Cruz Operations(SCO) bfs 文件系统 | |
创建 cramfs 文件系统 | |
创建 Minix 文件系统 | |
初始化指定设备或文件作为交换空间使用 | |
用于每次显示文本一页的过滤器 | |
在文件系统树中挂载文件系统到给定设备的指定目录 | |
检查目录是否是一个挂载点 | |
显示给定路径名称的符号链接 | |
在其他进程的命名空间中运行程序 | |
告诉内核磁盘上存在的分区和编号 | |
每次显示一屏文本文件 | |
使指定文件系统作为当前进程的新的根文件系统 | |
获取或设置进程资源限制 | |
绑定 Linux 原始字符设备到一个块设备 | |
读取内核分析信息 | |
重命名指定文件,用另一个字符串替换指定字符串 | |
更改运行中进程的优先级 | |
请求 Linux 内核重新设置分区大小 | |
反转指定文件的行 | |
用于进入系统睡眠状态知道指定的唤醒时间 | |
生成终端会话的打字稿 | |
用定时信息播放打字稿 | |
在新程序环境中更改报告架构并设置个性标签 | |
在新会话中运行指定程序 | |
设置终端属性 | |
磁盘分区表管理器 | |
允许 | |
允许更改交换空间 UUID 和标签 | |
停用设备和文件的分页和交换机制 | |
启用设备和文件的分页和交换机制并列出当前使用的设备和文件 | |
切换到另一个文件系统并把当前路径作为挂载树的根 | |
跟踪日志文件的的增长;显示日志文件的最后 10 行然后继续显示日志文件中 添加的任何新条目 | |
检索或设置一个进程的 CPU 亲和性 | |
将强调转换为转义序列以表示强调正在使用的终端的过滤器 | |
断开文件系统到系统文件树的连接 | |
用一些父进程非共享的名字空间运行程序 | |
以更友好的格式显示指定登录文件的内容 | |
UUID 库用于生成基于时间的安全和保证唯一的 UUID 的守护进程 | |
创建新的 UUID。在所有创建的 UUID 中,在本地系统或其它系统, 在之前和以后,每个新的 UUID 都可以被认为是唯一的 | |
在终端上显示所有当前登录用户的文件内容,或者默认的标准输出 | |
显示硬件看门狗状态 | |
报告指定命令的二进制文件、源代码或者 man 手册的位置 | |
从设备中擦除文件系统签名 | |
到 setarch 的符号链接 | |
用于设置和控制 zram(压缩后的 ram 磁盘)的程序 | |
包含用于设备识别和标记提取的例程 | |
包含操作分区表的例程 | |
包含用于块设备挂载和卸载的例程 | |
包含以表格形式进行屏幕输出的例程 | |
包含用于生成在本地系统之上可访问对象的唯一标识符的例程 |