Ubuntu离线备份已安装软件包并跨系统无网络恢复安装
Ubuntu 离线备份与恢复已安装软件包完全方案
一、源系统(联网状态)备份操作
- 导出已安装软件包列表:
执行命令dpkg --get-selections | grep -v deinstall > installed_packages.txt,将所有已安装(未标记卸载)的软件包名导出到文本文件。 - 下载所有软件包及依赖:
- 先安装依赖分析工具:
sudo apt install apt-rdepends - 生成需下载的完整包列表:
apt-rdepends -f Depends,PreDepends -p $(dpkg --get-selections | grep -v deinstall | cut -f1) | grep -v "^/" | sort -u > packages_to_download.txt - 批量下载到指定目录(示例为
~/offline_packages):sudo apt-get download -o dir::cache::archives=~/offline_packages $(cat packages_to_download.txt)
注:若部分包下载失败,需手动排查并单独下载,确保所有依赖包齐全。
- 先安装依赖分析工具:
二、目标系统(离线状态)恢复操作
- 传输备份文件:将源系统的
installed_packages.txt和offline_packages目录复制到目标服务器。 - 批量安装本地deb包:
进入包目录:cd ~/offline_packages
执行安装命令:sudo dpkg -i *.deb
此步骤可能出现依赖顺序报错,无需担心,后续步骤可修复。 - 修复依赖并完成配置:
- 导入软件包选择状态:
sudo dpkg --set-selections < installed_packages.txt - 离线修复依赖并完成安装:
sudo apt-get dselect-upgrade --no-download
该命令会自动处理本地包的依赖关系,完成所有软件的配置。
- 导入软件包选择状态:
三、关键注意事项
- 源系统与目标系统的Ubuntu版本必须完全一致(如均为22.04 LTS),否则会出现依赖不兼容问题。
- 确保源系统与目标系统硬件架构相同(如均为amd64),避免下载的包架构不匹配。
- 若包含第三方PPA的软件包,需在源系统备份PPA的源配置文件,同时将PPA对应的包一并下载,在目标系统手动复制源配置后再执行恢复操作。
内容的提问来源于stack exchange,提问作者manashree docketrun
相关产品推荐
相关产品推荐

