必须提取准确可复用的软件清单:一、dpkg导出原始包列表;二、apt-mark分离手动/自动安装包;三、aptitude生成依赖树快照;四、snap/flatpak补全非apt应用;五、kylin-software-center导出用户行为数据。

如果您需要在银河麒麟操作系统中完整记录当前已安装的所有软件包,以便在系统迁移、重装或跨设备部署时快速还原相同环境,则必须提取一份准确、可复用的软件清单。以下是多种兼容Kylin内核与APT包管理机制的软件列表备份方法:
一、使用dpkg命令导出已安装软件包列表
该方法直接调用Debian系底层包管理工具dpkg,可生成不含依赖解析的原始安装包名称列表,适用于离线环境比对与批量重装,输出格式简洁、无冗余信息。
1、打开终端,执行命令:dpkg --get-selections | grep -v deinstall > ~/software-list-dpkg.txt
2、确认文件生成位置:执行ls -l ~/software-list-dpkg.txt查看文件大小与时间戳
3、如需包含版本号信息,改用命令:dpkg -l | awk '$1 ~ /^ii$/ {print $2"="$3}' > ~/software-list-versioned.txt
二、使用apt-mark命令分离手动安装与自动安装包
该方法可区分用户显式安装的软件(manual)与因依赖关系自动安装的软件(auto),便于迁移时仅还原核心应用,避免冗余包堆积,提升目标系统纯净度。
1、导出所有手动安装的软件包:apt-mark showmanual > ~/software-manual-only.txt
2、导出所有被标记为自动安装的软件包:apt-mark showauto > ~/software-auto-installed.txt
3、验证手动列表完整性:执行wc -l ~/software-manual-only.txt确认行数是否符合预期
三、使用aptitude生成含依赖树结构的软件快照
该方法借助aptitude的高级查询能力,生成带层级关系的软件依赖快照,适用于复杂开发环境迁移,可识别关键元包(如build-essential、kylin-desktop)及其子组件。
1、安装aptitude(若未预装):sudo apt install aptitude
2、生成依赖感知型软件列表:aptitude search '~i!~M' -F '%p %v' | sort > ~/software-with-deps.txt
3、筛选出桌面环境核心组件:aptitude search '~i ~nkylin|ukui|desktop' -F '%p %v' > ~/desktop-core-packages.txt
四、使用snap list与flatpak list分别捕获非APT软件
该方法用于补全通过Snap或Flatpak安装的第三方应用,这些应用不被dpkg或apt-mark识别,但常用于替代Wine运行的Windows软件或新兴开源工具,是完整迁移不可或缺的部分。
1、导出所有已安装Snap包:snap list --all | awk 'NR>1 {print $1"_"$2}' > ~/snap-packages.txt
2、导出所有已安装Flatpak应用:flatpak list --app --columns=application,version > ~/flatpak-apps.txt
3、检查是否存在非标准源安装的程序:which wine && echo "Wine detected" >> ~/runtime-check.txt
五、结合kylin-software-center导出用户级应用行为数据
该方法提取麒麟软件中心的用户操作日志与收藏记录,虽不直接对应已安装包,但能还原用户高频使用软件偏好、分类标签及安装时间线索,辅助人工校验与界面一致性恢复。
1、定位软件中心日志路径:ls ~/.local/share/kylin-software-center/
2、提取最近7天安装记录:grep -a "install" ~/.local/share/kylin-software-center/history.log 2>/dev/null | tail -20 > ~/sc-install-history.txt
3、导出收藏夹应用列表:cat ~/.config/kylin-software-center/favorite.list 2>/dev/null > ~/sc-favorites.txt











