Answers:
好吧,因为我喜欢混用命令行脚本,所以编写了以下内容。它会生成一个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
如果您想全面还原这些文件,则可以将它们通过管道输送回系统中(假设我们将PPA保存到~/ppa-backup.txt
:
<~/ppa-backup.txt xargs -I % sudo add-apt-repository %
我可能会建议您不要将它们全部还原。查看备份,并确保您知道每个PPA包含的内容。
如果要导入所有GPG密钥,则可以使用我的脚本(.deb中包含)一次导入所有丢失的GPG密钥。下载
要使用,只需运行:
sudo launchpad-getkeys
如果需要,可以在.deb内部查看,该脚本非常小且易于理解(以防您不信任我的deb)。
然后,要备份所有PPA,您要做的就是将所有.list文件复制到新计算机/新安装的文件上,一旦复制完成,请运行上述命令以导入所有密钥。
从我的回答对我怎样才能在命令行中的所有存储库和PPA的列表到安装脚本?
列出PPA的ppa:USER/REPO
格式:
list_ppas () {
grep -E '^deb\s' /etc/apt/sources.list /etc/apt/sources.list.d/*.list |\
cut -f2- -d: |\
cut -f2 -d' ' |\
sed -re 's#http://ppa\.launchpad\.net/([^/]+)/([^/]+)(.*?)$#ppa:\1/\2#g' |\
grep '^ppa:'
}
生成安装脚本:
list_ppas | xargs printf 'add-apt-repository -y %s\n' > install_ppas.sh
(-y
如果不想进行非交互式安装,请取出)
运行脚本:
sudo sh install_ppas.sh
请参阅我对其他问题的回答,以获取具有一些可以保存和使用的其他功能的完整脚本。