![结论](https://linux22.com/image/1003438/%E7%BB%93%E8%AE%BA.png)
从如何列出所有已安装的软件包我们学习如何备份已安装软件包的列表。
从如何查看存储库列表?我们学习如何备份已安装的存储库列表。
但是,在运行脚本从我们正在克隆的机器上安装所有已安装的包之前,我们如何自动添加所有存储库?
那么我们如何获取所有已安装包的列表并解析它以安装它们?
在此之前我们如何知道我们需要获取什么钥匙?
另外,我们如何生成要备份的软件包列表,然后重新应用到克隆的机器?
我听说过apt-clone
但不确定它是否能实现上述所有功能。
我的存储库列表如下:
$ cd /etc/apt/sources.list.d/ && cat *.list
# deb http://ppa.launchpad.net/colingille/freshlight/ubuntu xenial main # disabled on upgrade to xenial
# deb-src http://ppa.launchpad.net/colingille/freshlight/ubuntu trusty main
deb http://ppa.launchpad.net/fossfreedom/indicator-sysmonitor/ubuntu xenial main
# deb-src http://ppa.launchpad.net/fossfreedom/indicator-sysmonitor/ubuntu xenial main
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/earth/deb/ stable main
deb http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu xenial main
deb https://download.01.org/gfx/ubuntu/16.04/main xenial main #Intel Graphics drivers
deb http://ppa.launchpad.net/mkusb/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/mkusb/ppa/ubuntu xenial main
deb http://ppa.launchpad.net/peek-developers/stable/ubuntu xenial main
# deb-src http://ppa.launchpad.net/peek-developers/stable/ubuntu xenial main
deb http://ppa.launchpad.net/peterlevi/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/peterlevi/ppa/ubuntu xenial main
deb http://ppa.launchpad.net/sethj/silentcast/ubuntu xenial main
# deb-src http://ppa.launchpad.net/sethj/silentcast/ubuntu xenial main
我的软件包列表有 100k 个,无法在此消息中全部容纳,但是这里有一个子集:
$ cat ~/.packages
a11y-profile-manager-indicator install
account-plugin-aim install
account-plugin-facebook install
account-plugin-flickr install
account-plugin-google install
account-plugin-jabber install
account-plugin-salut install
account-plugin-twitter install
account-plugin-windows-live deinstall
account-plugin-yahoo install
accountsservice install
acl install
acpid install
adduser install
adium-theme-ubuntu install
adobe-flash-properties-gtk install
adobe-flashplugin install
adwaita-icon-theme install
大约 5% 的列表已被删除,并deisntall
显示install
。
编辑1根据评论说明,这些是包含在我每日备份中的密钥/etc/apt/trusted.gpg
,并且/etc/apt/trusted.gpg.d
已添加到我的每日备份中:
$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key <[email protected]>
sub 2048g/79164387 2004-09-12
pub 1024D/FBB75451 2004-12-30
uid Ubuntu CD Image Automatic Signing Key <[email protected]>
pub 4096R/C0B21F32 2012-05-11
uid Ubuntu Archive Automatic Signing Key (2012) <[email protected]>
pub 4096R/EFE21092 2012-05-11
uid Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>
pub 1024D/7FAC5991 2007-03-08
uid Google, Inc. Linux Package Signing Key <[email protected]>
sub 2048g/C07CB649 2007-03-08
pub 4096R/D38B4796 2016-04-12
uid Google Inc. (Linux Packages Signing Authority) <[email protected]>
sub 4096R/640DB551 2016-04-12 [expires: 2019-04-12]
sub 4096R/997C215E 2017-01-24 [expires: 2020-01-24]
pub 2048R/63961D39 2016-01-25
uid Elio Martinez (Installer compilation) <[email protected]>
sub 2048R/98E81FA7 2016-01-25
/etc/apt/trusted.gpg.d/colingille-freshlight.gpg
------------------------------------------------
pub 1024R/CB7F5C71 2010-12-30
uid Launchpad PPA for Congelli501
/etc/apt/trusted.gpg.d/fossfreedom_ubuntu_indicator-sysmonitor.gpg
------------------------------------------------------------------
pub 1024R/F4FE239D 2012-01-05
uid Launchpad PPA for fossfreedom
/etc/apt/trusted.gpg.d/graphics-drivers_ubuntu_ppa.gpg
------------------------------------------------------
pub 4096R/1118213C 2015-08-12
uid Launchpad PPA for Graphics Drivers Team
/etc/apt/trusted.gpg.d/mkusb_ubuntu_ppa.gpg
-------------------------------------------
pub 4096R/54B8C8AC 2014-08-14
uid Launchpad PPA for MKUSB
/etc/apt/trusted.gpg.d/peek-developers_ubuntu_stable.gpg
--------------------------------------------------------
pub 4096R/76BAFBC6 2017-02-14
uid Launchpad PPA for Peek Developers
/etc/apt/trusted.gpg.d/peterlevi_ubuntu_ppa.gpg
-----------------------------------------------
pub 1024R/A546BE4F 2012-06-28
uid Launchpad PPA for Peter Levi
/etc/apt/trusted.gpg.d/sethj_ubuntu_silentcast.gpg
--------------------------------------------------
pub 4096R/A1A7B3E6 2014-10-03
uid Launchpad PPA for Seth Johnson
编辑2
根据我给出的评论aptitude-build-state-bundle和aptitude-运行状态包安装程序后尝试使用:
sudo apt install aptitude-common
运行构建程序导致一个大小高达 334 MB 的文件被压缩为 92 MB。
将压缩文件传输到目标笔记本电脑并运行后,aptitude-run-state-bundle
会出现这个彩色屏幕(其中有很多):
我们可以看到它正在跟踪保留的软件包!旧笔记本电脑运行的是内核 4.4,而新笔记本电脑默认运行的是 4.10。我偏离了复制和粘贴文本屏幕的不成文规则,而是使用了彩色快照,因为它更容易理解。
aptitude-run-state-bundle
这就是我所能得到的,因为尚未找到在线教程。
我确实发现我的每日备份不包括权限,必须分两次恢复,一次使用 sudo,一次不使用。我发现我没有备份自定义 Grub 字体和 Plymouth 启动画面。我发现我也没有备份 Nautilus 自定义脚本。
A完整系统备份和恢复很诱人。它将避免所有这些零碎的步骤。然而,在旧笔记本电脑上,grub 使用 gparted 和 CSM 设置,而在新笔记本电脑上,grub 使用 GPT 和 UEFI。我不确定这会带来什么麻烦。
一定/etc/fstab
不是恢复。除了不同的 UUID 之外,源还具有常规 SSD(/dev/sdc3)并且目标具有 NVMe SSD(/dev/nmve0p5)。
编辑 2 2017 年 11 月 1 日
从源机器上选择软件包并将它们安装在目标机器上并没有带回 conky,而是保留为 1.9 版本。其他软件unity-tweak-tool
也没有重新安装。
Conky 脚本需要大量修改才能实现温度。Intel i7 6700HQ 的温度热区与 i7 3630QM 不同。vnStat 有所不同,因为eth0
新笔记本电脑的适配器名称不同,因此不再使用。
旧笔记本电脑有 Super VGA、HDMI 和内置 LVDS,可由 iGPU (HD4000) 或独立显卡 (nVidia GE Force GT650M) 控制。令人震惊的是,新笔记本电脑上的 HDMI 硬连线到 nVidia GTX 970M,而 iGPU (HD530) 只能控制 LVDS 和 ThunderBolt3 到 DisplayPort 到 HDMI 适配器。
更复杂的是,WSL(适用于 Linux 的 Windows 子系统)无法写入 Linux 分区,而 Linux 只能写入 Windows NTFS 分区,但不支持 WSL 混合目录。Windows 应用程序也无法写入 WSL 混合目录。WinBTRFS 尚未发布,Ext2FSD 版本 .69 使 Windows 64 位驱动器失效。WSL 仅适用于 Windows 64 位。
简单的保存和恢复已不复存在。
结论
2017 年 12 月 10 日
- 最终,所有应用程序都是手动安装的。
- HDMI 没有音频,因此
setpci
必须在 systemd 启动期间使用。 - 由于 NVMe SSD,笔记本电脑无法暂停,因此必须禁用 ACPI 热插拔。
- 使用 NVIDIA X 服务器设置组合管道解决了 nVidia 屏幕撕裂问题。
- SSD WSL 和 Ubuntu 16.04 上的新挂载(/mnt/e)。