保姆级教程:在Ubuntu 20.04上搞定Percona源并安装qpress(附公钥错误解决方案)
Ubuntu 20.04系统下Percona源配置与qpress安装全指南
每次在Ubuntu上配置第三方软件源时,总会遇到各种"拦路虎"——公钥错误、依赖缺失、版本冲突。作为数据库管理员,我深知Percona工具链的重要性,而qpress作为XtraBackup的压缩组件更是不可或缺。本文将带你从零开始,彻底解决Percona源配置和qpress安装过程中的所有疑难杂症。
1. 环境准备与问题诊断
在开始之前,我们需要确认系统环境并理解问题的根源。很多新手会直接跳转到安装步骤,却忽略了前期诊断的重要性,这往往导致后续操作事倍功半。
首先检查系统版本信息:
lsb_release -a典型输出应显示:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal尝试直接安装qpress时,系统通常会报错:
apt install qpress错误信息:
E: Unable to locate package qpress这个错误表明:
- 默认Ubuntu官方源不包含qpress软件包
- 需要添加包含qpress的第三方源(这里是Percona源)
- 源配置可能涉及GPG密钥验证问题
提示:Ubuntu的软件源管理采用严格的加密验证机制,任何未经认证的源都会被拒绝,这是系统安全的重要保障。
2. Percona源配置详解
Percona官方提供了两种主要的软件源配置方式,适用于不同场景:
| 源类型 | 适用场景 | 包含内容 | 稳定性 |
|---|---|---|---|
| original-release | 生产环境 | 经过充分测试的稳定版 | 高 |
| prel-release | 测试环境 | 预览版和实验性功能 | 中 |
2.1 添加Percona官方源
创建源配置文件:
sudo vim /etc/apt/sources.list.d/percona-original-release.list添加以下内容:
deb http://repo.percona.com/percona/apt focal main deb-src http://repo.percona.com/percona/apt focal main对于需要尝鲜新功能的用户,可以同时添加prel源:
sudo vim /etc/apt/sources.list.d/percona-prel-release.list内容为:
deb http://repo.percona.com/prel/apt focal main deb-src http://repo.percona.com/prel/apt focal main2.2 解决GPG公钥错误
更新软件包列表时,很可能会遇到公钥验证错误:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9334A25F8507EFA5解决方法分三步:
- 从Ubuntu密钥服务器导入公钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9334A25F8507EFA5- 验证密钥指纹(安全最佳实践):
gpg --fingerprint 9334A25F8507EFA5应显示:
pub rsa4096 2020-03-19 [SC] [expires: 2025-03-18] Key fingerprint = 9334 A25F 8507 EFA5 uid [ unknown] Percona Development Team (Packaging key) <info@percona.com>- 将密钥添加到可信密钥环:
sudo gpg --export --armor 9334A25F8507EFA5 | sudo apt-key add -3. qpress安装与验证
完成源配置后,安装过程就变得简单了:
- 更新软件包列表:
sudo apt update- 安装qpress:
sudo apt install qpress- 验证安装:
qpress -v应输出类似:
qpress 1.13.1 qpress在Percona工具链中的作用
qpress不是孤立的工具,它在Percona备份方案中扮演关键角色:
- 压缩效率:相比gzip,qpress提供更快的压缩/解压速度
- 流式处理:支持管道操作,适合与XtraBackup配合使用
- 块级压缩:允许随机访问压缩文件中的特定部分
典型备份命令示例:
xtrabackup --backup --compress --compress-threads=4 --stream=xbstream | qpress -i -o /backup/compressed.xb.qp4. 常见问题排查手册
即使按照步骤操作,仍可能遇到各种意外情况。以下是五年运维经验总结的排错指南:
4.1 软件源更新失败
症状:
Failed to fetch http://repo.percona.com/... Connection timed out解决方案:
- 检查网络连接:
ping repo.percona.com- 尝试更换镜像源(如使用国内镜像):
sudo sed -i 's/repo.percona.com/mirrors.percona.com/g' /etc/apt/sources.list.d/percona-*.list- 清除apt缓存:
sudo apt clean sudo rm -rf /var/lib/apt/lists/*4.2 软件包依赖冲突
症状:
The following packages have unmet dependencies...解决方案:
- 尝试修复依赖:
sudo apt --fix-broken install- 明确指定版本安装:
sudo apt install qpress=11-3.focal- 查看可用版本:
apt-cache policy qpress4.3 密钥服务器不可用
症状:
gpg: keyserver receive failed: No route to host替代方案:
- 使用备用密钥服务器:
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 9334A25F8507EFA5- 直接下载密钥文件:
wget -O - https://repo.percona.com/percona/apt/PERCONA-PACKAGING-KEY | sudo apt-key add -5. 进阶配置与优化
对于生产环境,还需要考虑以下优化措施:
5.1 源优先级管理
创建优先级配置文件:
sudo vim /etc/apt/preferences.d/percona.pref内容示例:
Package: * Pin: origin repo.percona.com Pin-Priority: 6005.2 自动化安装脚本
对于需要批量部署的场景,可以使用以下脚本:
#!/bin/bash # 自动安装qpress set -e echo "添加Percona源..." sudo sh -c 'echo "deb http://repo.percona.com/percona/apt $(lsb_release -sc) main" > /etc/apt/sources.list.d/percona.list' echo "导入GPG密钥..." wget -O - https://repo.percona.com/percona/apt/PERCONA-PACKAGING-KEY | sudo apt-key add - echo "更新并安装qpress..." sudo apt update sudo apt install -y qpress echo "验证安装:" qpress -v5.3 性能调优建议
根据服务器配置调整压缩参数:
| 参数 | 建议值 | 适用场景 |
|---|---|---|
| -T | CPU核心数 | 多核服务器 |
| -b | 64k | SSD存储 |
| -s | 1M | 高带宽网络传输 |
示例优化命令:
qpress -T4 -b64k -s1M -i input.xb -o output.qp