मैं आर्क लिनक्स पर स्वतः ही अपडेट कैसे चला सकता हूं?


15

मैं आर्क लिनक्स के लिए एक नवागंतुक का एक सा हूँ और अभी भी इसके कुछ प्रतिमानों के लिए इस्तेमाल हो रहा हूं। मैं एक और डिस्ट्रो से बहुत सी आदतों के साथ आता हूं जो काफी अधिक संरचित था और कुछ मायनों में अनुमानित था।

एक चीज जो मैं कुछ सिस्टमस के साथ करना चाहूंगा, वह सभी सिस्टम पैकेजों के स्वचालित अपडेट करने के लिए क्रोन जॉब करने में सक्षम है। ऐसा लगता है कि यह बहुत आसान होगा सिवाय इसके कि मैं सिस्टम से कुछ सार्थक प्रतिक्रिया भी चाहता हूं कि मुझे बताएं कि चीजें कैसे चली गईं जो इतनी क्रिया नहीं थी कि मैं इसे अनदेखा कर देता हूं जब तक कि मुझे पता चलता है कि सिस्टम काम कर रहा है।

  • का पूर्ण उत्पादन pacmanअनावश्यक है। मुझे परवाह नहीं है कि डाउनलोड कितने समय तक चला या यह अपडेट 53 के 53 पर है।
  • अधिकांश भाग के लिए मुझे सफलताओं की परवाह नहीं है।
  • मैं त्रुटियों की परवाह करता हूं। यदि कोई अपडेट रन विफल होता है, तो मैं इसके बारे में जानना चाहता हूं और किसी विशेष त्रुटि संदेश के माध्यम से पैच किया जाना चाहिए।
  • मैं स्थापित के दौरान बंद "नोटिस" के बारे में परवाह करता हूं। उदाहरण के लिए आज के सिस्टम अपडेट ने कहा:

    :: coredumps are no longer sent to the journal by default. To re-enable:  
    echo >/etc/sysctl.d/50-coredump.conf \  
        "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
    

    या फाइलसिस्टम ने इसका उत्पादन किया:

    warning: /etc/group installed as /etc/group.pacnew  
    warning: /etc/passwd installed as /etc/passwd.pacnew  
    warning: /etc/shadow installed as /etc/shadow.pacnew
    

    यह अंतिम श्रेणी वास्तव में है जो मुझे इस प्रश्न को पूछने के लिए प्रेरित करती है क्योंकि ऐसा लगता है कि ये पैकेज सेट में बहुत असंगत हैं। इनमें से कुछ के द्वारा उत्पन्न होने लगते हैं post_upgrade(), अन्य द्वारा install(), कभी-कभी उन्हें stdout को लिखा जाता है, कभी-कभी stderr को। संदेशों का प्रारूप व्यापक रूप से भिन्न होता है: कभी-कभी एक पूरे ब्लॉक को किसी तरह इंडेंट पर उपसर्ग किया जाता है, अन्य समय में केवल एक नंगे प्रतिध्वनित स्ट्रिंग होता है।

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

¹ इससे पहले कि आप यह सोचें कि यह कितना बेवकूफ है, कृपया ध्यान दें कि मैं उत्पादन सर्वर पर ऐसा नहीं करने के लिए पर्याप्त स्मार्ट हूं और स्नैपशॉट आधारित पूर्ण सिस्टम बैकअप के बिना नहीं जो एक आपदा की स्थिति में पुनर्प्राप्ति को आसान बना देगा।


पहली चीज जो मैं करूंगा yaourt, वह आपके प्रश्न और आपके वैचारिक मॉडल दोनों से टैग को हटा देगा : आधिकारिक रिपोज के साथ ऐसा करने की कोशिश करना काफी मुश्किल होगा, AUR से मिक्स में यादृच्छिक पैकेज जोड़ने से यह क्विक्सोटिक बन जाएगा ...
jasonwryan

ओह, और यह एक मूर्ख विचार नहीं है; लेकिन यह आर्क के काम करने के तरीके के खिलाफ बहुत धक्का देता है। दिन में एक बार प्रयोग checkupdatesऔर -Syuअंतर्ग्रहण करना एक बहुत ही मामूली काम है; मुझे आपके काम के सभी प्रस्ताव के लिए कोई वास्तविक लाभ नहीं दिखाई देगा।
jasonwryan

@ मैंजॉनव्रीयन मेरा मतलब उस पर विस्तार करना था, लेकिन मेरे पास वास्तव में कुछ और पैकेज हैं जो मैं उसी वर्कफ़्लो में फिट करना चाहूंगा। मैं वर्तमान में यियोट का व्यापक उपयोग करता हूं और इस तथ्य को याद करता हूं कि पैकेज प्रबंधन कार्यों के लिए कोई सूखा-समर्थन नहीं है! : /
कालेब

2
आर्क का डीएनए आपके हाथों को गंदा कर रहा है: यह सिर्फ वह तरीका नहीं है जिसे चलाने का इरादा है; आप वहां पहुंच सकते हैं, लेकिन यह एक पाइरिक जीत होगी और, अगर यहां दस्तावेज दिया गया है, तो बस एक नए
सिरे से

2
मैंने पिछले साल इसे आज़माने में कुछ समय बिताया और इस नतीजे पर पहुंचा कि नियमित रूप से हत्या प्रणालियों के बिना उन्नयन को प्राप्त करने का एकमात्र तरीका नई छवियों का निर्माण करना था (जो कि आर्क में आधार परीक्षण बिंदु और अधिक विश्वसनीय लगता है) फिर एक विन्यास के साथ प्रत्यारोपण सेवा। प्रंबधन टूल। हो सकता है कि अपडेट थोड़ा नीचे आ गए हों, लेकिन 6 महीने की अवधि में 3-4 थे जो मैनुअल हस्तक्षेप के बिना एक सिस्टम को नली देंगे।
मैट

जवाबों:


11

मैं आप और किसी भी अन्य व्यक्ति के लिए स्पष्ट होना चाहता हूं जो इस धागे पर हो सकता है। आप जो करना चाहते हैं वह संभव नहीं है। आर्क तथ्य यह है कि यह उम्मीद की कोई रहस्य नहीं बना देता है आप अपने सिस्टम प्रशासन के लिए। उस जिम्मेदारी का हिस्सा अद्यतन चक्र के लिए मौजूद है।

अब, अद्यतन प्रक्रिया के चरण हैं जिन्हें आप जिम्मेदारी से स्वचालित कर सकते हैं, लेकिन यह कभी भी स्वचालित नहीं होगा -Syu। तुम बस उन्नयन के लिए वहाँ रहने की जरूरत है।

उदाहरण के लिए, आप क्या कर सकते हैं, एक ऐसा cronकाम करना है जो किसी भी पैकेज को डाउनलोड करता है जिसे स्थापित करने की आवश्यकता है (लेकिन उन्हें स्थापित नहीं करें)। निम्नलिखित pacmanप्रलेखन से एक अंश है :

SYNC OPTIONS
...
-w  --downloadonly
    Retrieve all packages from the server, but do not install/upgrade anything.

आप तब cronचला सकते हैं, चलाने के लिए नौकरी सेटअप कर सकते हैं sudo pacman -Syuw। मैं बहुत परिचित नहीं हूँ cronया यह क्षमताओं का निर्धारण कर रहा है। हालांकि, यदि यह किसी विशेष शर्त के पूरा होने के बाद केवल नौकरी चलाने में सक्षम है (उदाहरण के लिए, किसी विशेष मान को लौटाने वाला कमांड), तो आवश्यकतानुसार नए पैकेजों की डाउनलोडिंग को ट्रिगर करना काफी तुच्छ होगा।

मैं checkupdates | wc -lउदाहरण के लिए एक चेक चलाने की कल्पना करूंगा । यदि यह किसी भी संख्या को शून्य से ऊपर लौटाता है, तो आप डाउनलोड को ट्रिगर कर सकते हैं। फिर भी, यह -Syuतब नहीं होगा जब आप मौजूद हैं और अपग्रेड से निपटने के लिए तैयार हैं।

आपके प्रश्न के अंतिम भाग के लिए, अपग्रेड के दौरान क्या हुआ, इसका उत्पादन कैसे प्राप्त करें, आप खोज रहे हैं /var/log/pacman.log। इसमें सभी त्रुटि जानकारी शामिल हैं जो आपको रुचि दे सकती हैं।


नहीं है एक उपकरण है कि बनाने के लिए है pacmanअपरिचित उपयोगकर्ताओं के लिए एक छोटे से अधिक अनुकूल। अगर मैं गलत नहीं हूं, तो यह समाचार आइटमों के बारे में एक अधिसूचना भी प्रदान करता है यदि कोई अपडेट होना चाहिए जो मैन्युअल हस्तक्षेप को फिर से करता है।

यह उपकरण अल्पावधि में आपके जीवन को थोड़ा सरल बना सकता है, लेकिन यह मेलिंग सूचियों के बाद कभी भी समझदारी और लगन से प्रतिस्थापन नहीं होगा।


2
वास्तव में, आधिकारिक पैकेजों के बारे में नोटिस के लिए जिन्हें मैनुअल हस्तक्षेप की आवश्यकता होगी, मैं यह सलाह दूंगा कि आप आर्क-देव-पब्लिक और आर्क-जनरल का अनुसरण करें ।
HalosGhost

साथ ही, @jasonwryan पूरी तरह से सही है। ऐसा करना pacmanसंभव हो सकता है। इसके साथ करना yaourtसंभव नहीं है।
हेलोसॉस्ट

yaourtवास्तव में इस की तुलना में थोड़ा बेहतर काम करता है pacman, हालांकि, जैसा कि मुझे लगता है कि आप का मतलब है, एक अतिरिक्त सहायक की तुलना में थोड़ा अधिक के रूप में इसका डिफ़ॉल्ट कॉन्फ़िगरेशन लगभग निश्चित रूप से लंबे समय में चीजों को मिटा देगा। यह, हालांकि, अत्यंत विन्यास योग्य है, और स्रोत के पेड़ों को बहुत प्रभावी ढंग से बनाए रखने के लिए बनाया जा सकता है। दोनों yaourtऔर pacmanकेवल alpmवैसे भी लपेटते हैं ।
चाटुकार

या, मुझे लगता है कि यह कहना है, yaourtलपेटता है pacmanऔर कुछ अतिरिक्त alpmकार्यक्षमता और pacmanलपेटता है alpm। किसी भी मामले में, yaourtफैली हुई है pacman
मिकसर्व

जैसा कि यहां बताया गया है , -Syuwसंभवतः काफी खतरनाक है। यदि अद्यतन लागू नहीं होते हैं तो आंशिक अद्यतन उत्पन्न करने की क्षमता होती है, और सॉफ़्टवेयर को बाद में स्थापित किया जाता है -S
स्पार्कवाक

1

एक पुरानी स्क्रिप्ट है जो वास्तव में अच्छा काम करती है; इसे सफेपैक कहा जाता है ।

संपादित करें: यह स्क्रिप्ट अभी भी यहाँ github पर उपलब्ध है: https://github.com/bencahill/binfiles/blob/master/safepac

यह क्या करता है और यह कैसे काम करता है?

जिस तरह से मैं आमतौर पर आर्क को अपडेट करता हूं वह समाचार पढ़ने के लिए है और फिर करना है pacman -Syu, या बस करना है pacman -Syuऔर कुछ भी गलत होने पर समाचार पढ़ें। अब यह स्क्रिप्ट और कुछ नहीं करती है: यह आरएसएस फ़ीड से नवीनतम समाचार प्रविष्टियां प्राप्त करता है, कुछ sedजादू करता है, और उन सभी पैकेजों के नामों की तुलना करता है जिनके पास समाचार के लिए अपडेट उपलब्ध हैं। यह समाचार में "पैकेज-नाम" और "पैकेज-नाम-" से मेल खाता है, और यदि पैकेज का नाम समाचार में कहीं दिखाई देता है, तो यह पैकेज की अनदेखी करेगा और केवल अन्य सभी को अपडेट करेगा। इस तरह, जो कुछ भी गलत हो सकता है उसे तब तक स्थगित कर दिया जाएगा जब तक कि किसी के पास हाथ से मामले का निरीक्षण करने का समय न हो, जबकि गैर-महत्वपूर्ण अपडेट बस स्वचालित रूप से किया जाएगा!

आमतौर पर, एक बार जब आप संभवतः गैर-चिकनी अपडेट का ध्यान रखते हैं, तो आप safepacएक निश्चित पैकेज की अनदेखी नहीं करना चाहेंगे क्योंकि यह अभी भी समाचार में है। यही अज्ञानी के लिए है। इसलिए हर बार जब आपने मैन्युअल रूप से अपडेट किया है, तो आप संबंधित समाचार प्रविष्टि को अनदेखा सूची में जोड़ सकते हैं , जहां समाचार प्रविष्टि की संख्या है। आप नवीनतम समाचारों की संख्या भी निर्दिष्ट कर सकते हैं जिन्हें आप स्विच के साथ इसके पार्सिंग में शामिल करना चाहते हैं । स्क्रिप्ट गैर-मौजूदा प्रविष्टियों को छोड़ने के लिए पर्याप्त स्मार्ट है। यदि आप उन पैकेजों की समस्याओं का सामना करते हैं, जिनके बहुत कम नाम हैं, जो मनमाने ढंग से समाचार में दिखाई दे सकते हैं (जैसे "हां") तो आप उन्हें श्वेतसूची में जोड़ सकते हैं ताकि वे हमेशा समाचार में दिखाई देने पर भी स्थापित हो सकें।safepac -Ia xxxxxx-nsafepac -Wa

कृपया ध्यान दें कि आपको एक कार्यशील मेल सेटअप की आवश्यकता है क्योंकि यह स्क्रिप्ट आपको एक डाइजेस्ट मेल (पूर्ण लॉग के साथ) भी भेजती है, और अपडेट के मुख्य भागों के साथ:

pacmanइन शब्दों को देखने और इसे पचाने के लिए जोड़ने के लिए आउटपुट की पार्सिंग :
"नोट" "pacnew" "त्रुटि" "महत्वपूर्ण" "चेतावनी" "मौजूद है"।

स्क्रिप्ट पुरानी है, लेकिन विचार अच्छा है और शायद अभी भी मामूली अपडेट के साथ काम करता है, यदि कोई हो।


एक संभावित मुद्दा प्रमुख है (या ब्रेकिंग) अद्यतन को समाचार में नहीं बताया गया है, लेकिन आपको अपने आप को ट्रैक करना होगा। बिंदु में मामला, python2 से python3 तक अद्यतन
Lesto

फिर भी, आप चेकअपडेट्स (पचमन-बर्तनों) का उपयोग कर सकते हैं और संकुल की सूची प्राप्त कर सकते हैं, और फिर उन्हें दूर से सफ़ेद कर सकते हैं, यदि आपके पास एक पूल है, लेकिन तब शायद स्थानीय रेपो की तरह कुछ सेटअप करना बेहतर होता है
लेगो

-2

मैं क्रोन द्वारा चलाने के लिए अपनी स्वयं की अनियतता का उपयोग करता हूं yaourt


1
Yaourt प्रभावी रूप से मर चुका है : यह एक शानदार बुरा विचार है।
जसोन्वर्यन

मैंने yaourtखुद कई सालों तक इस्तेमाल किया । यह एक अच्छा उपकरण था, लेकिन इसे "रैप" करने के लिए बनाई गई चीजों ने आकार बदल दिया है और यह अब कई चीजों को काफी गलत करती है। इस बिंदु पर यह इतना समस्याग्रस्त है कि उपकरण के लेखकों ने कहा है कि वे स्वयं इसका उपयोग नहीं कर रहे हैं। यदि आप AUR सहायक चाहते हैं, तो मेरा सुझाव है कि आप सक्रिय रूप से बनाए रखने वालों में से एक का प्रयास करें। मैं yayअपने आप में बदल गया और काफी खुश हूं।
कालेब

वह उपयोगिता yayमेरे साथ भी काम करती है ।
vadzim
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.