मैं अपने रास्पबेरी पाई को स्वचालित रूप से अपडेट / अपग्रेड करने के लिए कैसे सेट करूं?


34

वर्तमान में, बातें मेरी रास्पबेरी Pi पर तारीख तक प्राप्त करने के लिए, मैं में टाइप करने के लिए है sudo apt-get updateऔर sudo apt-get upgrade। क्या इसे स्वचालित रूप से करने के लिए इसे सेट करने का कोई तरीका है? मैं रस्पियन जेसी चला रहा हूं।

जवाबों:


47

मैन्युअल क्रोन के बजाय, आप स्थापित कर सकते हैं unattended-upgrades, जो नवीनतम गुठली स्थापित करने के लिए उपयोगी है। यह ज्यादातर सुरक्षा के लिए बनाया गया है।

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

कुछ बिट्स हैं जिन्हें समायोजित / कॉन्फ़िगर किया जा सकता है, लेकिन डिफ़ॉल्ट ठीक है।


5
मेरे लिए, डिफ़ॉल्ट ठीक नहीं था। यह कुछ भी नहीं करता था: /var/log/unattended-upgrades/unattended-upgrades.logफ़ाइल ने सूचना दी Allowed origins are: []कि मूल रूप से यह किसी भी अपडेट को खींच नहीं रहा था। अपडेट में /etc/apt/apt.conf.d/50unattended-upgradesशामिल करने के बाद अपडेट "origin=Raspbian,codename=${distro_codename},label=Raspbian";आना शुरू हो गया।
Rabarberski

मेरा बोन स्टॉक (सितंबर 2017 तक) 50unattended-upgradesसूचीबद्ध है "origin=Debian,codename=${distro_codename},label=Debian-Security";और यह प्रासंगिक पैकेजों को सही ढंग से खोजने के लिए प्रकट होता है। बेशक यह उनमें से कई की अनदेखी करता है। मैंने कोई श्वेत या अश्वेत नहीं स्थापित किया है।
जॉन वी।

3
डिफ़ॉल्ट 50unattended-upgradesवास्तव में बेवकूफ है और इसे रास्पियन पर काम करने के लिए बदलना होगा। नहीं है Raspian-Security। सुरक्षा अद्यतन लेबल नहीं हैं। यह दोनों को जोड़ने के लिए महत्वपूर्ण है "origin=Raspbian,codename=${distro_codename},label=Raspbian";और "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";करने के लिए/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

एक टर्मिनल में, टाइप करें:

sudo su

रूट-स्तरीय प्रॉम्प्ट तक पहुँचने के लिए। तो भागो:

crontab -e

अपने कॉन्टैब का संपादन शुरू करने के लिए, दिए गए समय में स्वचालित रूप से चलने के लिए कार्यों की एक तालिका। यह आपके पसंदीदा टेक्स्ट एडिटर में खुलेगा। निम्नलिखित पंक्तियों को शामिल करने के लिए इसे संशोधित करें:

0 7 * * 1 apt update && apt upgrade -y

प्रत्येक सोमवार को सुबह 7 बजे अपने ऐप्स को स्वचालित रूप से अपडेट और अपग्रेड करने के लिए। अपनी पसंद के हिसाब से तालमेल बिठाने के लिए क्रेस्टब पर पढ़ें।


2
यह संभवतः बेहतर है कि कमांड को उसी लाइन पर रखा जाए &&क्योंकि वे संबंधित हैं और 'अपडेट' विफल होने पर 'अपग्रेड' करने का कोई कारण नहीं है।
tedder42

crontab में 0रविवार का मतलब है, लेकिन आपके कोड में आपने 1इतनी कमांड सोमवार को चलाई होगी, रविवार नहीं
rav_kr

3
dist-upgradeसे बेहतर है upgrade, आप केवल उपयोग करके टूटी हुई निर्भरता के साथ समाप्त हो जाएंगे upgrade। आपको डायलॉग पुष्टिकरण की आवश्यकता वाले अपडेट भी नहीं मिलेंगे। @ tedder42 ने डेबियन (पसंद) द्वारा पसंद की गई विधि बताई unattended-upgrades
at:५१ पर

आपने && को जोड़ने के बाद दूसरा sudo याद किया। हालांकि यह रूट क्रैस्टैब में है।
user643011

1
वहां कोई भी नहीं होना चाहिए sudo; आपने rootखाते का उपयोग करके स्विच किया है su। सुपरयुसर का क्राउस्ट सुपरसुसर विशेषाधिकारों के साथ चलाया जाता है।
गोल्डीलॉक्स

8

आप क्रोन-एप को स्थापित और कॉन्फ़िगर कर सकते हैं। इसे निम्न करके स्थापित करें:

apt-get install cron-apt

मुख्य विन्यास फाइल / etc / cron-apt / config है

एक चीज जो मैं अपने विन्यास में जोड़ता हूं वह है:

MAILON="always"

यह हर बार चलने पर एक ईमेल भेजेगा, न केवल अगर यह एक त्रुटि का सामना करता है।

ध्यान दें कि डिफ़ॉल्ट सेटअप स्वचालित रूप से अपडेट स्थापित नहीं करेगा (ऐसा करने के लिए कुछ अच्छे कारण हैं), लेकिन आप ऐसा करने के लिए इसे कॉन्फ़िगर कर सकते हैं। एक साधारण क्रोन समाधान पर यह कार्यक्रम प्रदान करने का एक फायदा यह है कि यह आपको स्थापित किए गए नियंत्रण पर नियंत्रण देता है (केवल नए पैकेज डाउनलोड करें, सुरक्षा अपडेट स्थापित करें या सभी अपडेट स्थापित करें)।

/Etc/cron.d/cron-apt फ़ाइल को संपादित करने के समय को निर्धारित करने के लिए।

आप अधिक जानकारी और config विकल्प पा सकते हैं यहाँ

पैकेज में बहुत अच्छा प्रलेखन शामिल है, हालांकि यह gzipped है। फ़ाइल निकालने के लिए:

  1. - mkdir cron-apt_documentation में काम करने के लिए एक निर्देशिका बनाएं
  2. नई निर्देशिका में परिवर्तन - सीडी क्रोन- apt_documentation
  3. संपीड़ित फ़ाइल की प्रतिलिपि बनाएँ - cp /usr/share/doc/cron-apt/README.gz। (अनुगामी डॉट को नोट करें)
  4. फ़ाइल को खोलना - gunzip README.gz
  5. फ़ाइल पढ़ें - बिल्ली README | कम से

याzcat /usr/share/doc/cron-apt/README.gz | less

5

अपने डिफ़ॉल्ट कॉन्फ़िगरेशन में, unattended-upgradesरास्पियन बस्टर में टूट गया है। यह कर्नेल और अन्य सॉफ़्टवेयर के लिए महत्वपूर्ण अद्यतन स्थापित नहीं करेगा। आपके विकल्प हैं:

अनुशंसित विकल्प:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

तेज़ सुरक्षा अपडेट के लिए (लेकिन कम स्थिरता, जैसा कि पैकेज रासबीन के लिए अनुमोदित नहीं किया गया है), आप निम्न में डेबियन-सुरक्षा पैकेज जोड़ सकते हैं:

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

आपको संभवतः डेबियन रिपॉजिटरी के लिए नई एप्ट कुंजी स्थापित करने की आवश्यकता होगी ।

अन्य विकल्प:

  • क्रोन-एप्ट का उपयोग करके इसके साथ काम करें: sudo apt install cron-apt

  • इसके आसपास काम करने के अन्य तरीके।

यह अनुपयोगी-अपडेट का उपयोग करने और पैकेज को ठीक करने के लिए अनुशंसित है, क्योंकि यह उद्देश्य के लिए सबसे उपयुक्त है। क्रोन-एप आपका दूसरा सबसे अच्छा विकल्प है, क्योंकि यह एक समान उद्देश्य के लिए भी बनाया गया है। मुझे यकीन नहीं है कि कर्नेल अपडेट के बाद या तो स्वचालित रूप से आपके सिस्टम को रिबूट किया जा सकता है। अनअटेंडेड-अपग्रेड में आमतौर पर वह विकल्प होता है, लेकिन मुझे यकीन नहीं है कि यह ऊपर दिए गए फिक्स के साथ काम करता है।

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