打包字体为 deb 安装包
以下是最终版本的 .deb 包的完整结构和脚本。这个包包含了安装和卸载字体的功能,并确保在安装时正确设置字体文件的权限以及在卸载时清理字体文件并刷新字体缓存。
1. 创建目录结构
首先,创建一个新的目录来组织你的 .deb 包文件:
mkdir -p ~/font-package/DEBIAN
mkdir -p ~/font-package/usr/share/fonts/wps-office
2. 将字体文件放入 wps-office 目录
将你要打包的 .ttf 字体文件复制到 ~/font-package/usr/share/fonts/wps-office/ 目录下。假设你的字体文件是 font1.ttf, font2.ttf 等:
cp *.ttf ~/font-package/usr/share/fonts/wps-office/
3. 创建 control 文件
在 DEBIAN 目录下,创建一个名为 control 的文件,描述软件包的基本信息:
nano ~/font-package/DEBIAN/control
内容如下:
Package: wps-office-fonts
Version: 1.0
Architecture: all
Maintainer: Jetsung Chan <jetsungchan@gmail.com>
Description: Install fonts for WPS Office
Depends: fontconfig, xfonts-utils
Priority: optional
Section: fonts
4. 创建 postinst 安装脚本
postinst 脚本会在安装时自动执行,负责设置字体文件权限并刷新字体缓存:
nano ~/font-package/DEBIAN/postinst
内容如下:
#!/bin/bash
# 设置字体文件权限
chmod -R 644 /usr/share/fonts/wps-office/*.ttf
# 创建字体目录
mkfontdir /usr/share/fonts/wps-office/
# 更新字体索引
mkfontscale /usr/share/fonts/wps-office/
# 刷新字体缓存
fc-cache -fv
exit 0
确保 postinst 脚本有执行权限:
chmod 755 ~/font-package/DEBIAN/postinst
5. 创建 prerm 卸载脚本
prerm 脚本会在卸载时自动执行,负责删除字体文件并更新字体缓存:
nano ~/font-package/DEBIAN/prerm
内容如下:
#!/bin/bash
# 删除字体文件
rm -f /usr/share/fonts/wps-office/*.ttf
# 刷新字体缓存
fc-cache -fv
exit 0
确保 prerm 脚本有执行权限:
chmod 755 ~/font-package/DEBIAN/prerm
6. 构建 .deb 包
现在,使用 dpkg-deb 命令来构建 .deb 包:
dpkg-deb --build ~/font-package
这将生成一个 font-package.deb 文件,你可以将它安装到任何支持 .deb 包的系统上。
7. 安装和卸载测试
最终目录结构
font-package/
├── DEBIAN/
│ ├── control
│ ├── postinst
│ └── prerm
└── usr/
└── share/
└── fonts/
└── wps-office/
├── font1.ttf
├── font2.ttf
└── ...
总结
control 文件定义了包的基本信息。
postinst 脚本在安装时执行,设置字体文件权限并刷新字体缓存。
prerm 脚本在卸载时执行,删除字体文件并刷新字体缓存。
通过这种方式,你可以创建一个包含字体安装和卸载功能的 .deb 包,方便地在多个系统上安装和管理字体。