Как я могу сделать резервную копию моих PPA?


27

Связанный с этим вопросом . Но меня беспокоит то, что в прошлом году большинство моих наиболее интересных (или используемых) приложений были из PPA, и простое резервное копирование моего списка источников не добавит связанные клавиши панели запуска, как это add-apt-repositoryпроисходит.

Поэтому я ищу способ перечислить все URL-адреса PPA (например ppa:chromium-daily/stable), чтобы можно было легко написать сценарий ряда команд add-apt-repository, чтобы изящно добавить их в новую установку.

Конечно, если не считать демпинг моей истории. Что может быть осуществимо, в зависимости от того, как далеко назад этот файл возвращается?

Ответы:


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

1
Боже мой, у меня много PPA в моей системе. Это прекрасно, Оли. Спасибо за ваши усилия!
Scaine

Не работает как написано.
user447607

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

Смотрите мой ответ на другой вопрос для полных сценариев с несколькими дополнительными функциями, которые вы можете сохранить и использовать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.