问题描述
与this question相关。但是我担心的是,在过去的一年中,我大多数更有趣(或更常用)的应用程序都来自PPA,仅备份我的源代码列表将不会像add-apt-repository
那样添加关联的启动板键。
因此,我正在寻找一种列出所有PPA网址(例如ppa:chromium-daily/stable
)的方法,以便可以轻松编写一系列add-apt-repository命令的脚本,以将它们优雅地添加到新安装中。
当然没有放弃我的bash历史。哪个可行,取决于该文件返回的时间有多远?
最佳方法
好吧,因为我喜欢混用命令行脚本,所以编写了以下内容。它会生成一个PPA字符串列表,您可以将其备份,然后编写脚本到add-apt-repository
中:
grep -RoPish '(?<=ppa.launchpad.net/)[^/]+/[^/ ]+' /etc/apt | sort -u | sed 's/^/ppa:/'
那会生成类似:
ppa:ubuntu-wine/ppa
ppa:am-monkeyd/nautilus-elementary-ppa
ppa:nilarimogard/webupd8
ppa:ubuntu-x-swat/x-updates
ppa:tualatrix/ppa
ppa:banshee-team/banshee-unstable
ppa:chromium-daily/beta
ppa:libreoffice/ppa
ppa:banshee-team/ppa
如果您想使用blanket-restore,则可以将它们通过管道输送回系统(假设我们将PPA保存到~/ppa-backup.txt
:
<~/ppa-backup.txt xargs -I % sudo add-apt-repository %
我可能会建议您不要将它们全部还原。查看备份,并确保您知道每个PPA包含的内容。
次佳方法
我要做的是将整个/etc /apt目录复制到一个安全的地方。如果必须重新安装或克隆安装,只需复制回该目录即可。它将甚至保存gpg可信密钥。
第三种方法
如果要导入所有GPG密钥,则可以使用我的脚本(.deb中包含)一次导入所有丢失的GPG密钥。 Download
要使用,只需运行:
sudo launchpad-getkeys
如果需要,可以在.deb内部查看,该脚本非常小且易于理解(以防您不信任我的deb)。
然后,要备份所有PPA,您要做的就是将所有.list文件复制到新计算机/新安装的文件上,复制完之后,运行以上命令以导入所有密钥。