AvaloniaUI 之 Linux 常见问题

系统使用 Ubuntu 22.04.1 LTS 桌面版.

在 Ubuntu 22.04.1 LTS 桌面版上安装 MS 字体.

$ sudo apt install ttf-mscorefonts-installer

然后将会出现 Microsoft 的最终用户协议向导,点击 OK 继续。.

AvaloniaUI 之 Linux 常见问题

点击 Yes 已接受 Microsoft 的协议:AvaloniaUI 之 Linux 常见问题

安装字体之后, 我们需要使用命令行来更新字体缓存:

$ sudo fc-cache -f -v

官方issues解决方案issues1[2]issues2[3]issues3[4]

再次启动,如果还是无法启动以下步骤:

输入命令运行,启动的时候要去除本地化 LC_ALL=C ./Aapplication ,下面可以有方法可以解决不增加 LC_ALL=C 。

$ LC_ALL=C ./AvaloniaApplication_01
AvaloniaUI 之 Linux 常见问题

解决方法:

$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

从结果看如果 LC_ALL= 空则需要执行以下命令进行更改,LC_ALL=C 则命令执行成:

$ export LC_ALL=C
$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=C

输入 ./Aapplication 启动应用程序了,但是当系统重启就又不行了,有没有一劳永逸的办法呢?可以通过修改环境变量(需要注意修改完后系统就变成了英文版)。

$ su
$ #输入root密码
$ vi /etc/profile

追加 export LC_ALL=C 如下:

AvaloniaUI 之 Linux 常见问题

执行生效:

$ source /etc/profile
$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
AvaloniaUI 之 Linux 常见问题