一、命令概述
这个命令用于在基于 YUM 包管理器(主要用于 RHEL, CentOS, Fedora 等旧版本)的 Linux 发行版上,自动安装名为 plymouth-plugin-script 的软件包。
yum: Yellowdog Updater, Modified 的缩写,是 RHEL/CentOS 7 及早期版本的默认包管理工具。
-y: 一个非常重要的选项,意思是 "对所有询问都自动回答 yes"。如果没有这个选项,当 yum 计算出需要安装的依赖包列表后,会询问你 "Is this ok [y/d/N]?",你必须手动输入 y 才能继续。使用 -y 则自动确认,使安装过程无需人工干预,非常适合脚本中使用。
install: 告诉 yum 要执行安装操作。
plymouth-plugin-script.x86_64: 要安装的软件包的具体名称。
plymouth: 核心项目名称,它是一个用于在系统启动和关闭时显示引导画面的应用程序,可以替代丑陋的文本滚动信息,提供平滑的图形化过渡体验。
plugin-script: 这是 Plymouth 的一个插件。这个特定的插件允许 Plymouth 运行自定义的 Shell 脚本来控制启动画面的行为,为实现高度定制化的启动动画提供了可能。
.x86_64: 指定了软件包的架构,这里是 64 位。通常可以省略,yum 会自动选择适合你系统架构的版本。
二、完整安装教程
重要前提:确保你使用的是 CentOS 7、RHEL 7 或类似的旧发行版。从 CentOS 8 / RHEL 8 开始,默认的包管理器已切换为 dnf(虽然 yum 通常作为它的一个兼容符号链接存在)。
步骤 1:更新 YUM 缓存(推荐)
在安装任何新软件包之前,最好先更新本地软件包元数据缓存,以确保获取到的是仓库中最新的版本信息。
bash
sudo yum makecache
步骤 2:执行安装命令
使用 sudo 来获取 root 权限,然后运行安装命令。
bash
sudo yum -y install plymouth-plugin-script
(注意:在实际输入时,.x86_64 通常可以省略)
命令执行过程会类似以下输出:
bash
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package plymouth-plugin-script.x86_64 0:0.8.9-0.34.20140113.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
plymouth-plugin-script x86_64 0.8.9-0.34.20140113.el7 base 18 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 18 k
Installed size: 25 k
Downloading packages:
plymouth-plugin-script.x86_64.rpm | 18 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64 1/1
Verifying : plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64 1/1
Installed:
plymouth-plugin-script.x86_64 0:0.8.9-0.34.20140113.el7
Complete!
看到 "Complete!" 就表示安装成功了。
步骤 3:验证安装
你可以通过以下命令检查软件包是否已正确安装。
bash
rpm -q plymouth-plugin-script
如果成功,它会返回已安装的包名和版本号,例如:plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64。
三、Plymouth 和 script 插件的作用与用法
- Plymouth 是什么?
Plymouth 是一个在 Linux 系统启动早期(在图形服务器 X11 或 Wayland 启动之前)和关闭时运行的应用程序。它的主要目的是:
美化引导过程:用漂亮的动画、进度条或徽标替换黑屏上滚动的内核和系统服务日志。
提供无缝的用户体验:让用户感觉系统启动很快、很流畅。
- plymouth-plugin-script 插件有什么用?
这是 Plymouth 最强大的插件之一。它本身不提供动画,而是提供了一个框架,允许你通过执行一个自定义的 Shell 脚本来完全控制 Plymouth 的显示。
在这个脚本里,你可以使用 Plymouth 提供的一系列命令来:
bash
plymouth message: 在屏幕上显示文本信息。
plymouth update: 更新动画的状态(例如,让进度条前进一格)。
plymouth pause / plymouth unpause: 暂停和恢复动画。
plymouth ask-question: 在引导过程中与用户交互(例如,询问加密磁盘的密码)。
控制图像、精灵的显示位置等。
- 如何使用这个插件?
选择主题: 首先,你需要一个使用 script 插件的 Plymouth 主题。这些主题通常位于 /usr/share/plymouth/themes/ 目录下。主题的核心文件是一个 .script 文件。
查看现有主题:
bash
ls /usr/share/plymouth/themes/
设置主题: 使用 plymouth-set-default-theme 命令来更改主题。例如,如果你想设置一个名为 my-custom-theme 的主题:
bash
sudo plymouth-set-default-theme -R my-custom-theme
-R 选项会立即为下次启动重建 initrd(初始内存磁盘),这是必须的步骤。
创建自定义主题(高级): 如果你想自己制作动画,可以复制一个现有的 script 主题并进行修改。你需要学习 Plymouth 的脚本语法,它类似于一个简单的渲染引擎。
Plymouth 主题配置文件结构
Plymouth 主题主要通过几个特定文件来配置,其中图片路径的设置是关键。
- 主题目录结构
bash
/usr/share/plymouth/themes/
└── your-theme-name/
├── plymouth-theme.script # 主脚本文件(script插件使用)
├── your-theme-name.plymouth # 主题描述文件
├── logo.png # 您的logo文件
├── background.png # 背景图片
└── progress.png # 进度条图片
. 主要的配置文件
A. 主题描述文件 (your-theme-name.plymouth)
这是主题的基本信息文件,使用 INI 格式:
bash
[Plymouth Theme]
Name=My Custom Theme
Description=A custom theme with company logo
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/your-theme-name
ScriptFile=/usr/share/plymouth/themes/your-theme-name/plymouth-theme.script
B. 主脚本文件 (plymouth-theme.script)
这是控制动画逻辑的核心文件,使用 Plymouth 的脚本语言。以下是关键配置部分:
- 配置 logo.png 的脚本示例
bash
// 初始化函数
fun init {
// 设置背景(如果有)
background = Image("background.png");
background.Scale(1920, 1080); // 缩放适应屏幕
// 加载并配置logo
logo = Image("logo.png");
// 获取屏幕和logo尺寸
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
logo_width = logo.GetWidth();
logo_height = logo.GetHeight();
// 计算居中位置
logo_x = (screen_width - logo_width) / 2;
logo_y = (screen_height - logo_height) / 2;
// 设置logo位置
logo.SetX(logo_x);
logo.SetY(logo_y);
// 可选:初始时隐藏logo,通过动画显示
logo.SetOpacity(0);
}
// 显示函数
fun show_boot_message {
// 在启动过程中显示消息
message = "Starting System...";
Plymouth.SetMessage(message);
}
// 进度更新函数
fun progress {
// 当有进度更新时调用
// 可以在这里添加logo的动画效果
// 示例:淡入效果
if (Plymouth.GetMode() == "boot") {
logo.SetOpacity(logo.GetOpacity() + 0.05);
if (logo.GetOpacity() > 1) {
logo.SetOpacity(1);
}
}
}
// 启动完成函数
fun boot_progress {
// 启动完成时的动画
logo.SetOpacity(1);
}
// 关机函数
fun quit {
// 关机时的动画效果
logo.SetOpacity(0);
}
- 更详细的 logo 配置示例
bash
fun init {
// 加载logo图片
company_logo = Image("logo.png");
// 调整logo大小(可选)
company_logo.Scale(400, 200); // 宽度400像素,高度200像素
// 设置位置 - 屏幕顶部居中
logo_x = (Window.GetWidth() - company_logo.GetWidth()) / 2;
logo_y = 100; // 距离顶部100像素
company_logo.SetX(logo_x);
company_logo.SetY(logo_y);
// 添加旋转动画(可选)
company_logo.SetRotation(0);
// 设置初始透明度
company_logo.SetOpacity(0);
// 创建精灵并添加到窗口
logo_sprite = Sprite();
logo_sprite.SetImage(company_logo);
logo_sprite.SetZ(100); // 设置显示层级
Window.AddSprite(logo_sprite);
}
fun progress {
// 淡入动画
current_opacity = company_logo.GetOpacity();
if (current_opacity < 1) {
company_logo.SetOpacity(current_opacity + 0.02);
}
// 轻微浮动效果
time = Plymouth.GetTime();
float_offset = Math.Sin(time * 3) * 5; // 上下浮动5像素
company_logo.SetY(100 + float_offset);
}
- 创建完整主题的步骤
步骤 1:创建主题目录
bash
sudo mkdir -p /usr/share/plymouth/themes/my-logo-theme
步骤 2:创建主题描述文件
bash
sudo nano /usr/share/plymouth/themes/my-logo-theme/my-logo-theme.plymouth
bash
[Plymouth Theme]
Name=My Logo Theme
Description=Custom theme with company logo
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/my-logo-theme
ScriptFile=/usr/share/plymouth/themes/my-logo-theme/plymouth-theme.script
步骤 3:创建主脚本文件
bash
sudo nano /usr/share/plymouth/themes/my-logo-theme/plymouth-theme.script
使用上面的脚本示例内容。
步骤 4:复制 logo 图片
将您的logo.png复制到主题目录
bash
sudo cp /path/to/your/logo.png /usr/share/plymouth/themes/my-logo-theme/
步骤 5:设置权限
bash
sudo chmod 644 /usr/share/plymouth/themes/my-logo-theme/*
步骤 6:应用主题
bash
sudo plymouth-set-default-theme -R my-logo-theme
- 图片格式建议
格式:PNG(支持透明度)
尺寸:根据您的需要,建议 200-800 像素宽度
颜色:考虑到启动时可能是深色背景,建议使用白色或亮色logo
文件大小:尽量优化,避免过大影响启动性能
- 调试技巧
如果主题不工作,可以:
查看详细日志:
bash
sudo plymouth --show-splash
在另一个终端查看日志
sudo tail -f /var/log/boot.log
测试主题:
bash
sudo plymouthd
sudo plymouth --show-splash
sudo plymouth --quit
检查initrd:
bash
lsinitrd /boot/initramfs-$(uname -r).img | grep plymouth
通过以上配置,您就可以成功将自定义的 logo.png 集成到系统的启动画面中了。记得在修改后使用 -R 参数重建 initrd 才能使更改生效。
四、对于现代系统(CentOS 8/RHEL 8/Rocky Linux/AlmaLinux 及更新版本)
在这些系统上,虽然 yum 命令通常仍然可用(因为它被链接到 dnf),但官方推荐使用 dnf。
安装命令变为:
bash
sudo dnf -y install plymouth-plugin-script
步骤和原理与 yum 完全相同。
五、故障排除
"No package plymouth-plugin-script available":
检查拼写是否正确。
确保你的 YUM/DNF 仓库配置正确且已启用。可以运行 yum repolist 查看。
在某些最小化安装的系统或特定衍生版中,该包可能不在默认仓库里。
安装后主题不生效:
确保已使用 plymouth-set-default-theme -R 命令设置了主题并重建了 initrd。
确保你的内核命令行(GRUB配置)中包含 rhgb quiet 参数来启用图形化启动。rhgb (Red Hat Graphical Boot) 正是 Plymouth 的前身。
想查看详细启动日志而不是 Plymouth 动画:
在 GRUB 启动菜单界面,按 e 键编辑启动参数,找到以 linux 或 linux16 开头的行,删除其中的 rhgb quiet 参数,然后按 Ctrl+X 启动。这样就会显示传统的文本启动信息。