Deepin Linux 下安装千牛工作台

一、背景介绍
千牛工作台是一款淘宝卖家客户端程序,有Windows及其它平台,没有Linux客户端。我在淘宝上作Linux远程技术服务,而我使用的主力系统是Deepin Linux,于是有了电脑上安装千牛工作台的需要。Deepin 仓库里有:com.taobao.work.deepin 9.59.05deepin,但不能使用。

二、技术要点概览
我是利用 deepn 25.2.2/20.9 Linux 仓库里的“统信Windows应用兼容引擎”安装最新Windows版的"千牛工作台",然后导入单独的注册表修复补丁完成。后面还讲了解决方法的发现过程。最后是给“统信Windows应用兼容引擎”软件的一点建议。

三、具体步骤
下面的步骤是以 Deepin 25.2.2 Linux 为例,同样的步骤在 Deepin 20.9 也测试通过。

1、下载安装“统信Windows应用兼容引擎”
可以在“应用商店”搜索“统信Windows应用兼容引擎”安装,也可以执行下列命令在终端安装:

sudo apt update
sudo apt install deepin-wine-builder

2、下载安装“Windows版千牛工作台”
官方下载网址:https://work.taobao.com/download.html,下载其中的 Windows 版本,当前下载下来的文件名是:AliworkbenchQNDownload_(1.0.2.1).exe,大小只有1.3MB,应该只是主程序的下载器。

双击桌面的“统信Windows应用兼容引擎”图标打开程序,选择左侧菜单栏的“全部应用”,在顶部中央搜索框中输入“千牛”回车搜索,会出来“千牛工作台”项目,点击右侧的安装。点击中间下部的“+”,选择前面下载的AliworkbenchQNDownload_(1.0.2.1).exe。点击右下角的“安装”。这一过程中会下载真正的主程序,如当前下载下来的是:qianniu_(9.97.74N)_NK_64.exe,并打开下载文件夹展示下载的文件。关闭打开的下载文件夹,继续在安装窗口上选择“同意许可协议”,并点击立即安装。安装完成后,关闭安装窗口。进行必须的下一步设置,否则,在千牛与来客对话时,出现的所有文字对话内容一律会显示为“暂不支持的消息类型”,导致根本无法正常使用。

在“统信Windows应用兼容引擎”左侧点击“我的应用”,确保千牛没有在运行,主窗口的“千牛工作台”右侧显示的是“运行”。点击右边的三个小点,选择“快捷工具”->“导入注册表”。把包含下面文字内容的注册表补丁文件(比如保存为文件名:qianniu-dlloverrides-fix.reg)导入进去,会自动添加17项的“原生优于内建”的dll项目。这期间可能会有黑色的终端窗口闪现几次,稍等片刻等导入完成后,点击右上角的“x”关闭“统信Windows应用兼容引擎”。
注册表补丁文件 qianniu-dlloverrides-fix.reg 内容:

REGEDIT4

; ============================================================
; 千牛工作台「暂不支持的消息类型」修复补丁
; ------------------------------------------------------------
; 问题:统信 Windows 应用兼容引擎(deepin-wine-builder)新建的 bottle
;       没有继承 VC++ 运行库的原生优先声明,导致千牛只能使用 Wine 自研的
;       msvcp140 / vcruntime140 等内置实现,消息文本在 C++ 侧序列化时
;       静默失败,界面统一显示「暂不支持的消息类型」(图片、表情正常)。
;
; 作用:把 17 个运行库标记为 native,builtin(先找原生,找不到退回内置),
;       使千牛加载自己程序目录里自带的那套微软原生运行库。
;
; 适用:千牛 9.97.x + deepin-wine10 + 统信兼容引擎 bottle
; 日期:2026-11-02   已验证有效
;
; 用法:先完全退出千牛,再导入本文件,然后重新启动千牛。
;       导入后不需要重启电脑。
; ============================================================

[HKEY_CURRENT_USER\Software\Wine\DllOverrides]

; --- 微软 VC++ 2015-2022 运行库 ---
"msvcp140"="native,builtin"
"msvcp140_1"="native,builtin"
"msvcp140_2"="native,builtin"
"vcruntime140"="native,builtin"
"vcruntime140_1"="native,builtin"
"concrt140"="native,builtin"
"vcomp140"="native,builtin"
"atl140"="native,builtin"
"msvcr140"="native,builtin"

; --- Universal CRT 的 API Set 转发层 ---
"api-ms-win-crt-conio-l1-1-0"="native,builtin"
"api-ms-win-crt-heap-l1-1-0"="native,builtin"
"api-ms-win-crt-locale-l1-1-0"="native,builtin"
"api-ms-win-crt-math-l1-1-0"="native,builtin"
"api-ms-win-crt-private-l1-1-0"="native,builtin"
"api-ms-win-crt-runtime-l1-1-0"="native,builtin"
"api-ms-win-crt-stdio-l1-1-0"="native,builtin"
"api-ms-win-crt-time-l1-1-0"="native,builtin"

; 说明:vcomp140 / atl140 / msvcr140 千牛目录里不一定有,
;       native,builtin 会自动退回内置版本,不会报错。

3、运行“千牛工作台”
双击桌面上的蓝色白色牛头图标即可运行。启动期间也会有黑色的终端闪现几次。然后就出现登录界面,叉掉中间出现的“新增入口”小框,就可以用密码或手机端扫码登录使用了。

4、卸载“千牛工作台”
在“统信Windows应用兼容引擎”中左侧菜单栏点击“我的应用”,点击出现的“千牛工作台”右侧的三个小点,在弹出的菜单中选择卸载就行。位于 ~/.local/share/deepin-wine-bottles/bottles 里面的容器文件夹会被整体删除。

四、难点的解决
这次安装的难点是那个补丁文件的获取。

实际上,之前我就发现仓库里的“千牛工作台”不能正常使用,我在偶然的尝试中,在已经安装好了的“央视影音”客户端(com.cctv.deepin)的容器里安装“千牛工作台”成功。使用的关键命令是:“env WINEPREFIX="$HOME/.deepinwine/com.cctv.deepin" deepin-wine10-stable uninstaller”。但是后来“千牛工作台”升级后,扫码登录不能使用,窗口页面不加载。这样,一段时间就停止了在 Deepin Linux 上使用。前几天,我用 WorkBuddy 诊断,从容器原来的 deepin-wine8-stable 换成 deepin-wine10-stable 就正常了。

然后,我尝试用“统信Windows应用兼容引擎”安装千牛,结果就是前面说的与客户对话文字消息显示为“暂不支持的消息类型”。我用 WorkBuddy 让它比较基于“央视影音”客户端容器和“统信Windows应用兼容引擎”安装的实例的区别,并修复兼容引擎安装实例。WorkBuddy 从字体设置、dll版本、数据目录、启动参数、DirectX 等各方面调试都不成功,中途甚至劝我说既然基于“央视影音”客户端容器可以正常工作就不要折腾了。我让它继续,最后终于发现是统信 bottle 的 DllOverrides 只有 1 条,“央视影音”容器有 18 条。这18条是让Wine使用Windows原生dll优先于Wine内建dll。然后就给出了上面的 注册表补丁文件 qianniu-dlloverrides-fix.reg 。前后花了差不多3个小时。

如果你在使用“统信Windows应用兼容引擎”的过程中有问题,不妨试试上面的补丁。

五、存在的问题
我发现了2个不影响正常的小问题。
一是有时窗口显示不出来内容,点击窗口顶部的刷新图标就行。二是悬浮小窗口四周有黑边,这可以忽略,也可以通过Deepin系统方面的设置解决。这里就不详细展开了。

六、给“统信Windows应用兼容引擎”的一点建议
如果程序需要进一步设置的话,可以在兼容引擎程序的页面上补充相应的设置说明和相应的补丁文件。

Linux下固态硬盘误删除或格式化数据恢复小结

讲解视频:【Linux下固态硬盘误删除或格式化数据恢复小结】 https://www.bilibili.com/video/BV1ExwFzpEv4/

Continue reading "Linux下固态硬盘误删除或格式化数据恢复小结"

Linux维修案例分享:Ubuntu 显卡驱动引起的黑屏故障修复

讲解视频:【Linux维修案例分享:Ubuntu 显卡驱动引起的黑屏故障修复】 https://www.bilibili.com/video/BV1hWNgzLEZh/

Continue reading "Linux维修案例分享:Ubuntu 显卡驱动引起的黑屏故障修复"

Linux维修案例:更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复

讲解视频:【Linux维修案例:更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复】 https://www.bilibili.com/video/BV1s6P4zyEjx/

Continue reading "Linux维修案例:更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复"