银河麒麟桌面版包管理器(三)
以下内容摘自《银河麒麟操作系统进阶应用》一书
麒麟系统软件源配置
使用官方内置源时,无须任何操作。仅在使用其他镜像源(Mirror)时,需要修改/etc/apt/sources.list文件,根据不同版本,将原始sources.list中的网址替换为镜像源的网址即可。也可以使用后面介绍的通用换源工具chsrc、X-CMD的mirror模块,进行操作系统软件源的切换。
在使用软件镜像源时,存在一个问题需要解决。正如下面的/etc/apt/sources.list文件第一行所提示的,银河麒麟会不定期地检测sources.list内容,若发现其被修改了,则会将其还原为官方源。
# 本文件由源管理器管理,会定期检测与修复,请勿修改本文件
deb http://archive.***.cn/kylin/KYLIN-ALL 10.1-2303-updates main universe multiverse restricted
deb http://archive.***.cn/kylin/KYLIN-ALL 10.1 main restricted universe multiverse
deb http://archive2.***.cn/deb/kylin/production/PART-V10-SP1/custom/partner/V10-SP1 default all
此外,在系统启动时、手动检查系统更新时(如图313所示),银河麒麟桌面版都会检测sources.list是否被修改过,若被修改过则会进行还原。
图313 手动检查系统更新
为了防止自定义的软件源被还原,一个简单的方法就是在添加完镜像源后,将文件/etc/apt/sources.list设置为不可更改,使用chattr +i命令就可以实现该功能:
sudo chattr +i /etc/apt/sources.list
需要修改该文件时,使用下面的命令取消修改保护:
sudo chattr -i /etc/apt/sources.list
APT故障处置
APT故障可以分为多种类型,以下是一些常见的故障类型及其表现形式。
- 软件包无法下载或安装:系统提示无法连接到软件源,或下载过程中出现错误。
- 存在损坏的软件包:系统提示有损坏的软件包,无法进行安装或升级操作。
- 软件包依赖冲突:安装或升级软件包时出现依赖冲突错误,无法完成操作。
- 锁文件问题:APT被其他进程占用,提示锁文件存在,无法进行操作。
APT故障的排查和解决需要系统化的方法,以确保问题能够迅速定位和解决。
(1)APT故障排查步骤。
在处理APT故障时,可以按照以下步骤进行排查:
a)检查网络连接。
b)更新软件源列表:使用sudo apt-get update命令更新软件源列表,确保获取最新的软件包索引信息。
c)清理缓存和锁文件:使用sudo apt-get clean命令清理APT缓存。
d)删除锁文件:sudo rm /var/lib/apt/lists/lock和sudo rm /var/cache/apt/archives/lock。
e)检查系统日志。使用命令dmesg、journalctl查看系统日志。
f)查看APT日志。APT日志文件为/var/log/apt/term.log和/var/log/apt/history.log。
(2)典型故障处置。
- 存在损坏的软件包:
sudo dpkg --remove --force-remove-reinstreq <package_name> # 手动删除损坏的软件包
sudo apt-get install -f # -f是--fix-broken的缩写
- 软件包依赖冲突。
使用apt-cache policy检查依赖:
apt-cache policy <package_name>
手动解决依赖冲突:
sudo apt-get install <conflicting_package>
sudo apt-get install <desired_package>
使用X-CMD强化APT
X-CMD的APT模块增强了APT命令行的使用体验(如图314所示),它对APT的增强主要体现在以下几点。
- 提供交互式UI,以便用户更好地搜索和安装软件。
- 提供mirror命令用于管理镜像源,以便用户可以根据情况快捷地更换合适的APT镜像源(暂不支持Kylin系统)。
- 提供proxy命令,以便用户能够更灵活地管理APT的代理。
- 对于必须要sudo权限才能执行的命令,X-CMD对其进行了包装,保证所有命令的格式统一为x apt <subcmd>。