कैसे जाँचें कि PPA पहले से ही bash लिपि में उपयुक्त स्रोतों की सूची में जोड़ा गया है या नहीं


11

क्या किसी को पता है कि कैसे जांच करनी है कि क्या पीपीए पहले ही मेरे सिस्टम में जोड़ा जाता है, क्योंकि मैं इसे add-apt-repositoryकमांड में जोड़ता हूं shell script

यह बहुत मददगार होगा।

धन्यवाद।

जवाबों:


11

आप ऐसा कुछ कर सकते हैं:

the_ppa=...  # e.g. the_ppa="ondrej/apache2"

if ! grep -q "^deb .*$the_ppa" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
    # commands to add the ppa ...
fi

टिप्पणियाँ:

  • grep अगर यह एक मैच पाता है तो सफलता के साथ बाहर निकलता है
  • !नकारता इस, अगर वहाँ कोई मुकाबला नहीं है तो आदेशों निष्पादित किया जाएगा = पीपीए नहीं जोड़ा
  • -qझंडा बनाता grep शांत तो यह मिलान किया लाइनों मुद्रित नहीं है। यह सिर्फ शोर होगा, हमें केवल यह जानना होगा कि क्या कोई मैच है या नहीं, जिसके लिए निकास कोड एकदम सही है
  • ^deb .*उपसर्ग यकीन है कि मेल नहीं खाते लाइन के साथ शुरू होता है बनाने के लिए है debलाइनों है कि बाहर टिप्पणी की बाहर करने के लिए,

जैसा कि यह पता चला है, यह ppas है कि बाहर टिप्पणी की गई है, लेकिन मैं उन PPA को ढूंढना चाहता हूं जिन्हें टिप्पणी नहीं की गई है, और @ दस-सिक्के का जवाब है।
तय्ये

2

अपना टर्मिनल खोलें और यह कमांड टाइप करें

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger

FPA को PPA नाम से बदलें।

यहां छवि विवरण दर्ज करें


1
यह देखकर अच्छा लगा कि मेंढक अभी भी जीवित है, मुझे लगता है कि शेल स्क्रिप्ट के भीतर एक if स्टेटमेंट के लिए grep सही विलेय नहीं है
जोश

तुम भी awk के साथ क्षेत्र खोज सकते हैं। बहुत तेज।
rɑːdʒɑ

मैं awk से परिचित नहीं हूँ, लेकिन अगर आपके पास कोई समाधान है तो अपने आसन को पोस्ट करने और अपनी पुनरावृत्ति प्राप्त करने में संकोच न करें। Ps। मुझे एक लाइनर बहुत पसंद है
जोश

के रूप में मैं छुट्टी पर हूँ अब ठीक से परीक्षण के साथ पोस्ट नहीं कर सकता। इसके लिए क्या है?
r --dʒɑ

मैं उस दिन बाद में एक बयान के साथ यह परीक्षण करेंगे। अधोगति के लिए क्षमा करें। मैंने देर रात तक ऐसे पोस्ट नहीं पढ़े। मुझे लगता है कि यह काम करना चाहिए और बाद में जवाब दूंगा कि क्या मैंने तेह आदेश का परीक्षण किया है।
जोश

0

सूची.सैवी फाइलें, स्रोत को हटाकर, केवल डिबेट लाइन सुनिश्चित करें और इसे "फोगर" ppa के लिए गिनाएं:

ppa_added=`grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v list.save | grep -v deb-src | grep deb | grep fogger | wc -l`

echo $ppa_added

यह उन debपंक्तियों को भी खोजता है जिन्हें टिप्पणी की जाती है # deb, और फ़ाइलों से लाइनें शुरू होती हैं जैसे foo-ppa.list.distUpgradeकि - क्या यह इरादा है?
वोल्कर सीगल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.