सवाल "यम हटाने पायथन" के बाद सर्वर मिटा दिया [बंद]


आदेश देने के बाद एक आपदा बस मेरे पास हुई yum remove python और अब मैं सर्वर को अब बूट नहीं कर सकता।

यह कैसे हुआ: मैंने अपने CentOS 5 VPS पर yum के माध्यम से कुछ ऐप्स अपडेट करने का प्रयास किया और कमांड अजीब पायथन 2.4 त्रुटि के कारण विफल रहा था। मैंने देखा कि पाइथन का मेरा संस्करण पुराना था और मैंने इसे पहले हटाकर इसे पुनर्स्थापित करने का प्रयास किया, और इसलिए मैंने किया yum remove python

उसके बाद उसने मुझे निर्भरताओं को हटाने के बारे में कुछ पूछा और ऐसा कुछ भी नहीं दिख रहा था जिसे मैं याद कर सकता था इसलिए मैंने क्लिक किया Y

तो उसके बाद यह था कि मैं अब तक किसी भी आदेश को चलाने में असमर्थ था। मैंने भी कोशिश की cd /var/www लेकिन यह कुछ ऐसा कहा "command does not exist in /usr/bin"जब मैंने इस्तेमाल किया टैब फ़ोल्डर नेविगेशन सुझाव देखने के लिए, फ़ाइल संरचना अभी भी वहां प्रतीत होती है (कम से कम /var/www बिट जो मेरे लिए वास्तव में महत्वपूर्ण है)। इसके बाद मैंने वीपीएस को फिर से शुरू करने का प्रयास किया (तब से व्यवस्थापक पैनल से reboot आदेश काम नहीं किया) और अब यह अब बूट नहीं है।

अब मेरा सवाल है: इस तरह का एक आदेश इस तरह मेरे सर्वर को कैसे नष्ट कर सकता है?


62
2018-04-15 18:54


मूल


संयोग से, एपीटी-एपीटी काम हटाएं। मैंने अभी तक dpkg --remove dpkg की कोशिश नहीं की है। मुझे यकीन है कि यह वास्तव में बुरा है। - joshudson
आपके पास बैकअप है, है ना? - vasin1987
@joshudson मैं सिर्फ एक वीएम में एक डेबियन 8.4 लाइव सीडी फैला और कोशिश की। परिणाम: # dpkg --remove dpkg उगल देना dpkg: error processing dpkg (--remove): this is an essential package; it should not be removed। अगर मैं जोड़ता हूं --force-all डीपीकेजी की कमांड लाइन के लिए, dpkg चेतावनी के पूरे बंडल को थूकता है और खुद को हटाने के लिए आगे बढ़ता है, साथ ही साथ दो दर्जन अन्य पैकेजों को तोड़ने के साथ-साथ dpkg। एक वास्तविक प्रणाली पर, मुझे पूरा यकीन है कि आपको उस से ठीक होने में कुछ परेशानी होगी, लेकिन शायद आप सकता है (वहाँ थोड़ा जादू है .debरों); CentOS इस संबंध में समान हो सकता है या नहीं भी हो सकता है। - α CVn
@joshudson यह काम करता है क्योंकि जब आप कमांड जारी करते हैं तो स्मृति में एपीटी चलाने की एक प्रति होती है ... जैसे ही यह समाप्त हो जाता है (और प्रोग्राम समाप्त हो जाता है), आप अब एपीटी का उपयोग करने में सक्षम नहीं होंगे। - SnakeDoc
यम खुद को पाइथन में लागू किया गया है मेरा मानना ​​है ... तो पाइथन को हटाने से आपका पैर बहुत अच्छी तरह से शूट हो जाता है! - peufeu


जवाब:


मुझे ईमानदारी से खेद है: मैं दर्द को महसूस कर सकता हूं कि सर्वर को बूट करने योग्य / अनुपयोगी हो।

हालांकि, जब मैं इसे पढ़ रहा हूं तो मैं खो गया हूं:

उसके बाद उसने मुझे निर्भरताओं को हटाने के बारे में कुछ पूछा   ऐसा कुछ भी नहीं दिख रहा था जिसे मैं याद कर सकता था इसलिए मैंने क्लिक किया [वाई]

निश्चित रूप से हटाए गए पैकेजों की सूची निश्चित रूप से थी वास्तव में विशाल, के रूप में python आरएचईएल / सेंटोस का एक अनिवार्य हिस्सा है। तुम्हे करना चाहिए कभी नहीँ कुछ चेतावनी संदेश की पुष्टि करें जो आप वास्तव में नहीं समझते हैं।

सबसे अच्छी चीज जो आप कर सकते हैं, जैसा कि पहले से ही सुझाव दिया गया है, एक पुनर्प्राप्ति मीडिया (यानी: livecd) के माध्यम से बूट करना है, आवश्यक डेटा फ़ाइलों को निकालना है, और अपनी मशीन को एक नई CentOS रिलीज के साथ पुनर्स्थापित करना है (और CentOS 6 काफी पुराना है, मैं दृढ़ता से आपको CentOS 7 पर पुनर्जीवित करने का सुझाव देता है)।


67
2018-04-16 11:04



भविष्य के लिए: एलवीएम एलवी पर ओएस के साथ सर्वर बनाएं (जो आईएसटी आरएचईएल डिफ़ॉल्ट है)। सिस्टम को तोड़ने का मामूली मौका देने से पहले, स्नैपशॉट बनाएं। अगर यह वास्तव में सिस्टम को तोड़ देता है, तो आप मिनटों में स्नैपशॉट पर वापस जा सकते हैं। अन्यथा जब सब ठीक है तो आप स्नैपशॉट को हटा सकते हैं। unix.stackexchange.com/questions/18913। एनबी स्नैपशॉट बैकअप नहीं हैं। आपको अभी भी उन स्थितियों के लिए बैकअप की आवश्यकता है जहां स्नैपशॉट आपको सहेज नहीं सकता है। - nigel222
डेबियन / उबंटू पर, वह वसूली छवि (उदा। फिनिक्स) बूट कर सकता है, डीबूटस्ट्रैप, क्रोट और एपीटी-अप इंस्टॉल करने के साथ बेस सिस्टम को अनपैक कर सकता है। कोई विचार नहीं कि केंद्र / रेल के बराबर है। - Edheldil
CentOS 6 तक समर्थित है नवंबर 2020। अपग्रेड करने के लिए कोई भीड़ नहीं है (हालांकि 7 तक जाने के बहुत सारे फायदे हैं)। - psmears


वाकई, क्योंकि आपने कुछ किया है जिसे आप पूरी तरह समझ नहीं पाए। पायथन ओएस का एक अनिवार्य हिस्सा है और जिन चीजों को आप महत्वहीन मानते हैं वे बहुत महत्वपूर्ण हैं। बैकअप से बहाल करना।


जब आपने पायथन हटा दिया, yum आपको संकुलों की एक लंबी सूची दिखाती है जिसे हटा दिया जाएगा। इस सूची में इस तरह के आवश्यक हैं yum अपने आप, coreutils, net-tools और दूसरे। आपने यम की पुष्टि की है कि आप जानते हैं कि आप क्या कर रहे हैं और वैसे भी आगे बढ़ना चाहते हैं। इसका नतीजा एक गैर-कार्य प्रणाली है। यह आश्चर्यजनक नहीं होना चाहिए।

रिकॉर्ड के लिए, नए CentOS संस्करण पर यह अब और संभव नहीं है, क्योंकि कुछ संकुल अब सुरक्षित के रूप में चिह्नित हैं और हटाया नहीं जा सकता है, केवल पुनर्स्थापित या अपग्रेड किया गया है। और चूंकि CentOS 5 अब ईओएल है, फिर भी यह एक नए संस्करण में अपग्रेड करने का एक अच्छा समय है।


106
2018-04-15 19:23



हाहा अच्छी तरह से बढ़ी है (yum हटाने python == बस पूरी मशीन मिटाएं: डी)। क्या आप मानते हैं कि कम से कम उन फ़ाइलों को पुनर्स्थापित कर सकते हैं जो / var / www में हैं या यह पूरी तरह से foobard भी है? - tadoman
@tadoman: अगर आप किसी प्रकार की बचाव प्रणाली में बूट कर सकते हैं, तो आप डिस्क को माउंट करने और उस से डेटा पुनर्प्राप्त करने में सक्षम होंगे (यह होना चाहिए सब कॉन्फ़िगरेशन फ़ाइलों सहित आपके उपयोगकर्ता डेटा का)। अपने पर्यावरण में क्या संभव है चर्चा करने के लिए आपको अपने प्रदाता से संपर्क करना होगा। - Sven♦
@RussellBorogove: मैं इनमें से कोई भी नहीं कहता। yum निर्भरता ग्राफ को नीचे चलाकर काम करता है और यह सभी निर्भरताओं को संतुष्ट होने तक संकुल हटा देता है। यदि पैकेज ए पैकेज बी पर निर्भर करता है और पैकेज बी पैकेज सी पर निर्भर करता है, yum पैकेज बी को भी हटा देगा और बदले में, पैकेज ए को सभी निर्भरताओं को पूरा करने के लिए यदि आप पैकेज को हटाने का प्रयास करते हैं तो केंद्रीय पैकेज (जैसे python), इसके परिणामस्वरूप बड़ी संख्या में हटाए गए पैकेज हो सकते हैं जो प्रतीत होता है कि असंबंधित हैं। - Sven♦
@RussellBorogove: हाँ, बिल्कुल, हालांकि coreutils पर निर्भर नहीं है python सीधे CentOS 5 में, लेकिन एक या अधिक मध्यवर्ती पैकेज के माध्यम से - परिणाम वही है हालांकि: निष्कासन। - Sven♦
कोर्यूटिल्स में इंटरमीडिएट पैकेज की संख्या दो प्रतीत होती है। python -> cracklib -> pam -> coreutils  निर्भरता मौजूद है क्योंकि क्रैकलिब के लिए पाइथन बाइंडिंग हैं, पाम क्रैकलिब के साथ बनाया गया था, और वह सुम को पैम के साथ एकीकृत किया गया है। बेशक यह बहुत सारी महत्वपूर्ण चीजें भी ले ली, जैसे यम किसी और पैकेज को स्थापित करने के लिए ... - John Mahowald


आपने बिना कुछ किया परिणामों को पूरी तरह से समझना 

वह इंस्टॉल अपरिवर्तनीय है, Centos5 को पुनर्स्थापित करने के लिए बहुत सारे काम की आवश्यकता होगी। और यह एक बुरी योजना है क्योंकि

  1. CentOS 5 जीवन का अंत है, और इसलिए कोई अपडेट नहीं है। यह अतिरिक्त गंभीर है क्योंकि यह सार्वजनिक इंटरनेट पर एक वेबसर्वर सेवा सामग्री की तरह लगता है और आप इसे नियंत्रित करने के लिए पैनल ऐप्स का उपयोग करते हैं।
  2. CentOS> 5 आपको इस अद्यतन को करने और बॉक्स को मारने से रोक देगा। यह एक अच्छा एयरबैग है।
  3. CentOS 7 स्थान पर प्रमुख संस्करण उन्नयन का समर्थन करने का दावा करता है। मैंने इसका कभी भी उपयोग नहीं किया है, लेकिन रिलीज होने पर 7 से 8 तक कूदने में सक्षम होना बहुत अच्छा होगा। डेबियन के पास हमेशा के लिए यह था, लेकिन Redhat हमेशा प्रमुख संस्करण कूद के लिए एक पुनर्स्थापित की आवश्यकता है।

उपाय

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

ध्यान दें कि यह एडब्ल्यूएस का उपयोग करके मेरी विधि होगी। यदि आपका वीपीएस प्रदाता अलग-अलग वीएम में डिस्क संलग्न नहीं कर सकता है तो आपको योजना को ट्विक करना होगा।

कोई फर्क नहीं पड़ता कि आप क्या करते हैं, कृपया भविष्य में स्वचालित बैकअप सेट अप करने पर विचार करें। यह आपको नहीं बचाएगा, लेकिन यह कुछ हद तक वसूली करेगा। अभी आपको उस डिस्क पर डेटा को नए वर्किंग सर्वर में चाहिए। मौजूदा डिस्क को ढीला मत करो।


15
2018-04-16 21:31





यह कैसे हो सकता है? खैर, काफी सरल: अपने सर्वर के लिए महत्वपूर्ण भागों को हटाकर।

आपके लिए अगले चरण: एक ताजा ओएस फिर से तैनात करें और बैकअप से अपना डेटा बहाल करें।


9
2018-04-15 19:22



पैकेज को अनइंस्टॉल करना चाहिए कभी नहीं डेटा हटा दें। वास्तव में कुछ भी बहाल करने की आवश्यकता नहीं होनी चाहिए, जब तक कि कुछ पैकेज रखरखाव रॉयली खराब हो जाए। - Jörg W Mittag
यदि ओपी की सिफारिश की गई ताजा ओएस को पुनर्स्थापित करता है, तो डेटा और कॉन्फ़िगरेशन की बहाली सबसे निश्चित रूप से आवश्यक होगी। - EEAA
@ JörgWMittag मुझे लगता है कि आपने "बहाल" शब्द के उपयोग को गलत समझा होगा। ईईएए का मतलब है कि सिस्टम को फिर से कॉन्फ़िगर करना होगा और मौजूदा डेटा को नई मशीन पर कहीं भी रखा जाएगा। इसके लिए "पुनर्स्थापित करें" सबसे अच्छा शब्द नहीं हो सकता है, हालांकि मैं उस टुकड़े के लिए डेटाबेस पुनर्स्थापना कार्यक्षमता का उपयोग कर किसी को देख सकता था। - jpmc26
@ JörgWMittag ओह, उसका डेटा अभी भी, सबसे अधिक संभावना है। यह सिर्फ इतना है कि अपने सिस्टम के साथ गैर-कार्यात्मक के पास इसका उपयोग करने का कोई तरीका नहीं है। - Shadur


जैसा कि जेंटू में ड्रैगन 788 और अन्य टिप्पणियों में बताया गया है, डेवलपर्स भी एक सेट बनाए रखते हैं tinderbox ऐसे संकुल जो ओएस के कोर पैकेज के सेट के पूर्व-निर्मित, द्विआधारी संस्करण हैं, ऐसी स्थितियों के लिए। यदि आप कोर पैकेज खो देते हैं, तो आपको बस लाइवसीडी / डीवीडी पर बूट किया गया सिस्टम मिल जाता है, टूटे हुए सर्वर के ओएस ड्राइव को माउंट करता है और फाइल सिस्टम, अनमाउंट, रीबूट और टंडरबॉक्स पैकेज को अनपैक करता है, अगर यह सही तरीके से बूट हो जाता है, पैकेज को अपने सर्वर के चश्मे और कॉन्फ़िगरेशन पर वापस पुनर्निर्माण करें।

इसलिए, CentOS में कुछ ऐसा करने के लिए, मुझे लगता है कि आपको आरपीएम के सही संस्करणों को अनइंस्टॉल करने की आवश्यकता होगी, फिर एक लाइव सीडी / डीवीडी पर बूट करें, ओएस ड्राइव और क्रोट को माउंट करें (शायद ... यदि आप परिचित हैं कैसे उपयोग करें "--relocate"के लिए ध्वज आरपीएम, आपको chroot करने की आवश्यकता नहीं हो सकती है), फिर उन संकुल को पुनर्स्थापित करें, अनमाउंट करें और रीबूट करें।

बेशक, चूंकि सिस्टम को ठीक से रीबूट करने के बाद, पिछले महीने समाप्त होने के बाद से CentOS 5 का समर्थन समाप्त हो गया था, तो आप इसे वर्तमान संस्करण में अपडेट कर सकते हैं।

HTH।


4
2018-04-17 19:28





आप आमतौर पर इंस्टॉल मीडिया से बूट कर सकते हैं और फिर chroot कमांड चलाने या मौजूदा इंस्टॉलेशन में प्रवेश करने और फ़ाइलों को पुनर्प्राप्त करने या पैकेजों की पुनर्स्थापित करने के लिए।


0
2018-04-16 03:56



आप रूट निर्देशिका में घुसने में सक्षम नहीं होंगे, जिसमें / usr / bin, आदि में कोई उपयोगी बाइनरी नहीं है। यह मृत प्रणाली में बूट करने के समान परिणाम देगा। क्रोट भी जरूरी नहीं है क्योंकि एक बार आपके पास फाइल सिस्टम घुड़सवार हो जाने पर, आप उन फ़ाइलों को कॉपी कर सकते हैं जिन्हें आप / var / www से सहेजना चाहते हैं। - qris
निश्चित रूप से सच है, मैं Gentoo / Arch इंस्टॉल करने को याद कर रहा हूं जहां आमतौर पर कुछ उपयोगी बाइनरी उपलब्ध होती हैं। मैंने पहले सब कुछ अनइंस्टॉल नहीं किया है। ;) - dragon788