8.73. Util-linux-2.36

Util-linux 软件包包含若干工具程序。这些程序中有处理文件系统、终端、分区和消息的工具。

估计构建时间: 1.2 SBU
需要硬盘空间: 260 MB

8.73.1. 安装 Util-linux

FHS 建议使用 /var/lib/hwclock 目录,而非一般的 /etc 目录作为 adjtime 文件的位置。首先创建该目录:

mkdir -pv /var/lib/hwclock

准备安装 Util-linux:

./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
            --docdir=/usr/share/doc/util-linux-2.36 \
            --disable-chfn-chsh  \
            --disable-login      \
            --disable-nologin    \
            --disable-su         \
            --disable-setpriv    \
            --disable-runuser    \
            --disable-pylibmount \
            --disable-static     \
            --without-python

--disable 和 --without 选项防止一些警告,它们与一些 LFS 中不存在,或与其他软件包安装的程序不兼容的构建组件相关。

编译该软件包:

make

如果希望的话,以非 root 用户身份运行测试套件:

[警告]

警告

以 root 用户身份运行测试套件可能对系统造成损害。为了运行它,内核配置选项 CONFIG_SCSI_DEBUG 必须在当前运行的系统中可用,且必须被构建为内核模块。直接将其构建为内核的一部分会导致系统无法引导。为了测试的完整覆盖,必须安装其他 BLFS 软件包。如果希望的话,可以在重启进入完整的 LFS 系统后,执行以下命令运行测试:

bash tests/run.sh --srcdir=$PWD --builddir=$PWD
chown -Rv tester .
su tester -c "make -k check"

安装该软件包:

make install

8.73.2. Util-linux 的内容

安装的程序: addpart, agetty, blkdiscard, blkid, blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdformat, fdisk, fincore, findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, isosize, kill, last, lastb (到 last 的链接), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu, lsipc, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, pivot_root, prlimit, raw, readprofile, rename, renice, resizepart, rev, rfkill, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel, swapoff (到 swapon 的链接), swapon, switch_root, taskset, ul, umount, uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, x86_64, 以及 zramctl
安装的库: libblkid.so, libfdisk.so, libmount.so, libsmartcols.so, 以及 libuuid.so
安装的目录: /usr/include/blkid, /usr/include/libfdisk, /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, /usr/share/doc/util-linux-2.36, 以及 /var/lib/hwclock

简要描述

addpart

告知 Linux 内核有新的分区

agetty

打开 tty 端口,提示输入登录名,再启动 login 程序

blkdiscard

丢弃设备上的扇区

blkid

一个命令行工具,用于定位和打印块设备属性

blkzone

在给定块设备上运行 zone 命令

blockdev

允许用户从命令行调用块设备 ioctl

cal

显示简单的日历

cfdisk

操作给定设备的分区表

chcpu

修改 CPU 状态

chmem

配置内存

choom

显示和调整 OOM-killer 分数

chrt

操纵进程实时属性

col

过滤掉反向换行符

colcrt

为缺失加粗、半行等功能的终端过滤 nroff 输出

colrm

过滤掉给定列

column

将给定文件格式化为多栏

ctrlaltdel

将 Ctrl+Alt+Del 键组合的功能设定为硬复位或软复位

delpart

要求 Linux 内核删除分区

dmesg

转储内核引导消息

eject

弹出可移动媒体

fallocate

为文件预先分配空间

fdformat

低级格式化软盘

fdisk

操作给定设备的分区表

fincore

统计给定文件在内存中占用的页面数

findfs

根据通用唯一识别码 (UUID) 查找文件系统

findmnt

是 libmount 库的命令行接口,可以处理 mountinfo、fstab 和 mtab 文件

flock

获取文件锁,并在持有锁的情况下运行命令

fsck

用于检查或修复文件系统

fsck.cramfs

用于对给定设备上的 Cramfs 文件系统进行一致性检查

fsck.minix

用于对给定设备上的 Minix 文件系统进行一致性检查

fsfreeze

是内核驱动 ioctl 操作 FIFREEZE/FITHAW 的简单包装

fstrim

丢弃已挂载文件系统上未使用的块

getopt

解析给定命令行的选项

hexdump

以十六进制或其他给定格式转储文件

hwclock

读取或设置系统硬件时钟,它又被称为实时时钟 (RTC) 或基本输入输出系统 (BIOS) 时钟

i386

到 setarch 的符号链接

ionice

设定程序的 IO 调度类和优先级

ipcmk

创建多种 IPC 资源

ipcrm

删除给定的进程间通信 (IPC) 资源

ipcs

提供 IPC 状态信息

isosize

报告 ISO 9660 文件系统的大小

kill

向进程发送信号

last

显示哪些用户最后登录 (或登出),在 /var/log/wtmp 文件中反向搜索;它也会显示系统引导、关闭和运行级别变化记录

lastb

显示 /var/log/btmp 记录的失败登录企图

ldattach

为串口线附加行规则

linux32

到 setarch 的符号链接

linux64

到 setarch 的符号链接

logger

将给定消息记入系统日志

look

显示以给定字符串开始的行

losetup

设定和控制回环设备

lsblk

以树状格式列出所有或给定块设备的信息

lscpu

打印 CPU 体系结构信息

lsipc

打印系统当前部署的 IPC 设施的信息

lslocks

列出本地系统锁

lslogins

列出用户、组和系统账户的信息

lsmem

列出可用内存的范围和它们的在线状态

lsns

列出命名空间

mcookie

xauth 创建魔术 cookie (128位随机十六进制数)

mesg

控制其他用户能否向当前用户终端发送消息

mkfs

在设备 (一般是硬盘分区) 上创建文件系统

mkfs.bfs

创建 Santa Cruz Operations (SCO) bfs 文件系统

mkfs.cramfs

创建 cramfs 文件系统

mkfs.minix

创建 Minix 文件系统

mkswap

将给定文件或设备初始化为交换空间

more

在屏幕上分页文本的过滤器

mount

将给定设备上的文件系统挂载到文件系统树结构中的给定目录

mountpoint

检查目录是否为挂载点

namei

显示给定目录名中的符号链接

nsenter

在其他程序的命名空间中运行程序

partx

告知内核磁盘分区的存在性和编号

pivot_root

将当前进程的根文件系统设为给定文件系统

prlimit

获取和设定进程资源限制

raw

将 Linux raw 字符设备绑定到块设备

readprofile

读取内核性能分析信息

rename

重命名给定文件,将给定字符串替换为另一个字符串

renice

修改正在运行的进程的优先级

resizepart

要求 Linux 内核改变分区大小

rev

反转给定文件的每一行

rkfill

用于启用或禁用无线设备的工具

rtcwake

进入睡眠状态,直到给定的唤醒时间

script

记录终端会话打字机文档

scriptreplay

根据计时信息重放终端会话打字机文档

setarch

在新程序环境中修改系统报告的体系结构,并设置进程执行域信息

setsid

在新会话中运行给定程序

setterm

设定终端属性

sfdisk

一个分区表修改器

sulogin

允许 root 登录;一般在系统进入单用户模式时由 init 执行

swaplabel

允许修改交换空间 UUID 和标签

swapoff

禁止在文件或设备上进行分页交换

swapon

启用文件或设备上的分页交换,或列出当前用于交换的设备和文件

switch_root

将另一个文件系统切换为挂载树的根

tailf

跟踪日志文件的增长;显示日志文件的最后 10 行,并在日志文件有新记录时继续显示它们

taskset

获取或设置进程 CPU 亲和性

ul

将下划线转换为在当前终端中表示下划线的 escape 序列的过滤器

umount

断开文件系统与系统文件目录树的连接

uname26

到 setarch 的符号链接

unshare

在某些命名空间与父进程脱离的情况下运行程序

utmpdump

以更加用户友好的格式显示给定登录文件

uuidd

UUID 库使用的守护进程,用于安全、确保唯一性地生成 UUID

uuidgen

创建新的 UUID。每个新的 UUID 可以被合理地认为在本地系统和其他系统上,在过去和未来,都是唯一的

uuidparse

用于解析统一标识符的工具

wall

显示文件或标准输入 (默认值) 的内容到所有登录用户的终端

wdctl

显示硬件看门狗电路状态

whereis

报告给定命令二进制文件、源代码文件和 man 页面的位置

wipefs

从设备上擦除文件系统签名

x86_64

到 setarch 的符号链接

zramctl

设定和控制 zram (压缩内存盘) 设备的程序

libblkid

包含设备识别和标识提取子程序

libfdisk

包含操作分区表的子程序

libmount

包含挂载和解挂块设备的子程序

libsmartcols

包含以表格形式在屏幕上输出的辅助子程序

libuuid

包含为对象生成唯一标识符,使它在本地系统以外也可以访问的子程序