【谷月老师讲WPS】用 Windows 11 的 WSL 安装 WPS for Linux.md
本文最后更新于:2022年4月8日 凌晨
尽管 WPS 非常受欢迎,但是,WPS 个人版的广告特别多,怎么办?
解决方法有很多,谷月老师提供一种最硬核、最炫技的解决方案:借助 Windows 11 的 Linux 子系统 (WSL)安装 Ubuntu,直接在 WSL Ubuntu 中安装运行无广告的 WPS for Linux!
WSL 是 Windows Subsystem for Linux 的缩写,中文含义为「适用于 Linux 的 Windows 子系统」。它可以让用户在 Windows 桌面上运行 Linux 应用程序,完成开发、运维等工作。以前的 WSL 只能运行字符界面的应用程序,不能运行 GUI (图形界面)应用程序。2021 年,微软为 WSL 增加了原生运行 Linux GUI 应用程序的功能,称之为 WSLg (g 代表 GUI)。这就为在 Windows 桌面上运行 WPS for Linux 提供了可能。
本文以 Linux 零基础用户为目标读者,详尽地讲解在 Windows 11 的 WSLg 中,安装 Ubuntu,并在 Ubuntu 上安装和运行 WPS for Linux 的全过程。 你即使是对 Linux 一窍不通的小白,看完这篇教程,也能顺利地让 WPS for Linux 在 Windows 11 中跑起来!
下文不分 WSL、WSLg,一律统称 WSL。
1 准备工作
1.1 安装 Windows 11
此处不再赘述。可以参考谷月老师写的《把 Windows 11 安装到虚拟硬盘》
1.2 在 Windows 11 中安装 vGPU 驱动程序
根据微软的说法(通过 WSL 运行 Linux GUI 应用 | Microsoft Docs),若要运行 Linux GUI 应用,你应该首先安装与你的系统匹配的预览驱动程序。 这使你能够使用虚拟 GPU (vGPU) 以便你可以从硬件加速 OpenGL 呈现中获益。
下载地址:
1.3 安装 WSL
步骤 1 - 打开 Windows 终端
右击开始菜单,选择「Windows 终端(管理员)」,打开 Windows 终端。
步骤 2 - 安装 WSL
在 Windows 终端的「管理员: Windows PowerShell」标签页中,执行以下命令(执行命令的意思是,输入命令并按回车):
wsl --install
Windows 会安装 WSLg 和 Ubuntu,但是有时会卡在最后一步下载 Ubuntu。如图所示,红箭头表示已经安装了内核和 GUI 支持。但是最后一步下载 Ubuntu 特别慢。
步骤 3 - 单独安装 Ubuntu
使用上一步的命令安装 WSL 时,最后一步下载 Ubuntu 的速度特别慢。可以在 Windows 终端窗口中按 Ctrl + C 强行中止,然后点击任务栏上的 Microsoft Store,到微软软件商店里寻找并安装 Ubuntu。软件商店提供了三个选择:Ubuntu、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS。倾向于追新,就用最新版 Ubuntu。倾向于稳定,就用 LTS 版的 Ubuntu。在此以最新版的 Ubuntu 为例。
趁着用软件商店安装 Ubuntu 的机会,回到 Windows 终端,执行以下命令(# 号代表注释,# 号及 # 号后面的内容,都不需要输入):
wsl --update # 强制更新 WSL wsl --shutdown # 强制关闭 WSL net stop LxssManager # 强制关闭 LxssManager 服务,它是 WSL 依赖的服务 net start LxssManager # 重新启动 LxssManager 服务
步骤 4 - 初次运行 Ubuntu
Ubuntu 安装完毕后,在微软软件商店中会有一个「打开」按钮。
直接点击它,就会在一个终端窗口中运行 Linux 的字符界面。首次运行 Ubuntu 时,它会让你设置一个用户名和一个密码。注意:在 Linux 平台上,输入密码时,默认是什么也不显示的,这与 Windows 平台显示一连串星号或者圆点是不同的。我们在此处将用用户名设为
kukmoon
,下同。密码设置完成以后,终端窗口的底部会出现 $ 提示符。
我们可以关闭这个终端窗口,下次从更加方便易用的 Windows 终端中启动 Ubuntu。
1.4 启动 WSL Ubuntu
右击「开始」菜单,选择 Windows 终端,然后点击下拉箭头,选择 Ubuntu。
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令(注意:①第一次使用
sudo
命令时,要输入密码,在输入密码时,不会显示任何内容,这与 Windows 平台输入密码时显示星号或圆点是不一样的。② $ 符号不需要输入。)$ sudo apt update # 查看可更新的软件包 $ sudo apt upgrade # 更新已安装的软件包
1.5 安装中文支持
1.5.1 安装中文语言包
步骤 1 - 安装中文支持
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,这条命令将安装简体中文和繁体中文支持:
$ sudo apt install language-pack-zh-han* # 安装中文语言包
步骤 2 - 设置地域(locale)
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ sudo dpkg-reconfigure locales
这一步要选择
en_US.UTF-8
和zh_CN.UTF-8
。选择方法:用方向键把光标移上去,按空格键,让前方的括号里出现一个*
号。然后,按 Tab 键,让光标跳到上,再按回车键。
注意:以上操作实际上是修改了
/etc/locale.gen
文件,找到# zh_CN.UTF-8 UTF-8
这一行,删除行首的#
号和空格。这一步要把默认的区域设置为
zh_CN.UTF-8
。有两个没关系,选择第一个就可以。
Nano
的简单使用教程ypo
Nano
是 Ubuntu 内置的一个文本编辑器。我们在本文中会频繁地使用 nano
来修改各种配置文件。在此简介一下它的用法。
基本操作。
Nano
的基本操作,相当于没有鼠标的记事本。- 按四个方向键↑↓←→移动光标。
- 按字母、数字、空格、Tab可以在光标处输入。
- 按
Delete
键可以删除光标后面的一个字符,按BackSpace
键可以删除光标前面的一个字符。
快捷键的表达方式。
Nano
的快捷键位于屏幕底部。反白的文字(例如^G
)表示快捷键,后面白色的文字(例如Get Help
)表示对应的功能。- ^ 表示
Ctrl
键。例如^G
表示Ctrl+G
。 - M- 表示
Alt
键。例如M-U
表示Alt+U
。
- ^ 表示
与 Windows 不同的常用快捷键。
- 退出:不是
Esc
,而是^X
(Ctrl+X
)。 - 粘贴:从 Windows 中复制的文本,要用
Ctrl+V
粘贴到运行在 WSL Ubuntu 上的Nano
中;在Nano
内部复制的文本,要用^U
(Ctrl+U
)粘贴到Nano
中。 - 撤销:不是
Ctrl+Z
,而是M-U
(Alt+U
)。 - 挂起(非常重要):很多同学误按
Ctrl+Z
,结果触发了Nano
的挂起,导致又回到终端命令行。只需要输入fg
再按回车,就可以回到Nano
了。
- 退出:不是
文件修改完毕后,如何保存退出?
- 直接按
^X
(Ctrl+X
),Nano
会提问是否保存,按Y
,它会进一步提问要保存的文件名,按下回车保持默认即可。
- 直接按
获取更进一步的帮助。
- 直接按
^G
(Ctrl+G
)。
- 直接按
步骤 3 - 修改地域配置文件
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,这条命令将调用
nano
修改配置文件。$ sudo nano /etc/default/locale
把文件内容都删除,修改成以下内容,注意配置文件中不能有多余的空格:
LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" LC_NUMERIC="zh_CN" LC_TIME="zh_CN" LC_MONETARY="zh_CN" LC_PAPER="zh_CN" LC_NAME="zh_CN" LC_ADDRESS="zh_CN" LC_TELEPHONE="zh_CN" LC_MEASUREMENT="zh_CN" LC_IDENTIFICATION="zh_CN" LC_ALL="zh_CN.UTF-8"
步骤 4 - 修改环境配置文件
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,这条命令将调用
nano
修改配置文件。$ sudo nano /etc/environment
在文件末尾另起一行,增加以下内容,注意配置文件中不能有多余的空格:
LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" LC_NUMERIC="zh_CN" LC_TIME="zh_CN" LC_MONETARY="zh_CN" LC_PAPER="zh_CN" LC_NAME="zh_CN" LC_ADDRESS="zh_CN" LC_TELEPHONE="zh_CN" LC_MEASUREMENT="zh_CN" LC_IDENTIFICATION="zh_CN" LC_ALL="zh_CN.UTF-8"
步骤 5 - 重启 WSL
重启 WSL 之后,WSL Ubuntu 的字符界面就变成中文界面了。
重启方法:
关闭 Windows 终端中的 Ubuntu 标签页,在 PowerShell 标签页中,输入以下命令:
wsl --shutdown # 强制关闭 WSL
稍候片刻,再点击 Windows 终端窗口标题栏中的下拉箭头,选择 Ubuntu,再次连接 WSL Ubuntu。
1.5.2 安装中文字体(可选)
完成以上步骤所列的操作以后,WSL Ubuntu 还缺少适用于 GUI 的中文字体。我们需要安装,才能正常运行中文的 GUI 应用程序。
步骤 1 - 安装常用开源中文字体(可选)
注意:如果屏幕像素密度(PPI)过低(例如在 24 寸 1080p 分辨率的显示器上),不建议安装这些字体。这些字体在低像素密度的屏幕上渲染效果极差。比起使用这些开源字体,谷月老师建议使用微软雅黑。
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
sudo apt install fonts-noto-cjk # 思源系列字体
sudo apt install fonts-wqy-microhei # 文泉驿-微米黑
sudo apt install fonts-wqy-zenhei # 文泉驿-正黑
sudo apt install xfonts-wqy # 文泉驿-点阵宋体
步骤 2 - 让 WSL Ubuntu 识别 Windows 字体
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,安装 fontconfig 软件包。
sudo apt install fontconfig # fontconfig包
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,创建
/etc/fonts/local.conf
文件,sudo nano /etc/fonts/local.conf
将以下内容添加到到这个文件中:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/mnt/c/Windows/Fonts</dir> </fontconfig>
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,刷新字体缓存。
sudo fc-cache -fv # 也就是让系统认识字体
可以用以下命令查看已安装的字体。
fc-list :lang=zh
如果执行了上述命令以后没有发现 Windows 安装的字体(例如微软雅黑),请把
/etc/fonts/local.conf
文件中<dir>/mnt/c/Windows/Fonts</dir>
的大写F
改成小写的f
。
1.5.3 安装中文输入法 fcitx
WSL GUI 是基于 RDP 的远程桌面实现的,而 Linux 是运行在虚拟机里。所以,Windows 输入法不能在 WSL GUI 应用程序中输入文字,必须在虚拟机的 Linux 中安装输入法。本文选用了 fcitx
输入法框架。
另一方面,必须用 dbus 保证输入法和应用程序之间的通信。所以,需要安装 dbus,然后用 dbus-launch 启动一个 dbus session, 并且让 GUI 和输入法同时得到 DBUS_SESSION_BUS_ADDRESS 的环境变量,这样输入法才能使用。
目前,由于 WSLg 的限制,中文输入法暂不支持光标跟随。但是由于 WPS 对 fcitx 输入法框架进行了特别适配,因此在 WPS 中是可以实现光标跟随的。
步骤 1 - 卸载 IBus 输入法框架
Ubuntu 内置了 IBus 输入法框架,与 fcitx 冲突,需要事先卸载。
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,卸载 IBus:
sudo apt remove ibus*
步骤 2 - 安装所需要的软件包
此处需要 dbus-x11(实现输入法与 GUI 应用程序之间的通信,必需)、im-config (GUI 输入法配置)、fcitx (输入法框架)、fcitx-sunpinyin (智能拼音输入法) 和 fcitx-table-wubi (五笔输入法)。
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,安装所用的软件包:
sudo apt install dbus-x11 fcitx im-config fcitx-sunpinyin fcitx-table-wubi
步骤 3 - 配置输入法框架
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,配置 fcitx 输入法框架:
fcitx-config-gtk3
在 Input Method 标签页中,点击对话框左下角的 + 号,增加中文输入法。注意,要把键盘方案放在上面,输入法放在下面,换句话说,就是保持 「Keyboard - English (US)」 在最上面,中文输入法都要在它下面。
在 Global Config 标签页中,注意默认的 Trigger Input Method (输入法切换)快捷键是
Ctrl + 空格
。这个快捷键不会与 Windows 的输入法切换快捷键冲突,可以保留。如果要修改,不可以让新的快捷键与 Windows 的全局快捷键冲突,否则无效,例如,WIN + 空格是 Windows 切换输入法的全局快捷键,在 WSL Ubuntu 的 fcitx 中,就不能用这个快捷键来切换输入法。
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,设置默认的 GUI 输入法为 fcitx:
sudo im-config -n fcitx
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,修改
/etc/locale.gen
文件:sudo nano /etc/locale.gen
找到
# zh_CN.UTF-8 UTF-8
这一行,删除行首的#
号和空格。在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,修改
~/.profile
文件:sudo nano /etc/locale.gen
- 修改
~/.profile
文件,在文件的末尾增加以下内容。export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export DefaultIMModule=fcitx fcitx-autostart &>/dev/null
- 修改
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,刷新
~/.profile
文件:source ~/.profile
这样一来,在 GUI 应用程序中就可以按输入法切换键 Ctrl + 空格,输入中文了。
如果输入法切不出来,就重启 WSL Ubuntu。
1.6 安装运行 Linux GUI 应用程序
步骤 1 - 安装文本编辑器 GEdit
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ sudo apt install gedit
安装结束后,可以在 Windows 终端中输入
gedit
来运行它;也可以在 Windows 开始菜单 → Ubuntu 文件夹中找到新安装的 GEdit。
步骤 2 - 安装改善使用体验的一些小工具:
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ sudo apt install adwaita-icon-theme-full # 图标集,避免有些软件图标显示不全并且在终端窗口中提示缺少图标
$ sudo apt install fonts-noto-color-emoji # Emoji 字体
2 在 WSL Ubuntu 中安装 WPS for Linux
步骤 1 - 从官网下载
在 Windows 中,用浏览器进入 WPS for Linux 官网,点击「直接下载」,然后下载 64 位 Deb 格式中的 For X64。
Windows 11 的 Edge 浏览器默认把下载的文件放在 C:\Users\<用户名>\Downloads
文件夹下。在 WSL 中,这个文件夹的路径是 /mnt/c/Users/<用户名>/downloads
目录。(<用户名>是你的用户名)
步骤 2 - 在 WSL Ubuntu 中执行安装程序
在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ cd /mnt/c/Users/<用户名>/downloads
$ sudo dpkg -i wps-office_11.1.0.10702_amd64.deb
步骤 3 - 安装 xdg-utils
安装结束时, dpkg 会因为无法解决依赖问题而报错(dependency problems prevent configuration of wps-office),例如,在我的 WSL 上,dpkg 提示:
dpkg: dependency problems prevent configuration of wps-office: wps-office depends on libglu1-mesa; however: Package libglu1-mesa is not installed. dpkg: error processing package wps-office (--install): dependency problems - leaving unconfigured Processing triggers for shared-mime-info (1.15-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1ubuntu1) ... Processing triggers for desktop-file-utils (0.24-1ubuntu3) ... Processing triggers for mime-support (3.64ubuntu1) ... Processing triggers for fontconfig (2.13.1-2ubuntu3) ... Errors were encountered while processing: wps-office
此时,需要解决缺失的依赖问题,在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ sudo apt -f install
但是,Apt 报错,提示
/var/lib/dpkg/info/wps-office.postinst: line 313: xdg-icon-resource: command not found
,这是因为 WSLg 里的 Ubuntu 缺少 xdg-icon-resource 组件。我们需要在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令,安装 xdg-utils 组件:sudo apt install xdg-utils
安装了 xdg-utils 组件,再次执行
sudo apt -f install
,就不会报错了,这说明 WPS for Linux 的安装已经顺利完成。可以使用 dpkg 查看 WSL 将 WPS for Linux 安装到了什么地方。
$ sudo dpkg -L wps-office # 使用dpkg -L查看deb包目录信息
步骤 4 - 安装缺失的字体
如果此时直接输入 wps
运行 WPS for Linux,大概率会出错。
例如,WPS 里面的中文都是框框。
WPS 会提示有些公式因为缺少字体而不能显示(Some formula symbols might not be displayed correctly due to missing fonts Sym…)。
所以我们还需要安装字体。
在 Windows 的浏览器中,从以下链接下载字体包: https://pan.baidu.com/s/1FawNHHZ4JhTniq77FsmkOg 提取码: gjts 。
下载回来以后,在 Windows 终端的 Ubuntu 标签页中,在 $ 提示符后,执行以下命令:
$ cd /mnt/c/Users/<用户名>/downloads # 进入 Windows 的「下载」文件夹 $ sudo unzip wps_for_linux_symbol_fonts.zip -d /usr/share/fonts/wps-office # 将下载的字体直接解压到 WPS 的字体文件夹下
步骤 5 - 初次运行 WPS
这样,WPS for Linux 最终安装完毕。我们就可以运行 WPS 了。
运行 WPS 的两种方法:
可以像在 Windows 中那样,通过开始菜单运行 WPS for Linux。
在命令行中运行 WPS for Linux。
- WPS 文字:
wps
- WPS 表格:
et
- WPS 演示:
wpp
- WPS PDF:
wpspdf
- WPS 文字:
步骤 6 - 修改 WPS 的界面语言为简体中文
在 WSL Ubuntu 中初次运行的 WPS 是英文版的,如图所示。但是我们可以把它改成中文版。
首先,点击 WPS Writer 右边的 + 号,新建文档。
点击窗口右上角的 Select Language (带一个A的图标)。
选择简体中文,点击「立即执行」按钮,再点击「应用」按钮。重新启动 WPS。
WPS 的界面语言变成中文。
3 使用体验
3.1 概述与优点
输入中文正常,所有功能可用。
云功能可以用。金山云文档的功能很全面。
留意右上角的用户名和头像,表明用户已经登录了 WPS 账号,并且自动开启了云同步功能。
借助 WSL 将 Windows 中的每个碰盘驱动器都映射到 WSL 中的特性,WSL Ubuntu 中的 WPS for Linux,也可以顺利地打开 Windows 中的文档。Windows 的「我的文档」文件夹,对应 WSL 中的 /mnt/c/User/<用户名>/Documents
目录。可以把这个目录添加为书签,这样就可以在「打开」对话框左侧快速访问它了。
按照谷月老师在前文中的讲述配置过字体以后,在 WSL Ubuntu 中 运行的 WPS for Linux,可以无缝读取 Windows 中安装的所有字体。此外,如果在 Windows 中新安装了字体,也不要紧,只需要在 WSL 中执行 sudo fc-cache -fv
命令,更新一下字体缓存,就可以让 WPS for Linux 使用新的字体啦。
由于 WPS for Linux 的开发团队针对 fcitx 输入法框架进行过针对性适配,因此在 WSL Ubuntu 中运行的 WPS for Linux 中使用 fcitx 打字,顺滑、流畅,而且可以实现输入法的光标跟随,避免了由于 WSL 自身问题导致的输入法选字框无法光标跟随的问题。
WPS 表格特色的「阅读模式」(聚光灯)功能。在 Microsoft Excel 中,需要用 VBA 编写一个宏才能实现,在 WPS 表格中,只需要点击一下鼠标。
WPS 演示的各项功能也都能用,包括「平滑」。
WPS for Windows 与 WPS 文字 for Linux 的合影。
WPS for Windows 与 WPS for Linux 全家福。WPS for Windows 是一个集成式办公系统,各个模块在同一个界面中运行;而WPS for Linux 是分体式的,每个模块都是单独的应用程序。
3.2 以下说说缺点
本地模板太少了,而且有点土。
连不上稻壳儿,无法使用在线模板。
由于 WSLg 本身的各种限制,尤其是 vGPU 的限制,在 WSL Ubuntu 上运行 WPS,会比较卡顿,此外,偶有崩溃的现象。如果要更加流畅的体验,以下三种解决方案的体验会好一点,而且不受 WSLg 仅供 Windows 11 和 Windows Insider 专用的限制, 非 Insider 的 Windows 10 也可以使用:
- 用 XrcSrv 之类的工具连接 WSL 中的 Ubuntu 桌面,
- 在 WSL 中安装 Kali Linux ,启用完整的 GUI 桌面 Win-Kex,并安装运行 WPS,
- 在 Hyper-V 中安装微软定制版的 Ubuntu 20.04, 并安装运行 WPS。
4 总结
WSLg 的问世,让 Windows 运行 Linux 的 GUI 应用程序成为可能。它给 Windows 和 Linux 双开用户带来了以下三点利好:
- 获得完整的 Linux 桌面体验,运行 Linux 专属的 GUI 应用程序,尤其是专用的科研软件、行业软件。
- 解决了用虚拟机运行 Linux 带来的在 Windows 和 Linux 之间交换数据不便的问题。
- 对于普通用户来说,可以体验同一款软件的 Windows 版和 Linux 版,选择体(广)验(告)更(更)好(少)的一个版本。
5 参考资料
- https://docs.microsoft.com/zh-cn/windows/wsl/install
- https://blog.csdn.net/no1xium/article/details/107689729
- https://zhuanlan.zhihu.com/p/144132093
- https://linux.die.net/man/1/xdg-icon-resource
- https://www.cnblogs.com/cure/p/14655922.html
- https://www.gelomen.com/optimize/wsl-ubuntu-20-04-zh-cn
- https://qastack.cn/superuser/1108090/how-do-i-change-the-language-of-the-linux-subsystem-in-windows-10-wsl
- https://www.howtoing.com/set-system-locales-in-linux
- https://blog.csdn.net/u014756827/article/details/98174084
- https://www.cnblogs.com/liushui-sky/p/9122032.html
- https://wiki.ubuntu.com.cn/IBus
- https://blog.csdn.net/qq_50332374/article/details/119966359
- https://www.jianshu.com/p/9da52ccafa1e
- https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/
- https://www.idczone.net/news/5096.html/
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!