温馨提示×

Debian怎样导出软件列表

小樊
32
2026-07-23 15:51:40
栏目: 智能运维

在 Debian(以及基于 Debian 的系统,如 Ubuntu)中,导出已安装软件列表有多种方式,取决于你是想导出所有软件仅用户手动安装的软件,还是用于迁移/重装系统。下面按常见场景说明。


一、导出所有已安装软件(最常用)

1️⃣ 使用 dpkg(最基础、最通用)

dpkg --get-selections > installed_packages.txt

恢复(在另一台机器或重装后):

sudo dpkg --set-selections < installed_packages.txt
sudo apt-get dselect-upgrade

✅ 适合:完整系统迁移
❌ 包含大量依赖包,不够精简


2️⃣ 使用 apt 导出(推荐)

apt list --installed > installed_packages.txt

或只导出包名:

apt list --installed | cut -d/ -f1 > installed_packages.txt

二、仅导出“手动安装”的软件(最实用 ✅)

很多情况下你只关心你自己安装的软件,而不是系统依赖。

方法 1:apt-mark

apt-mark showmanual > manual_packages.txt

✅ 非常适合系统重装
✅ 不包含依赖包

恢复安装:

sudo apt install $(cat manual_packages.txt)

方法 2:aptitude(更精确)

如果没有安装:

sudo apt install aptitude

导出:

aptitude search '~i !~M' -F '%p' > manual_packages.txt

说明:

  • ~i:已安装
  • !~M:非自动安装

三、导出软件版本信息(用于环境复制)

dpkg -l > installed_packages_with_version.txt

内容包含:

  • 包名
  • 版本
  • 架构
  • 描述

四、导出可迁移的“安装脚本”

生成一个可直接执行的安装脚本:

apt-mark showmanual | tr '\n' ' ' > install.sh

然后编辑 install.sh

#!/bin/bash
sudo apt update
sudo apt install -y <包列表>

五、不同场景推荐方案

场景 推荐命令
系统完整迁移 dpkg --get-selections
重装系统 apt-mark showmanual
查看当前装了什么 apt list --installed
精确控制依赖 aptitude
生成安装脚本 apt-mark showmanual

六、注意事项

  • 导出的列表不包含 PPA / 第三方源
  • 如果有 snapflatpak,需要单独导出:
    snap list
    flatpak list
    
  • 建议在新系统安装完成后、再恢复软件

如果你愿意,可以告诉我:

  • Debian 11 / 12
  • 服务器还是桌面
  • 本机重装 还是 换一台机器

我可以帮你给出最合适的导出与恢复方案

0