如何备份我的PPA?


27

这个问题有关。但是我担心的是,在过去的一年中,我大多数更有趣(或更常用)的应用程序都来自PPA,仅备份我的源代码列表将不会以这种方式添加关联的启动板键add-apt-repository

因此,我正在寻找一种列出所有PPA网址(例如ppa:chromium-daily/stable)的方法,以便可以轻松编写一系列add-apt-repository命令的脚本,以将它们优雅地添加到新安装中。

当然没有放弃我的bash历史。哪个可行,取决于该文件返回的时间有多远?

Answers:


42

好吧,因为我喜欢混用命令行脚本,所以编写了以下内容。它会生成一个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包含的内容。


谢谢奥莉。我今晚将对此进行测试,并接受一次测试!
Scaine'3

1
天哪,我的系统上有很多PPA。这很完美,Oli。谢谢你的努力!
Scaine'3

不能按书面规定工作。
user447607 '16

6

我要做的是将整个/ etc / apt目录复制到一个安全的地方。如果必须重新安装或克隆安装,只需复制回该目录即可。它将甚至保存gpg可信密钥。


5

如果要导入所有GPG密钥,则可以使用我的脚本(.deb中包含)一次导入所有丢失的GPG密钥。下载

要使用,只需运行:

sudo launchpad-getkeys

如果需要,可以在.deb内部查看,该脚本非常小且易于理解(以防您不信任我的deb)。

然后,要备份所有PPA,您要做的就是将所有.list文件复制到新计算机/新安装的文件上,一旦复制完成,请运行上述命令以导入所有密钥。


0

我的回答我怎样才能在命令行中的所有存储库和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

请参阅我对其他问题的回答,以获取具有一些可以保存和使用的其他功能的完整脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.