कमांड लाइन के माध्यम से अपडेट कैसे स्थापित करें?


692

जब मैं SSH के माध्यम से अपने वेब सर्वर में प्रवेश करता हूं तो मुझे जानकारी दिखाई देती है:

88 packages can be updated.
80 updates are security updates

मैंने apt-get updateतब कोशिश की apt-get upgradeलेकिन हर बार जब मैं लॉग इन करता हूं तब भी अपडेट के बारे में मैसेज देखता हूं। मैं उन्हें कैसे स्थापित करूं?


1
क्या आपने पहले यह कोशिश की थी: सुडो एप्ट-क्लीन यह कैश को साफ करना चाहिए।
user2635584

जवाबों:


868

इसे इस्तेमाल करो:

sudo apt update        # Fetches the list of available updates
sudo apt upgrade       # Installs some updates; does not remove packages
sudo apt full-upgrade  # Installs updates; may also remove some packages, if needed
sudo apt autoremove    # Removes any old packages that are no longer needed

प्रत्येक aptविकल्प के बारे में दस्तावेज़ीकरण को उपयुक्त मानदंड में पाया जा सकता है । ये man aptआपके टर्मिनल में चलकर भी उपलब्ध हैं ।

दोनों upgradeऔर full-upgradeएक साथ उपयोग की आमतौर पर आवश्यकता नहीं होती है, लेकिन यह कुछ मामलों में मदद कर सकता है: डेबियन 9 से अपग्रेड के बारे में डेबियन प्रलेखन देखें ।


29
क्या मुझे sudo rebootइसके बाद हमेशा पुनरारंभ करना चाहिए ?
हेलबॉय

1
मैं जोड़ने के लिए की जरूरत -y यह काम करने के लिए। Ubuntu 17.10
T04435

124

sudoएक बार टाइप करके सभी कमांड निष्पादित करें :

sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'

या

sudo -s -- <<EOF
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
EOF

या यहां तक कि एक में कम के लिए लूप (धन्यवाद @dessert)

sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'

3
आप गठबंधन कर सकते हैं dist-upgradeऔर autoremoveद्वारा apt-get dist-upgrade --auto-remove
जर्नो

3
दोनों को चलाने के लिए कोई जरूरत नहीं है upgradeऔर dist-upgrade
जर्नो

3
@jarno dist-upgradeपैकेज निकाल सकता है। upgradeपहले प्रयोग से इससे बचा जा सकता है, जैसे कि जब नए पैकेज संस्करण पुराने लोगों की तुलना में अधिक आसानी से निर्भरता को संतुष्ट करते हैं। मुझे नहीं पता कि उबंटू की स्थिर रिलीज के भीतर पैकेज को अपग्रेड करते समय यह कितनी बार मदद करता है, लेकिन इसकी सिफारिश कुछ अन्य संदर्भों में की जाती है । व्यक्तिगत रूप से, मैं शायद ही कभी dist-upgradeउबंटू में उपयोग करता हूं , और जब मैं करता हूं, तो मैं कभी नहीं गुजरता -y। लेकिन अगर किसी को दौड़ना dist-upgradeऔर पास करना है -y, तो मुझे लगता है कि upgradeपहले कार्रवाई करना उचित है ।
एलियाह कगन

1
@jarno जब आप --autoremoveअपनी पसंद के अपग्रेड कमांड के साथ एक साथ चेन कर सकते हैं, तो यह उचित नहीं है क्योंकि यह एक पैकेज के विफल होने पर आपको अशुद्ध स्थिति के साथ समाप्त कर सकता है। एक बेहतर यह था autoremoveकि अपडेट प्रक्रिया पूरी होने के बाद एक अलग लाइन पर अकेले का उपयोग करें , यदि आप पुरानी कॉन्फिग फाइलों को साफ करना चाहते हैं तो आप इसके साथ चेन कर सकते हैं --purge
वीडियोनौथ

@Videonauth ओह, यह निर्भर करता है कि कैसे aptलागू किया जाता है। मुझे लगता है कि इसे लागू किया जाना चाहिए ताकि यह अशुद्ध अवस्था में व्यवस्था न छोड़े।
जर्नो

91

यह सामान्य व्यवहार है।

लॉगिन पर आप जो संदेश देखते हैं, उसे सर्वर स्थिति 'संदेश-की-द-डे' में जोड़ा गया है, जो केवल प्रत्येक कैलेंडर दिन (या सर्वर बूट / स्टार्टअप पर) अपडेट किया जाता है । सामग्री पर एक नज़र है, का उपयोग कर

cat /etc/motd

अभी भी वही अपडेट्स देखने को मिल रहे हैं, जिन्हें चलाने के बाद

sudo apt-get update && sudo apt-get upgrade

उम्मीद की जानी है। यदि आप इस आदेश को फिर से चलाते हैं, तो आपको केवल आगे के अपडेट के लिए संकेत दिया जाएगा यदि आगे भी (नए) अपडेट जारी किए गए हैं।


मैं देख रहा हूँ कि अगले कैलेंडर दिन तक पूरे सिस्टम में कोई भी फ़ाइल परिवर्तन दिखाई नहीं देता है, क्या तुरंत बदलाव देखने के लिए "ताज़ा" जैसा कोई तरीका है?
aljuaid86

क्या आपके पास संदेश-की-द-डे की सामग्री के लिए अपडेट का मतलब है , या नहीं चल रहा है जो आप चाहते हैं sudo apt-get update && sudo apt-get upgrade?
david6

3
यह अब 16.04 पर सच नहीं है। "एप्ट-गेट डिस्ट-अपग्रेड" और रिबूट के बाद मैं देखता हूं कि "0 पैकेज अपग्रेड किए जा सकते हैं"।
बोगडान कैलमैक

1
ऊपर दिया गया '.. या सर्वर रिबूट ..' स्टेटमेंट कवर करता है।
दाविद ६

3
बिल्ली: / etc / motd: ऐसी कोई फ़ाइल या निर्देशिका नहीं
xApple

11

एक बार जब आप अपने सर्वर में लॉग इन करते हैं, तो नीचे कमांड चलाएं।

sudo apt-get upgrade

यह चाल करना चाहिए। हो सकता है कि आपको अपने सर्वर को पुनरारंभ करने की आवश्यकता हो।


3
आपके उत्तर के लिए धन्यवाद, लेकिन मैंने sudo apt-get उन्नयन की कोशिश की। सर्वर को पुनरारंभ करना सवाल से बाहर है क्योंकि मेरे पास इस पर साइटें हैं।
मार्लिन

3
यदि आपने एक अद्यतन स्थापित किया है जो सीधे कर्नेल को प्रभावित करता है या यह एक ड्राइवर अपडेट है या यह एक महत्वपूर्ण सुरक्षा अद्यतन है, तो आपको सर्वर को पुनरारंभ करने की आवश्यकता है।
इवांड्रो सिल्वा

शायद आपको एक मिनट के लिए त्रुटि 503 पर विचार करना चाहिए। क्या आप जानते हैं कि यह किस तरह का अपडेट है?
NorTicUs 15

1
यदि सर्वर ऑफ़लाइन है तो आप 503 कैसे दे सकते हैं?
मोंट

8

मेरे मामले में, मेरे पास /etc/apt/source.list में एक गलत या सुलभ URL नहीं था इस URL को निकालने के बाद, मैं सभी पैकेजों को सफलतापूर्वक अपडेट करने में सक्षम था।

आदेश:

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade

7

मेरा (वास्तव में देर से, मुझे नेक्रोमैंटर बैज पसंद है :-)) समाधान:

  1. वैजिग (एक बार) स्थापित करें :

    sudo apt-get install wajig 
    
  2. जब आप अपने सिस्टम को पूरी तरह से अपडेट / अपग्रेड करना चाहते हैं

    wajig dailyupgrade
    

    (यह पासवर्ड के लिए पूछेगा यदि आवश्यक हो, और आपके लिए सभी अपडेट, अपग्रेड, डिस्ट-अपग्रेड और ऑटोरेमोव स्टेप्स करें)।



1

यह स्क्रिप्ट अप्रमाणित पैकेजों को हटाने और OS के एक होने पर ही रिबूट करने सहित अपडेट को स्वचालित करने के लिए आसान है

remote_user=usernamehere
remote_host=example.com

ssh -A -n -o StrictHostKeyChecking=no ${remote_user}@${remote_host} && \
sudo apt-get update && \
sudo apt-get -f install -y && \
sudo apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -y && \
sudo apt-get autoremove -y && \
[ -f /var/run/reboot-required ] && \
echo "sudo reboot now" && \
sudo reboot now 

अपने स्थानीय बॉक्स को चलाने के लिए बस ssh कर रही पहली पंक्ति को छोड़ दें

यहाँ एक उपनाम है जिसे मैं ~ / .bashrc में सहेजता हूं

alias doit='echo; kill $( ps -eafww|grep update-manager|grep -v grep | grep update-manager | tr -s " " |cut -d" "  -f2 ) > /dev/null 2>&1;  echo "sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo";echo;sudo apt-get update && sudo apt-get dist-upgrade &&  [ -f /var/run/reboot-required ] && echo && echo reboot required && echo '

तब टर्मिनल पर मैं सिर्फ जारी करता हूं doit


0

यदि आप समाप्त apt-get updateहोने के बाद फिर से चलाते हैं apt-get upgrade, तो ssh लॉगिन पर उन संदेशों को दूर जाना चाहिए।

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