打包字体为 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
包,方便地在多个系统上安装和管理字体。