Scaine Asked: 2011-03-02 14:30:25 +0800 CST2011-03-02 14:30:25 +0800 CST 2011-03-02 14:30:25 +0800 CST 如何备份我的 PPA? 772 与这个问题有关。但我担心的是,在过去的一年里,我的大部分更有趣(或使用过的)应用程序都来自 PPA,并且仅备份我的源列表不会像那样添加相关的启动板键add-apt-repository。 因此,我正在寻找一种列出所有 PPA url(如ppa:chromium-daily/stable)的方法,以便我可以轻松编写一系列 add-apt-repository 命令的脚本,以便将它们优雅地添加到新安装中。 当然,没有抛弃我的 bash 历史。这可能是可行的,具体取决于该文件可以追溯到多远? ppa 5 个回答 Voted Best Answer Oli 2011-03-02T15:37:09+08:002011-03-02T15:37:09+08:00 好吧,因为我喜欢玩命令行脚本,所以我写了以下内容。它会生成一个 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 包含的内容。 nejode 2011-03-02T14:41:39+08:002011-03-02T14:41:39+08:00 我所做的是将整个 /etc/apt 目录复制到一个安全的地方。如果您必须重新安装或克隆您的安装,只需复制回该目录即可。它甚至可以保存 gpg 受信任的密钥。 Alin Andrei 2011-03-02T15:02:45+08:002011-03-02T15:02:45+08:00 如果您要导入所有 GPG 密钥,您可以使用我的脚本(包含在 .deb 中)一次导入所有缺少的 GPG 密钥。下载 要使用,只需运行: sudo launchpad-getkeys 如果需要,您可以查看 .deb 内部,该脚本非常小且易于理解(以防您不信任我的 deb)。 然后要备份所有 PPA,您所要做的就是复制新计算机/新安装上的所有 .list 文件,复制它们后,运行上述命令以导入所有密钥。 N0rbert 2022-03-10T23:22:41+08:002022-03-10T23:22:41+08:00 要备份所有第三方 deb-repositories 列表以及 Flatpaks 和 Snaps,可以尝试我的名为(Save/Restore Software List Script for Ubuntu and Debian)的python 脚本。 它将保存所有 APT 存储库及其 GPG 密钥;Snaps、Flatpaks 和 Ubuntu 的列表 从第一台机器制作 JSON 文件的应用程序。 然后,您可以在第二台机器上使用相同的 JSON 文件恢复此列表。srslsud # minimal for APT sudo apt-get install python3 python3-gi python3-apt software-properties-common python3-jsonpickle # additional for Snap, Flatpak sudo apt-get install snapd flatpak gir1.2-snapd-1 gir1.2-flatpak-1.0 # additional for Ubuntu Make sudo apt-get install ubuntu-make cd ~/Downloads wget https://raw.githubusercontent.com/N0rbert/srslsud/master/srslsud.py chmod +x srslsud.py ./srslsud.py all_save 然后将 * .json文件与srslsud.py一起复制到目标系统并在那里运行以下命令: ./srslsud.py all_load sudo bash ./apt.sh 最后享受新的克隆系统。 注意:如果您只需要 APT - 使用apt_saveandapt_load代替。 ejm 2017-12-05T00:02:22+08:002017-12-05T00:02:22+08:00 从我对如何从命令行获取所有存储库和 PPA 的列表到安装脚本的回答中? ppa:USER/REPO以以下格式列出 PPA : 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 请参阅我对另一个问题的回答,以获取具有一些您可以保存和使用的额外功能的完整脚本。
好吧,因为我喜欢玩命令行脚本,所以我写了以下内容。它会生成一个 PPA 字符串列表,您可以备份这些字符串,然后将其写入
add-apt-repository
:这将产生类似的东西:
如果您想全面恢复这些,您可以像这样将它们通过管道传回系统(假设我们将 PPA 保存到
~/ppa-backup.txt
:我可能会建议你不要只恢复它们。查看备份并确保您知道每个 PPA 包含的内容。
我所做的是将整个 /etc/apt 目录复制到一个安全的地方。如果您必须重新安装或克隆您的安装,只需复制回该目录即可。它甚至可以保存 gpg 受信任的密钥。
如果您要导入所有 GPG 密钥,您可以使用我的脚本(包含在 .deb 中)一次导入所有缺少的 GPG 密钥。下载
要使用,只需运行:
如果需要,您可以查看 .deb 内部,该脚本非常小且易于理解(以防您不信任我的 deb)。
然后要备份所有 PPA,您所要做的就是复制新计算机/新安装上的所有 .list 文件,复制它们后,运行上述命令以导入所有密钥。
要备份所有第三方 deb-repositories 列表以及 Flatpaks 和 Snaps,可以尝试我的名为(Save/Restore Software List Script for Ubuntu and Debian)的python 脚本。 它将保存所有 APT 存储库及其 GPG 密钥;Snaps、Flatpaks 和 Ubuntu 的列表 从第一台机器制作 JSON 文件的应用程序。 然后,您可以在第二台机器上使用相同的 JSON 文件恢复此列表。
srslsud
然后将 * .json文件与srslsud.py一起复制到目标系统并在那里运行以下命令:
最后享受新的克隆系统。
注意:如果您只需要 APT - 使用
apt_save
andapt_load
代替。从我对如何从命令行获取所有存储库和 PPA 的列表到安装脚本的回答中?
ppa:USER/REPO
以以下格式列出 PPA :生成安装脚本:
(
-y
如果您不想进行非交互式安装,请取出)运行脚本:
请参阅我对另一个问题的回答,以获取具有一些您可以保存和使用的额外功能的完整脚本。