如何备份设置和已安装软件包的列表

如何备份设置和已安装软件包的列表

如果我想备份自全新安装 Ubuntu 以来所做的一切,有哪些可能的选择?我应该备份什么?我想获取我更改的所有设置、我安装的所有软件包等。

答案1

程式

备份程序列表的快速方法是运行以下命令:

dpkg --get-selections > ~/Package.list
sudo cp -R /etc/apt/sources.list* ~/
sudo apt-key exportall > ~/Repo.keys

它将以 dpkg 重新安装后可以读取的格式备份它们,如下所示:

sudo apt-key add ~/Repo.keys
sudo cp -R ~/sources.list* /etc/apt/
sudo apt-get update
sudo apt-get install dselect
sudo dselect update
sudo dpkg --set-selections < ~/Package.list
sudo apt-get dselect-upgrade -y

*您可能需要更新 dpkg 的可用软件包列表,否则它将忽略您的选择(请参阅这个 Debian 错误了解更多信息)。您应该在 之前执行此操作sudo dpkg --set-selections < ~/Package.list,如下所示:

apt-cache dumpavail > ~/temp_avail
sudo dpkg --merge-avail ~/temp_avail
rm ~/temp_avail

设置和个人数据

在重新安装之前,您可能应该备份某些程序的设置,这可以通过从 /etc 中获取文件夹以及来自用户目录的所有内容(而不仅仅是您在 nautilus 中看到的内容!)轻松完成:

rsync --progress /home/`whoami` /path/to/user/profile/backup/here

重新安装后,您可以使用以下方式恢复它:

rsync --progress /path/to/user/profile/backup/here /home/`whoami`

因此所有内容都作为伪 bash 脚本。

这假设机器上只有一个用户(/'whoami'否则删除)并且您在两个安装中使用了相同的用户名(否则修改 rsync 的目标)。

dpkg --get-selections > ~/Package.list
sudo cp -R /etc/apt/sources.list* ~/
sudo apt-key exportall > ~/Repo.keys
rsync --progress /home/`whoami` /path/to/user/profile/backup/here

##  Reinstall now

rsync --progress /path/to/user/profile/backup/here /home/`whoami`
sudo apt-key add ~/Repo.keys
sudo cp -R ~/sources.list* /etc/apt/
sudo apt-get update
sudo apt-get install dselect
sudo dpkg --set-selections < ~/Package.list
sudo dselect

答案2

适用对象:正常使用计算机的用户,在主文件夹之外只进行过极少的配置或没有进行过任何配置,没有弄乱启动脚本和服务。用户希望将软件恢复到安装时的状态,所有自定义设置都已完成并保存在主文件夹中。

不适合人群:服务器极客、使用源安装软件的高级用户(恢复软件包列表可能会破坏您的系统)、已更改某些应用程序的启动脚本以更好地满足其需求的用户。注意:任何外部修改都很有可能被覆盖。

备份当前的软件包和用户设置


一旦您准备好系统并对安装的软件感到满意,您可以使用命令获取已安装软件包的列表dpkg --get-selections,并将输出保存到日志文件中。

backup在你的家中创建一个文件夹

sudo mkdir ~/backup

保存当前安装的软件包列表

dpkg --get-selections > ~/backup/installed_packages.log

备份你的 apt 源文件

sudo cp /etc/apt/sources.list ~/backup/sources.bak

以及你的 apt 可信密钥列表的副本

sudo apt-key exportall > ~/backup/repositories.keys

使用 Ubuntu 中集成的备份工具 Deja-dup 备份您的主文件夹。

  • 设置备份文件夹

在此处输入图片描述

  • 确认它是否会备份你的主文件夹并添加你可能不想要的任何文件夹,例如文件Trash

在此处输入图片描述

  • 在概览选项卡上按立即备份备份你的主文件夹

在此处输入图片描述

  • 备份工具会询问您是否要为备份添加密码,您可以选择。按继续

在此处输入图片描述

完成后,您将获得与您的用户相关的软件包和配置文件的备份。如有必要,您将能够从~/backup文件夹中恢复文件。

恢复备份


首先从备份中恢复源文件

sudo cp ~/backup/sources.bak /etc/apt/sources.list

备份密钥

sudo apt-key add ~/backup/repositories.keys

更新您的来源列表

sudo apt-get update

从已保存的installed_packages.log

sudo dpkg --clear-selections
sudo dpkg --set-selections < ~/backup/installed_packages.log && sudo apt-get dselect-upgrade

sudo dpkg --clear-selections将标记所有当前安装的软件包以供删除,这样,当您恢复已保存的软件包列表时,不在列表中的软件包将从系统中删除。

从您的主目录中删除当前配置,并创建当前状态下的文件夹备份(毕竟,如果还有其他文件会影响配置,那么恢复新文件有什么用呢?)

mkdir ~/.old-gnome-config/ && mv ~/.gnome* ~/.old-gnome-config/ && mv ~/.gconf* ~/.old-gnome-config/ && mv ~/.metacity ~/.old-gnome-config/ && mv ~/.cache ~/.old-gnome-config/ && mv ~/.dbus ~/.old-gnome-config/ && mv ~/.dmrc ~/.old-gnome-config/ && mv ~/.mission-control ~/.old-gnome-config/ && mv ~/.thumbnails ~/.old-gnome-config/   && ~/.config/dconf/* ~/.old-gnome-config/

完成后,恢复使用 Deja-dup 创建的备份。

  • 打开备份工具,在概览选项卡上按“恢复”

在此处输入图片描述

  • 按照提示将文件恢复到原来的位置

在此处输入图片描述

完成后,您的软件包将恢复为保存的选择,我们的配置将恢复,并且希望有一个可以工作的桌面,所有这一切都无需安装任何额外的应用程序和使用 Ubuntu 默认工具。

剩下唯一要做的事情就是进行一些清理并检查一切是否正常。

出了点问题,我的桌面不见了


Ask Ubuntu 中有几篇帖子可以指导您,以防出现问题并需要硬重置桌面。如果出现问题并且您发现自己需要这样做,请查看这些帖子:

答案3

使用以下方式选择已安装的软件包apt-clone

APT克隆。此软件包可用于在基于 apt 的系统上克隆/恢复软件包。它将保存/恢复软件包、sources.list、密钥环和自动安装状态。它还可以使用 dpkg-repack 保存/恢复不再可下载的软件包。

(Ubuntu 安装程序)使用 APT-Cloneubiquity进行升级过程。

  1. 安装

    sudo apt-get install apt-clone
    
  2. 进行备份

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. 恢复备份

    sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    恢复到较新的版本:

    sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

参考: man apt-clone


主页数据,配置/etc,..使用duplicity

表里不一通过生成加密的 tar 格式卷并将其上传到远程或本地文件服务器来备份目录。由于 duplicity 使用 librsync,因此增量存档节省空间,并且仅记录自上次备份以来发生变化的文件部分。由于 duplicity 使用 GnuPG 来加密和/或签署这些存档,因此它们不会被服务器监视和/或修改。

  1. 安装

    sudo apt-get install duplicity
    
  2. 备份

    duplicity full path-to/source_folder/ file:///path_to/duplicity_backups/
    

    或增量备份(它将仅备份与上次备份的差异):

    duplicity incremental path-to/source_folder/ file:///path_to/duplicity_backups/
    
  3. 恢复

    duplicity restore file:///path_to/duplicity_backups/ path-to/target_folder/
    

参考: man duplicity

答案4

虽然这个问题已经回答了一段时间,但我注意到没有人提到etckeeper。运行apt-get install etckeeper,在/etc/etckeeper/etckeeper.conf,从此你将更好地控制你的 /etc 目录。这可以用于恢复 /etc 目录中的配置。

例如,(假设您将 git 配置为 VCS)备份您的/etc/.git目录。任何时候您需要将配置恢复到新的 /etc,您都可以将备份的 /etc/.git 目录复制到新的 /etc 目录中。现在,您有许多选项可以管理恢复:

  • 查看差异
    • git diff
  • 将所有差异保存在 git 分支的“新鲜”目录中
    • git checkout -b new; git add -A; git commit -m 'new etc'
  • 无条件恢复到您的备份
    • git clean -f

相关内容