Jak mogę wykonać kopię zapasową moich PPA?

27

Powiązane z tym pytaniem . Ale martwię się, że w ciągu ostatniego roku większość moich bardziej interesujących (lub używanych) aplikacji pochodzi z PPA, a samo utworzenie kopii zapasowej listy źródeł nie doda powiązanych klawiszy startera w taki add-apt-repositorysposób.

Dlatego szukam sposobu, aby wyświetlić listę wszystkich adresów URL PPA (takich jak ppa:chromium-daily/stable), dzięki czemu mogę łatwo napisać skrypt z serii poleceń add-apt-repository, aby z wdziękiem dodać je do nowej instalacji.

Oczywiście pomijając moją historię bashów. Co może być wykonalne, w zależności od cofnięcia tego pliku?

Scaine
źródło

Odpowiedzi:

42

Cóż, ponieważ lubię grzebać w skryptach wiersza poleceń, napisałem następujące. Generuje listę ciągów PPA, które można wykonać kopię zapasową, a następnie wykonać skrypt w add-apt-repository:

grep -RoPish '(?<=ppa.launchpad.net/)[^/]+/[^/ ]+' /etc/apt | sort -u | sed 's/^/ppa:/'

To wygeneruje coś takiego:

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

Jeśli kiedykolwiek zechcesz przywrócić je w całości, możesz podłączyć je z powrotem do systemu w ten sposób (zakładając, że zapisaliśmy umowy PPA do ~/ppa-backup.txt:

<~/ppa-backup.txt xargs -I % sudo add-apt-repository %

Prawdopodobnie sugerowałbym, aby nie przywrócić ich wszystkich. Przejrzyj kopię zapasową i upewnij się, że wiesz, co zawiera każda umowa PPA.

Oli
źródło
Dzięki Oli. Przetestuję to dziś wieczorem i zaakceptuję to raz przetestowane!
Scaine
1
Mój Boże, mam wiele umów PPA w moim systemie. To jest idealne, Oli. Dzięki za twój wysiłek!
Scaine
Nie działa jak napisano.
user447607
6

To, co robię, to kopiowanie całego katalogu / etc / apt w bezpieczne miejsce. Jeśli musisz ponownie zainstalować lub sklonować instalację, po prostu skopiuj ten katalog z powrotem. Zaoszczędzi nawet zaufane klucze gpg.

nejode
źródło
5

Jeśli importowanie wszystkich kluczy GPG jest tym, czego szukasz, możesz użyć mojego skryptu (w pliku .deb), aby zaimportować wszystkie brakujące klucze GPG jednocześnie. Ściągnij

Aby użyć, po prostu uruchom:

sudo launchpad-getkeys

Jeśli chcesz, możesz zajrzeć do .deb, skrypt jest naprawdę mały i łatwy do zrozumienia (na wypadek, gdybyś nie ufał mojemu debowi).

Następnie, aby wykonać kopię zapasową wszystkich umów PPA, wystarczy skopiować wszystkie pliki .list na nowym komputerze / nowej instalacji, a po ich skopiowaniu uruchom powyższe polecenie, aby zaimportować wszystkie klucze.

Alin Andrei
źródło
0

Z mojej odpowiedzi na temat: Jak uzyskać listę wszystkich repozytoriów i umów PPA z wiersza poleceń w skrypcie instalacyjnym?

Wyświetl listę PPA w ppa:USER/REPOformacie:

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:'
}

Wygeneruj skrypt instalacyjny:

list_ppas | xargs printf 'add-apt-repository -y %s\n' > install_ppas.sh

(wyjmij, -yjeśli nie chcesz instalacji nieinteraktywnej)

Uruchom skrypt:

sudo sh install_ppas.sh

Zobacz moją odpowiedź na drugie pytanie, aby uzyskać pełne skrypty z kilkoma dodatkowymi funkcjami, które możesz zapisać i użyć.

ejm
źródło