क्या मैं एक साइलेंट या अनअटेंडेड रिलीज़ अपग्रेड कर सकता हूं?


31

मैं संकेतों के प्रति प्रतिक्रिया के बिना एक नए उबंटू संस्करण में कैसे अपग्रेड करूं?

मैं अभी 12.04 पर हूं और 12.10 स्थापित करना चाहूंगा। जब मैं अपडेट शुरू करता हूं, तो यह आम तौर पर सामान डाउनलोड करता है, फिर एक प्रश्न पूछता है, थोड़ा स्थापित करता है, एक प्रश्न पूछता है, आदि। मैं इसे रात भर छोड़ देता हूं और कभी-कभी यह पाता हूं कि इसने लगभग कोई प्रगति अपडेट नहीं की। मैं इस प्रक्रिया को सिर्फ किक करना चाहता हूं, चले जाओ और कुछ घंटों के बाद इसे समाप्त कर दो। मैं इसके साथ ठीक हूँ / स्वचालित रूप से विन्यास फाइल को / etc वगैरह में अद्यतन कर रहा हूँ। तो एक अनअटेंडेड अपग्रेड कैसे शुरू करें?

जवाबों:


42

बिना किसी संकेत के नए स्थिर रिलीज़ के लिए निम्न कमांड अपग्रेड:

do-release-upgrade -f DistUpgradeViewNonInteractive

निम्नलिखित कमांड प्रॉम्प्ट के बिना वर्तमान विकास रिलीज़ में अपग्रेड होता है:

do-release-upgrade -d -f DistUpgradeViewNonInteractive

मैंने इसका परीक्षण नहीं किया है, लेकिन ऐसा लगता है कि यह केवल डिफ़ॉल्ट कार्रवाई करता है जब कोई सवाल उठता है। यदि वे बहुत लंबे समय तक लटका रहे हैं तो यह किसी भी स्क्रिप्ट को बाहर निकालता है।

dpkg-reconfigureयदि आपको कुछ पैकेजों के कॉन्फ़िगरेशन से नाखुश हैं, तो आपको बाद में उपयोग करना पड़ सकता है , लेकिन अधिकांश समय आपको ठीक होना चाहिए।

स्रोत: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrad-fully-automatic-non-interactive-upgrad/ । लिंक में ऐसा करने के अन्य तरीके भी हैं।


कृपया लिंक से सामग्री को संदर्भित करने से बचें, लेकिन संबंधित जानकारी को शामिल करें ताकि साइट दोबारा उपलब्ध न हो, तो जानकारी खो जाए।
k0pernikus

मैंने ऐसा किया और सब कुछ काम करने लगा, लेकिन रिबूट के बाद मुझे केवल एक ग्रब त्रुटि मिली , इसलिए आपको लगता है कि इस अप्राप्य उन्नयन के बाद कुछ और ग्रब कॉन्फ़िगरेशन जोड़ना होगा। शायद साथ sudo apt-get install grub-emu?
रूबो77

6
यह भरोसेमंद => Xenial के लिए काम नहीं करता है। अभी भी संशोधित / आदि फ़ाइलों के बारे में प्रश्न प्राप्त करें।
विलेम

यह sudo के साथ नहीं चलाया जाना चाहिए?
सेरिन

संशोधित / आदि फ़ाइलों के बारे में प्रश्नों के संबंध में, यहां एक अच्छा समाधान है: awaseroot.wordpress.com/2012/04/29/… । "Echo" y \ n \ ny \ ny \ ny \ n "के साथ कमांड चलाएँ | 'करो-रिलीज-अपग्रेड के सामने। यह प्रश्नों के उत्तर देता है। मामले में बहुत सारे उत्तर जोड़ें / / आदि में बहुत सारी संशोधित फाइलें हैं।
nmgeek

6

बस पिछले उत्तरों पर विस्तार करने के लिए, यहां बताया गया है कि दूरस्थ रूप से स्वीकृत उत्तर के समान ही करें, ssh पर पासवर्ड रहित अपग्रेड का उपयोग करके जो आपके बॉक्स को नवीनतम संस्करण में अपग्रेड कर देगा। यह मेरे अपने ब्लॉग प्रविष्टि से कॉपी किया गया है ।

इन सभी चरणों का मानना ​​है कि आपका पैकेज भंडार काम कर रहा है। मतलब अगर आप apt-get update को अंजाम देते हैं तो आपके पास पुराना संस्करण होने के कारण 404s के साथ प्रस्तुत नहीं किया जाता है। आपको पहले इसे ठीक करने की आवश्यकता है, इसलिए इसके लिए यह उत्तर देखें

0. सभी मौजूदा पैकेजों को अपडेट करें

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

1. पासवर्ड रहित निष्पादन सेट करें

उन उपयोगकर्ताओं की सूची में अपना स्वयं जोड़ें जो एक पासवर्ड दर्ज किए बिना sudo का उपयोग करते हुए do-रिलीज़-अपग्रेड को निष्पादित कर सकते हैं

sudo visudo -f /etc/sudoers.d/do-release-upgrade.

और निम्नलिखित पंक्ति को जोड़ते हुए, अपने स्वयं के पाठ्यक्रम के लिए मेरे-उपयोगकर्ता नाम को प्रतिस्थापित करना:

my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade

2. वृद्धिशील उन्नयन शुरू करें

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

while true; do 
    ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
    sleep 120; 
done

3. कॉन्फ़िगरेशन फ़ाइलों को उनकी पिछली स्थिति में ठीक करें

बाद में आपको बैक अप फ़ाइलों को अपने पिछले स्थान पर ले जाना होगा क्योंकि नवीनीकरण प्रक्रिया ने उनके स्थान पर डिफ़ॉल्ट कॉन्फ़िगरेशन रखा है।

डिफ़ॉल्ट उत्तरों से संतुष्ट नहीं हैं?

इस व्यक्ति के पास प्रत्येक संकेत के लिए पूर्व-तैयार करने का एक तरीका है , लेकिन नकारात्मक पक्ष यह है कि आपको पता होना चाहिए कि कितने संकेत हैं ...


5

यह पुष्टि करने के लिए कि थॉमस वार्ड अपने उत्तर में क्या कहता है और स्वीकृत उत्तर का खंडन do-release-upgrade -d -f DistUpgradeViewNonInteractiveकरता है , काम नहीं करता है।

वास्तव में पहले ही प्रांप्ट पर इसने मेरा 16.04 से 18.04 का परीक्षण विभाजन तोड़ दिया और मुझे इसे पुनः प्राप्त करना पड़ा। यह वह जगह है जहाँ स्क्रिप्ट जमा होती है:

Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...

Configuration file '/etc/systemd/logind.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y

Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...

इनपुट इनहिबिटर्स के कारण स्क्रिप्ट को मारने के बाद न तो रिबूट और न ही शटडाउन काम करेगा। आपको एक ठंडा शटडाउन करना होगा (पावर बटन को दबाएं ~ 10 सेकंड)।

धन्यवाद अच्छा है यह एक 16.04 क्लोन अपग्रेड था और वास्तविक 16.04 विभाजन पर नहीं।


जीवन को और भी दिलचस्प बनाने के लिए मेरे NVMe SSD में एक नया 898 MB विभाजन जोड़ा गया और मेरे नियमित विभाजन को स्थानांतरित कर दिया गया:

$ lsdrv
NAME        FSTYPE  LABEL                  MOUNTPOINT          SIZE MODEL

nvme0n1                                                        477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs                                               858M 
├─nvme0n1p3                                                     16M 
├─nvme0n1p1 ntfs                                               450M 
├─nvme0n1p8 ntfs    Shared_WSL+Linux       /mnt/e                9G 
├─nvme0n1p6 ext4    Ubuntu18.04                               23.7G 
├─nvme0n1p4 ntfs    NVMe_Win10             /mnt/c            390.4G 
├─nvme0n1p2 vfat                           /boot/efi            99M 
├─nvme0n1p9 swap    Linux Swap             [SWAP]              7.9G 
└─nvme0n1p7 ext4    NVMe_Ubuntu_16.0       /                  44.6G 
  • nvme0n1p5 जहां मेरा Ubuntu 16.04 विभाजन रहता था, वहां इस्तेमाल किया गया था, लेकिन अब यह चालू है nvme0n1p7
  • nvme0n1p8 जहां मेरा 18.04 परीक्षण विभाजन रहता था, वहां हुआ करता था, लेकिन अब यह चालू है nvme0n1p8

ध्यान दें: मैंने आज दोपहर विंडोज 10 को बिल्ड 1709 से बिल्ड 1803 में भी अपग्रेड किया है, इसलिए यह संभव है कि इसने प्रारूप nvme0n1p5में नया 898 एमबी विभाजन बनाया ntfs


हालांकि, यह एक बड़ा है, इसलिए आपको इसे लॉन्चपैड पर रिपोर्ट करना चाहिए। पहले कई वितरण उन्नयन के माध्यम से गैर-संवादात्मक तरीके का इस्तेमाल किया
ऑलिगॉफ़ेन

उसी दिन एक ही बॉक्स पर ubuntu और खिड़कियां दोनों को अपग्रेड किया गया? आपको दर्द का आनंद लेना चाहिए
JDS

@JDS विंडोज बोर हो गया। 1700 अपग्रेड लापता, सभी प्रकार की टूटी हुई निर्भरताएं पायथन 2 बनाम पायथन 3। मुझे विंडोज़ स्टोर आह से उबंटू 16.04 को मिटाना और पुनर्स्थापित करना है ।
विनयुनुच्स 2 यूनिक्स

2

आप टर्मिनल का उपयोग करके ऐसा कर सकते हैं sudo apt-get -y upgrade। यह सभी संकेतों के लिए "हां" का जवाब देगा। हालांकि, यह स्वचालित रूप से नहीं चलेगा, इसलिए आपको इसे चलाना होगा। यह काम करना चाहिए । AFAIK जीयूआई अद्यतन प्रबंधक का उपयोग करने का कोई तरीका नहीं है ताकि सॉफ्टवेयर को अपग्रेड किया जा सके ( यह रिलीज़ अपग्रेड के रूप में नहीं है! )

यदि आप एक अलग उबंटू संस्करण (उर्फ एक रिलीज अपग्रेड , और आमतौर पर अगली रिलीज उबंटू के अपने संस्करण के सापेक्ष जारी करने की कोशिश कर रहे हैं) को अपग्रेड करने की कोशिश कर रहे हैं , तो आपको उसे स्वयं सक्रिय करना होगाsudo do-release-upgradeकाम हो सकता है। हालांकि अतीत के संकेतों को छोड़ने का कोई तरीका नहीं है। यही कारण है कि आप उन्नयन शुरू करते हैं जब आप ऐसे संकेतों के लिए चारों ओर जा रहे हैं - संकेत होंगे।


1
"हालांकि पिछले संकेतों को छोड़ने का कोई तरीका नहीं है"। DistUpgradViewNonInteractive ध्वज के बारे में क्या? यह संकेतों को पूरा करता है।
ऑलिगॉफ्रेन

1
@oligofren थॉमस सही है क्योंकि -f DistUpgradeViewNonInteractiveझंडा पहले (Y/I/N/O/D/Z)संकेत पर स्क्रिप्ट को लॉक करने का कारण बनता है । मेरा उत्तर देखिये मैंने अभी पोस्ट किया है।
विनयुनुच्स

-4

-yविकल्प जोड़ने का प्रयास करें, apt-getलेकिन यह जान लें कि यह yसभी प्रश्नों का उत्तर देगा ।


1
मैं ग्राफिकल अपडेट मैनेजर का उपयोग कर रहा हूं, एप्ट-गेट का नहीं। मैं कंसोल में अपडेट कर सकता था, लेकिन मैंने सुना है कि 'एप-गेट डिस्ट-अपग्रेड' वर्षों में काम नहीं किया (रिलीज के बीच अपग्रेड करने के लिए), इसलिए कमांड 'एप-गेट' नहीं होगा।
दोपहर

@jdm apt-get dist-upgradeको ठीक काम करना चाहिए। तुम यहाँ कहाँ काम नहीं कर रहा है?
सेठ

3
@ सेठ apt-get dist-upgradeअब नहीं है और न ही कभी किसी ऑपरेटिंग सिस्टम में, अपने दम पर रिलीज़ अपग्रेड किया। देख लो man apt-getupgradeकेवल उन्‍नत संकुल जो बिना किसी संकुल के नये संस्थापित किये जा सकते हैं, या अनइंस्‍टॉल किये जा सकते हैं। dist-upgradeउन्नयन पैकेज तब भी जब इसका मतलब है कि संकुल हटाए गए या जोड़े गए। यह साधारण अपडेट करने के लिए मुख्य रूप से उपयोगी है - उदाहरण के लिए, upgradeगुठली को अपग्रेड नहीं करेगा।
एलिया कागन

2
बदल रहा है sources.listअगली फिल्म के अभिलेखागार के लिए बात करने के लिए और उसके बाद चल रहा apt-get dist-upgradeहोगा, अगर यह सफल होता है , एक रिलीज उन्नयन प्रदर्शन करते हैं। यह डेबियन में समर्थित है, हालांकि aptitude dist-upgradeइसकी अधिक उन्नत निर्भरता संकल्प के कारण इसके बजाय इसका उपयोग करने की सिफारिश की गई है । उबंटू में, ऐसा कुछ भी समर्थित नहीं है , हालांकि यह सफल हो सकता है। इसके बजाय, कमांड लाइन में बाद में रिलीज़ करने के लिए अपग्रेड करने के do-release-upgradeलिए उपयोग किया जाता है। यह उपयोगिता एक -yध्वज नहीं लेती है , इसलिए यह उत्तर एक नई रिलीज के लिए उन्नयन की स्थिति पर लागू नहीं होता है
एलिया कगन

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