daftarkan semua repositori ppa yang ditambahkan ke sistem saya

21

Bagaimana saya bisa mendaftar semua repositori ppa ditambahkan ke sistem saya dan menyimpannya ke .txtfile, sehingga saya tidak ingin menghabiskan waktu saya dalam mencari ppa untuk instalasi baru dan saya bisa memilih baris ppa di .txtfile saya dan menambahkan untuk perintah sudo add-apt-repository? Juga ada cara lain untuk melakukan ini di mana saya tidak ingin memberikan kunci gpg secara manual?

supremum
sumber

Jawaban:

19

Dari Bagaimana saya bisa mendapatkan daftar semua repositori dan PPA dari baris perintah ke dalam skrip instalasi?

Sebagian dari jawaban tersebut tampaknya memiliki apa yang Anda cari:

#! /bin/sh 
# listppa Script to get all the PPA installed on a system ready to share for reininstall
for APT in `find /etc/apt/ -name \*.list`; do
    grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        echo sudo apt-add-repository ppa:$USER/$PPA
    done
done

Simpan ini sebagai listppa.sh

listppa.sh > installppa.sh

Ini membuat skrip yang dapat Anda cadangkan di suatu tempat, lalu jalankan untuk menambahkan PPA Anda pada instalasi baru dengan hanya menjalankan:

installppa.sh
NGRode
sumber
20

Bagi mereka yang hanya ingin memeriksa AKP yang telah mereka instal tanpa benar - benar melakukan apa pun dengan mereka secara otomatis, Anda dapat melakukannya:

$ apt-cache policy

Di sistem saya, inilah sedikit yang ditampilkan:

% apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-rael-gc-scudcloud,a=precise,n=precise,l=ScudCloud - Linux client for Slack,c=main
     origin ppa.launchpad.net
...

Dikutip dari sini :

[ apt-cache policy] mengambil prioritas yang terkait dengan setiap sumber daya repositori. Dari outputnya, Anda dapat menyimpulkan daftar semua repositori dan PPA yang tersedia.

Sumber: http://ask.xmodulo.com/list-installed-repository-ppas-ubuntu.html

Romário
sumber
5
Ini bagus dan sederhana, namun outputnya juga mencakup repositori dasar Ubuntu. Jika Anda akan melakukan itu Anda mungkin juga menggunakan penuh, perintah final yang digunakan dalam link yang Anda berikan sebagai sumber Anda: apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. Outputnya lebih teratur dan lebih mudah dilihat.
pjd
Catatan: apt-cache policyhanya akan menampilkan repo setelah Anda menjalankan apt-get update. Jika Anda baru saja menambahkan repo dengan add-apt-repository, repo tidak akan muncul apt-cache policysampai Anda jalankan apt-get update.
wisbucky
0

Dari jawaban saya di Bagaimana saya bisa mendapatkan daftar semua repositori dan PPA dari baris perintah ke skrip instalasi?

Daftar PPA dalam ppa:USER/REPOformat:

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

Daftar semua repositori termasuk PPA dalam ppa:USER/REPOformat:

Hapus saja yang terakhir grep(jangan lupa untuk menghapus |\dari baris sebelumnya setelah sedperintah).

Lihat jawaban saya pada pertanyaan lain untuk skrip lengkap yang dapat Anda simpan dan gunakan, termasuk membuat skrip instalasi.

ejm
sumber