技术分享 | 国产麒麟 arm 上编译安装 xtrabackup8

本文详细记录了在Kylin V10(aarch64架构)系统上,由于缺乏官方预编译的二进制包,如何从源码编译安装Percona XtraBackup 8.0的过程。首先介绍了选择编译安装的原因,然后详细阐述了环境准备、依赖包安装、高版本gcc的快速安装以及xtrabackup的编译和安装步骤,包括解决编译过程中可能遇到的问题。

作者:王向

爱可生 DBA 团队成员,负责公司 DMP 产品的运维和客户 MySQL 问题的处理。擅长数据库故障处理。对数据库技术和 python 有着浓厚的兴趣。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


需求背景

由于官方上游还没有提供 arm 架构可用的二进制通用安装包,所以我们只能选择进行编译安装或者 rpm 包安装。

这里选择了更复杂费时的编译安装,对于为什么选用编译安装大概有以下原因:

  • 调整分发更容易一些
  • 同一台机器装多个版本共存

下面我就进入操作环节吧。

环境准备

我这里的机器环境信息如下:

  • 系统:kylin v10
  • 架构: aarch64
  • 内核:4.19.90-17.5

本文内所有步骤都基于该环境

[root@wx-test ~]# uname -a 
Linux wx-test 4.19.90-17.5.ky10.aarch64 #1 SMP Fri Aug 7 13:35:33 CST 2020 aarch64 aarch64 aarch64 GNU/Linux 
[root@wx-test ~]# cat /etc/os-release 
NAME="Kylin Linux Advanced Server" 
VERSION="V10 (Tercel)" 
ID="kylin" 
VERSION_ID="V10" 
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)" 
ANSI_COLOR="0;31"

前期准备

  • 下载 xtrabackup 源码包,门牌号:Download Percona XtraBackup 8.0
[root@wx-test ~]# ll 
总用量 291168 
-rw-rw-r-- 1 dba dba 298154792 6月 27 14:18 percona-xtrabackup-8.0.27-19.tar.gz 

# 顺手把解压缩也做了 
[root@wx-test ~]$ tar xf percona-xtrabackup-8.0.27-19.tar.gz 

# 顺手在创建一个目录来存储已编译的文件 
[root@wx-test ~]$ cd percona-xtrabackup-8.0.27-19 
[root@wx-test percona-xtrabackup-8.0.27-19]$ pwd 
/home/dba/percona-xtr
<think> 我们正在分析银河麒麟ARM版Linux系统中部分终端显示中文为方块而图形界面正常的问题。根据引用资料和之前分析,我们聚焦于ARM架构下的特定情况。 核心原因是终端环境的UTF-8支持和字体配置问题: 1. **终端编码未启用UTF-8**:字符终端默认locale可能为POSIX/C,需检查并设置LANG/LC_CTYPE为zh_CN.UTF-8 2. **终端字体不含中文点阵**:银河麒麟ARM版字符终端使用内核级psf字体,默认不包含中文 3. **图形界面依赖Freetype渲染**:GUI通过Qt等框架矢量渲染中文(引用[3]显示Qt需单独配置字体路径) 解决方案: ### 一、验证终端编码 ```bash # 查看当前终端locale设置 locale | grep -E "LANG|LC_CTYPE" # 若未设置UTF-8,临时生效: export LANG=zh_CN.UTF-8 ``` ### 二、安装中文字体并加载 1. **安装unifont点阵字体**(ARM兼容): ```bash sudo apt install fonts-unifont # 银河麒麟软件源可能名为unifont ``` 2. **手动加载终端字体**: ```bash # 查找已安装的psf字体 find /usr/share/consolefonts/ -name "*unifont*" # 加载字体(示例) sudo setfont /usr/share/consolefonts/Unifont-APRS8x16.psf ``` ### 三、永久配置字符终端 编辑`/etc/default/console-setup`(引用[4]提到银河麒麟使用Debian配置体系): ```ini CHARMAP="UTF-8" FONT="Unifont-16" FONTSIZE="8x16" ``` 运行生效: ```bash sudo setupcon --save # 保存配置到所有终端 ``` ### 四、替代方案:使用fbterm 若固件限制无法修改内核字体(常见于某些ARM开发板): 1. 安装帧缓冲终端: ```bash sudo apt install fbterm ``` 2. 创建`~/.fbtermrc`指定中文字体: ```ini font-names=WenQuanYi Micro Hei Mono font-size=14 ``` > ️ 需先安装文泉驿字体:`sudo apt install fonts-wqy-microhei` ### 疑难排查 - **飞腾D2000固件限制**:部分ARM设备BIOS未启用UTF-8控制台(引用[1]笔记本案例),需更新固件 - **Qt应用异常**:若图形终端也出现方块,需按引用[3]配置Qt字体路径 --- §§相关问题§§ 1. 如何在银河麒麟ARM版中永久修改系统locale? 2. 如何为银河麒麟字符终端编译自定义中文字体? 3. 飞腾D2000处理器的终端显示有哪些特殊限制? 4. Qt程序在银河麒麟ARM版显示中文异常如何解决? </think> 在银河麒麟ARM版Linux系统中,部分终端显示中文为方块而图形界面正常的原因主要涉及**终端环境编码配置**、**字体支持层级**和**渲染机制差异**三方面问题,结合银河麒麟系统的ARM架构特性分析如下: --- ### 一、终端环境未启用UTF-8编码(ARM架构关键限制) 1. **默认终端配置差异** 银河麒麟ARM版默认图形终端(GUI)自动启用UTF-8编码,但**字符终端(Ctrl+Alt+F1~F6)可能继承固件设置**: ```bash # 检查字符终端编码(飞腾D2000设备常见输出) echo $LANG # 可能输出 C 或 POSIX locale charmap # 可能输出 ANSI_X3.4-1968 (ASCII) ``` 这与系统安装方式相关:ARM架构系统安装时若未显式选择中文语言包,字符终端locale默认不启用UTF-8[^1][^2]。 2. **ARM固件层限制** 银河麒麟在飞腾处理器平台启动时,部分固件(如UEFI)**未初始化Unicode支持**,导致早期终端环境无法处理中文编码[^1]。 --- ### 二、中文字体部署缺失(ARM系统特有现象) | **环境** | 字体加载方式 | ARM架构问题 | |----------------|---------------------|-------------------------------| | 图形界面 (GUI) | Qt/MiniGUI动态加载 | 用户可手动添加字体(如引用[3]) | | 字符终端 | 内核固件预置点阵字体 | **默认不包含中文字体(.psf)** | - **银河麒麟ARM版验证**: ```bash # 检查可用终端字体(飞腾D2000典型输出) ls /usr/share/consolefonts/ # 输出多为 latarcyrheb*.psf.gz (西文字体) 无中文字体 ``` 这与系统构建策略相关:为减少固件体积,ARM版默认省略中文字体[^1][^3]。 --- ### 三、渲染机制差异(Qt框架影响) 1. **图形界面渲染流程** 银河麒麟桌面依赖Qt框架(引用[3]),通过**Freetype矢量渲染**: $$ \text{UTF-8字节流} \xrightarrow{\text{Qt}} \text{矢量字体} \rightarrow \text{正确显示} $$ 即使字体未预装,用户也可自行添加至`/usr/share/fonts/`[^3]。 2. **字符终端渲染流程** 依赖**内核级点阵字体映射**: $$ \text{中文字符} \xrightarrow{\text{未启用UTF-8}} \text{无效编码} \xrightarrow{\text{无中文字体}} \text{方块} $$ 在ARM架构下,该问题因固件限制更显著(引用[2]虚拟机安装时同样需手动配置)。 --- ### 解决方案(银河麒麟ARM版专用) #### 步骤1:激活终端UTF-8支持 ```bash # 永久修改字符终端locale(需root) sudo sed -i 's/LANG=.*/LANG="zh_CN.UTF-8"/' /etc/locale.conf sudo localectl set-locale LANG=zh_CN.UTF-8 ``` #### 步骤2:安装中文字体包 ```bash # 安装ARM兼容的点阵字体 sudo apt install fonts-noto-cjk-extra # 银河麒麟推荐字体 ``` #### 步骤3:配置终端字体 ```bash # 加载中文字体到终端 sudo setfont /usr/share/consolefonts/NotoSansCJK-Regular-16.psf # 永久生效(编辑固件配置) echo 'FONT="NotoSansCJK-Regular-16"' | sudo tee -a /etc/vconsole.conf ``` #### 替代方案:使用帧缓冲终端 ```bash sudo apt install fbterm # ARM兼容的UTF-8终端 fbterm -i /usr/share/fonts/noto/NotoSansCJK-Regular.ttf ``` > ️ **飞腾D2000注意事项**:部分笔记本固件需更新至SP1以上版本才能正确加载字体(引用[1])。 --- ### 根本原因总结 | 层级 | 图形界面(GUI) | 字符终端 | ARM架构影响 | |------------|--------------------|-------------------|-------------------| | **编码** | Qt强制启用UTF-8 | 依赖固件初始化 | 固件常未预设中文 | | **字体** | 动态加载矢量字体 | 需预置点阵字体 | 默认不包含中文字体 | | **渲染** | Freetype矢量渲染 | 内核位图渲染 | 无硬件加速支持 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值