перелічити всі сховища ppa, додані до моєї системи


21

Як я можу перерахувати всі сховища ppa, додані до моєї системи, і зберегти їх у .txtфайл, щоб я не хотів витрачати свій час на пошук ppa для свіжих установок, і я можу просто вибрати рядок ppa у своєму .txtфайлі та додати до команди sudo add-apt-repository? Чи є інші способи зробити це, в якому я не хочу вручати клавіші gpg вручну?

Відповіді:


19

Звідки я можу отримати список усіх сховищ та PPA з командного рядка в сценарій встановлення?

Частина відповіді виглядає на те, що ви шукаєте:

#! /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

Збережіть це як listppa.sh

listppa.sh > installppa.sh

Це створює сценарій, який ви можете десь створити для резервного копіювання, а потім запустіть, щоб додати ваші PPA на свіжу установку, просто запустивши:

installppa.sh

20

Для тих, хто просто хоче перевірити встановлені PPA, фактично нічого не роблячи з ними автоматично, ви можете зробити:

$ apt-cache policy

У моїй системі ось трохи того, що вона показує:

% 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
...

Цитується звідси :

[ apt-cache policy] отримує пріоритети, пов'язані з кожним ресурсом сховища. З його результату ви можете зробити список усіх доступних сховищ та PPA.

Джерело: http://ask.xmodulo.com/list-installed-repositories-ppas-ubuntu.html


5
Це приємно і просто, проте вихід також включає базові сховища Ubuntu. Якщо ви збираєтеся робити , що ви можете також використовувати повну, остаточну команду , яка використовується на засланні , яку ви дали в якості джерела: apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. Вихід краще організований і легший для очей.
pjd

Примітка: apt-cache policyрепост відображатиметься лише після запуску apt-get update. Якщо ви тільки що додали репо з add-apt-repository, воно не з’явиться, apt-cache policyпоки ви не запустите apt-get update.
wisbucky

0

З моєї відповіді на тему Як я можу отримати список всіх сховищ та PPA з командного рядка в сценарій встановлення?

Список PPA у ppa:USER/REPOформаті:

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

Список усіх сховищ, включаючи PPA у ppa:USER/REPOформаті:

Просто видаліть останній grep(не забудьте видалити |\попередній рядок після sedкоманди).

Дивіться мою відповідь на інше питання щодо повних сценаріїв, які ви можете зберегти та використовувати, включаючи створення сценарію встановлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.