मेरे सिस्टम में जोड़े गए सभी ppa रिपॉजिटरी को सूचीबद्ध करें


21

मैं अपने सिस्टम में जोड़े गए सभी ppa रिपॉजिटरी को कैसे सूचीबद्ध कर सकता हूं और इसे एक .txtफ़ाइल में सहेज सकता हूं, ताकि मैं अपना समय ppa के लिए नए इंस्टॉलेशन की खोज में बिताना न चाहूं और मैं सिर्फ अपनी .txtफाइल और एपेंड में ppa लाइन का चयन कर सकूं कमांड को sudo add-apt-repository? इसके अलावा ऐसा करने के लिए कोई अन्य तरीका है जिसमें मैं gpg कुंजी मैन्युअल रूप से नहीं देना चाहता हूं?

जवाबों:


19

से मैं एक स्थापित स्क्रिप्ट में सभी खजाने और कमांड लाइन से PPAs की एक सूची कैसे मिल सकता है?

उत्तर का हिस्सा आपके लिए क्या देख रहा है:

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

उन जो सिर्फ वास्तव में बिना PPAs वे स्थापित किया है की जाँच के लिए कर रही है उनके साथ कुछ भी स्वतः ही आप कर सकते हैं:

$ 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
यह अच्छा और सरल है, हालांकि आउटपुट में उबंटू बेस रिपॉजिटरी भी शामिल हैं। यदि आप ऐसा करने जा रहे हैं, तो आप अपने स्रोत के रूप में दिए गए लिंक में पूर्ण, अंतिम कमांड का उपयोग कर सकते हैं 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
वारबैंक

0

से मेरा उत्तर पर मैं एक स्थापित स्क्रिप्ट में सभी खजाने और कमांड लाइन से PPAs की एक सूची कैसे मिल सकता है?

PPAs को 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.