web-dev-qa-db-ja.com

PPAをバックアップするにはどうすればよいですか?

この質問 に関連。しかし、私が心配しているのは、過去1年間で、より興味深い(または使用される)アプリケーションのほとんどがPPAからのものであり、ソースリストをバックアップしても、関連するランチパッドキーがadd-apt-repositoryのように追加されないことです。

したがって、一連のadd-apt-repositoryコマンドを簡単にスクリプト化して新しいインストールに正常に追加できるように、すべてのPPA URL(ppa:chromium-daily/stableなど)をリストする方法を探しています。

もちろん、私のbash履歴をダンプすることはできません。そのファイルがどれくらい前に戻るかに応じて、どちらが実行可能でしょうか?

27
Scaine

コマンドラインスクリプトをいじるのが好きなので、次のように書きました。バックアップし、add-apt-repositoryにスクリプト化できるPPA文字列のリストを生成します。

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に何が含まれているかを確認してください。

42
Oli

私がやることは、/ etc/aptディレクトリ全体を安全な場所にコピーすることです。インストールを再インストールまたは複製する必要がある場合は、そのディレクトリをコピーしてください。 gpgの信頼できるキーも保存します。

6
nejode

すべてのGPGキーをインポートすることが目的の場合、スクリプト(.debに含まれる)を使用して、欠落しているすべてのGPGキーを一度にインポートできます。 ダウンロード

使用するには、単に次を実行します:

Sudo launchpad-getkeys

必要に応じて.debの内部を見ることができます。スクリプトは本当に小さく、理解しやすいです(私のdebを信用しない場合)。

次に、すべてのPPAをバックアップするには、すべての.listファイルを新しいコンピューター/新しいインストールにコピーし、それらをコピーしたら、上記のコマンドを実行してすべてのキーをインポートするだけです。

5
Alin Andrei

私の答え on コマンドラインからインストールスクリプトにすべてのリポジトリと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

保存して使用できるいくつかの追加機能を備えた完全なスクリプトについては、他の質問に関する私の回答を参照してください。

0
ejm