昨天的金山打字通是使用了一个2008旧版本的deb包,拆解重新打包的。发现可以使用,但是还存在不少的问题,如:拼音的打字按空格键就会报错退出程序。于是网上找了一下,发现官方有一个2016版本的Windows安装包。
本想着尝试一下,把它下载回来。只要使用wine能跑起来的程序,就说明该程序可以在Ubuntu上运行,那么再打成deb包就有可能了。按此理论来讲,Linux系统上都可以使用,可以打成rpm包和deb包。

新版 金山打字通的 .exe 是 InstallShield 打包,不是微软 CAB,cabextract 不认。 但是使用 7zip(p7zip) 就能直接解压,不用 wine 跑安装。解压后就像绿色软件一样,那么deb打包就简单多了。
更重新的是这个官方包本来就很小,才21M,之前别人 打包的带有wine环境的要96M,这就是优势了(新,还小)。
一、先装 7zip(必做)
sudo apt update
sudo apt install -y p7zip-full
二、用 7zip 解压官方 exe(直接出绿色版)
#创建一个新目录结构,用来保存文件方便打包
mkdir -p ~/typeeasy-deb/DEBIAN
mkdir -p ~/typeeasy-deb/opt/typeeasy
mkdir -p ~/typeeasy-deb/opt/typeeasy/fonts #自己添加一个字体,直接解决中文乱码问题
mkdir -p ~/typeeasy-deb/usr/bin
mkdir -p ~/typeeasy-deb/usr/share/applications
# 进到你的目录
cd ~/typeeasy-deb/opt/typeeasy
# 下官方包(亲测有效)
wget "https://package.op.wpscdn.cn/wps/download/typeeasy.22063.12012.0.exe" -O typeeasy.exe
# 用 7zip 解压(关键!)
7z x typeeasy.exe -o./
解压过程可以看到如下信息:
swper@Mt:~/tyss$ 7z x typeeasy.22063.12012.0.exe -o./
7-Zip 26.00 (x64) : Copyright (c) 1999-2026 Igor Pavlov : 2026-02-12
64-bit locale=zh_CN.UTF-8 Threads:12 OPEN_MAX:1024, ASMScanning the drive for archives:
1 file, 21152072 bytes (21 MiB)Extracting archive: typeeasy.22063.12012.0.exe
WARNINGS:
Headers Error—
Path = typeeasy.22063.12012.0.exe
Type = PE
WARNINGS:
Headers Error
Physical Size = 21152072
CPU = x86
Characteristics = Executable 32-bit
Created = 2012-02-25 03:19:59
Headers Size = 1024
Checksum = 21175786
Image Size = 1277952
Section Alignment = 4096
File Alignment = 512
Code Size = 28672
Initialized Data Size = 445952
Uninitialized Data Size = 16896
Linker Version = 10.0
OS Version = 5.0
Image Version = 6.0
Subsystem Version = 5.0
Subsystem = Windows GUI
DLL Characteristics = Relocated NX-Compatible NoSEH TerminalServerAware
Stack Reserve = 1048576
Stack Commit = 4096
Heap Reserve = 1048576
Heap Commit = 4096
Virtual Address = 0x400000
Comment =
{
FileVersion: 2.2.0.63
ProductVersion: 2.2.0.63
CompanyName: 珠海金山办公软件有限公司
FileDescription: 金山打字通 2016 安装程序
LegalCopyright: Kingsoft Office Software Corporation
ProductName: 金山打字通 2016
Data Directories: 16
{
index=1 name=IMPORT VA=0x9B64 Size=180
index=2 name=RESOURCE VA=0x128000 Size=59864
index=4 name=SECURITY VA=0x1426FB8 Size=20880
index=5 name=BASERELOC VA=0x7A000 Size=2488
index=12 name=IAT VA=0x8000 Size=720
}…..
三、复制解压出来的文件到指定的目录下(参考上面目录结构)
cp -r ~/typeeasy/* ~/typeeasy-deb/opt/typeeasy/
四、写 deb 配置:DEBIAN/control 内容
Package: typeeasy
Version: 2016
Architecture: all
Maintainer: swper
Depends: wine
Priority: optional
Section: utils
Description: 金山打字通 2016 绿色解压版
五、写启动脚本:usr/bin/typeeasy内容
#!/bin/bash
export WINEARCH=win32
export WINEPREFIX="$HOME/.typeeasy"
export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
# 【关键】精准查杀当前prefix的所有进程
kill_prefix_processes() {
local PIDS=$(grep -l "WINEPREFIX=$WINEPREFIX" /proc/*/environ 2>/dev/null | sed -E 's;/proc/([0-9]+)/environ;\1;')
if [ -n "$PIDS" ]; then
kill $PIDS 2>/dev/null
sleep 0.3
kill -9 $PIDS 2>/dev/null
fi
}
# 启动前:清理残留进程,防止锁死
kill_prefix_processes
# 一次性初始化
if [ ! -d "$WINEPREFIX" ]; then
winecfg /v winxp > /dev/null 2>&1
sleep 1
WINE_FONTS="$WINEPREFIX/drive_c/windows/Fonts"
mkdir -p "$WINE_FONTS"
cp /opt/typeeasy/fonts/* "$WINE_FONTS/"
fi
# 启动主程序
wine /opt/typeeasy/TypeEasy.exe > /dev/null 2>&1
# 退出后:再次清理所有当前prefix的进程
kill_prefix_processes
我是使用本地之前下载的:simsun.ttc 字体
cp ~/.wine/drive_c/windows/Fonts/simsun.ttc typeeasy-deb/opt/typeeasy/fonts
启动脚本:usr/bin/typeeasy首次启动时会初始化一个.typeeasy的wine环境,同时把安装目录下的fonts/下字体复制到相应的目录下,让wine识别出来,就解决乱码问题了。
六、添加desktop快捷方式图标usr/share/applications/typeeasy.desktop
[Desktop Entry]
Name=金山打字通
Comment=Linux 版打字练习
Exec=typeeasy
Icon=/opt/typeeasy/typeeasy.ico
Terminal=false
Type=Application
StartupWMClass=typeeasy.exe
Categories=Education;Utility;
七. 打包
打包前,先提取一下程序的图标,这个是做快捷方式上的图标:
用金山打字通自带图标(最简单)在你目录里已经有:
~/typeeasy/12.3/TypeEasy.exe
里面自带图标。你可以用 icoutils 提取:
sudo apt install icoutils
wrestool -x -t14 12.3/TypeEasy.exe -o ~/typeeasy-deb/opt/typeeasy/typeeasy.ico
#保存到程序目录下,然后desktop文件中调用一下即可
默认是会得到 TypeEasy_*.ico,选一个清晰的,改成 typeeasy.ico ,上面命令直接就保存为typeeasy.ico文件名了。
执行以下命令,打包后文件名为:typeeasy-deb.deb
dpkg-deb --build typeeasy-deb
完成后文件居然只有29M
swper@Mt:~$ ls -lh typeeasy-deb.deb
-rw-r–r– 1 swper swper 29M Jun 8 10:13 typeeasy-deb.deb

八、遇到过的问题:
- 在没有添加字体之前,打开程序界面正常弹出,只是中文方框乱码(字体缺失)问题,其余功能全部可用。
乱码成因
Wine 容器缺少中文字体,系统找不到宋体 / 微软雅黑,汉字渲染成方框「□」。所以在打包时添加了字体,从根本上解决乱码问题。
- 启动程序后发现窗口标题栏和 Dock / 任务栏显示的图标一致,为了防止程序二次加载,直接对打包目录下的多个exe文件删除(它们作用是升级,更新等,官方暂时没更新,所以没必要)
swper@Mt:~/typeeasy-deb$ ls opt/typeeasy/*.exe
opt/typeeasy/TypeEasy.exe opt/typeeasy/teupd.exe opt/typeeasy/uplive.exe
opt/typeeasy/TypeEasyTask.exe opt/typeeasy/uninst.exe
opt/typeeasy/TypeEasyTray.exe opt/typeeasy/updateself.exe
# 目录下可以 仅保留TypeEasy.exe和uninst.exe即可。
# 同时在typeeasy.desktop文件中加入了核心参数:StartupWMClass=typeeasy.exe 防止图标不一致问题。
该参数:StartupWMClass在上一次《Ubuntu 通达信出现双图标问题原因与彻底解决方法(原生 deb 版)》有介绍过:
以上记录中已经是最后成功打包的版本,这里仅记录了途中遇到的问题总结。
最后打包完成的安装可以在Ubuntu26.04稳定运行,当然其它的版本我相信也可以的,因为从依赖的工具包来看只要系统满足了wine条件应该都可以,也希望大家可以测试一下,自己动手打包自己使用。