6.59. Util-linux-2.12q

Util-linux 软件包包含各种实用程序。其中包括用于处理文件系统、控制台、分区和消息的实用程序。

预计编译时间: 0.2 SBU
所需磁盘空间: 11.6 MB
安装依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, 和 Zlib

6.59.1. FHS 兼容性说明

FHS 建议使用/var/lib/hwclock目录,而不是通常的/etc目录作为adjtime文件的位置。要使 hwclock 程序符合 FHS 标准,请运行以下命令

sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
    hwclock/hwclock.c
mkdir -p /var/lib/hwclock

6.59.2. Util-linux 的安装

Util-linux 无法针对较新版本的 Linux-Libc-Headers 进行编译。以下补丁正确地修复了此问题

patch -Np1 -i ../util-linux-2.12q-cramfs-1.patch

Util-linux 存在一个安全漏洞,可能允许用户在没有nosuid选项的情况下重新挂载卷。以下补丁修复了此问题

patch -Np1 -i ../util-linux-2.12q-umount_fix-1.patch

准备编译 Util-linux

./configure

编译软件包

make HAVE_KILL=yes HAVE_SLN=yes

make 参数的含义

HAVE_KILL=yes

这可以防止 kill 程序(Procps 已安装)被再次构建和安装。

HAVE_SLN=yes

这可以防止 sln 程序(Glibc 已安装的 ln 的静态链接版本)被再次构建和安装。

此软件包不附带测试套件。

安装软件包并将 logger 二进制文件移动到/bin,因为 LFS-Bootscripts 软件包需要它

make HAVE_KILL=yes HAVE_SLN=yes install
mv /usr/bin/logger /bin

6.59.3. Util-linux 的内容

已安装的程序: agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, pg, pivot_root, ramsize (link to rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (link to rdev), script, setfdprm, setsid, setterm, sfdisk, swapdev, swapoff (link to swapon), swapon, tunelp, ul, umount, vidmode (link to rdev), whereis, and write

简短描述

agetty

打开一个 tty 端口,提示输入登录名,然后调用 login 程序

arch

报告机器的架构

blockdev

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

cal

显示一个简单的日历

cfdisk

操作给定设备的分区表

chkdupexe

查找重复的可执行文件

col

过滤掉反向换行符

colcrt

为缺少某些功能的终端(例如 overstriking 和半行)过滤 nroff 输出

colrm

过滤掉给定的列

column

将给定文件格式化为多列

ctrlaltdel

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

cytune

调整 Cyclades 卡的串行线路驱动程序的参数

ddate

给出 Discordian 日期或将给定的公历日期转换为 Discordian 日期

dmesg

转储内核启动消息

elvtune

调整块设备的性能和交互性

fdformat

低级格式化软盘

fdisk

操作给定设备的分区表

fsck.cramfs

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

fsck.minix

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

getopt

解析给定命令行中的选项

hexdump

以十六进制或另一种给定格式转储给定文件

hwclock

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

ipcrm

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

ipcs

提供 IPC 状态信息

isosize

报告 iso9660 文件系统的大小

line

复制单行

logger

将给定消息输入到系统日志中

look

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

losetup

设置和控制循环设备

mcookie

xauth 生成魔术 cookie(128 位随机十六进制数)

mkfs

在设备(通常是硬盘分区)上构建文件系统

mkfs.bfs

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

mkfs.cramfs

创建 cramfs 文件系统

mkfs.minix

创建 Minix 文件系统

mkswap

初始化给定设备或文件以用作交换区

more

一个用于逐屏分页浏览文本的过滤器

mount

将给定设备上的文件系统附加到文件系统树中的指定目录

namei

显示给定路径名中的符号链接

pg

一次一屏地显示文本文件

pivot_root

使给定文件系统成为当前进程的新根文件系统

ramsize

设置可引导映像中 RAM 磁盘的大小

raw

用于将 Linux 原始字符设备绑定到块设备

rdev

查询和设置可引导映像中的根设备以及其他内容

readprofile

读取内核性能分析信息

rename

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

renice

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

rev

反转给定文件的行

rootflags

设置可引导映像中的 rootflags

script

制作终端会话的脚本记录

setfdprm

设置用户提供的软盘参数

setsid

在新会话中运行给定的程序

setterm

设置终端属性

sfdisk

磁盘分区表操作器

swapdev

设置可引导映像中的交换设备

swapoff

禁用设备和文件以进行分页和交换

swapon

启用设备和文件以进行分页和交换,并列出当前正在使用的设备和文件

tunelp

调整行式打印机的参数

ul

一个过滤器,用于将下划线转换为转义序列,指示当前使用的终端的下划线

umount

从系统的文件树中断开文件系统的连接

vidmode

设置可引导映像中的视频模式

whereis

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

write

向给定用户发送消息 如果 该用户未禁用接收此类消息