Gentoo लिनक्स को उन्नत करने के लिए इष्टतम प्रक्रिया?


23

यह है कि मैं लंबे समय से जेंटू को अपग्रेड कर रहा हूं। क्या यह अनुशंसित विधि है? किसी भी gotchas या उपयोग करने के लिए बेहतर तरीके?

emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all

6
मैं -N फ्लैग को व्यक्तिगत रूप से जोड़ता हूं
टॉम रिटर

2
--tree (-t) यह समझने के लिए भी उपयोगी है कि क्या चल रहा है
lkraav

जवाबों:


5

ऐसा लगता है कि आपने इसे कवर कर लिया है। केवल एक अन्य टिप शायद यह एक अंधे थोक अद्यतन की तुलना में थोड़ा धीमा है। आप हमेशा पैकेज या निर्भरता श्रृंखला को व्यक्तिगत रूप से अपडेट कर सकते हैं emerge -DNuav <atom>बजाय world(उदाहरण के लिए - जिन चीजों को आप विश्व फ़ाइल में जोड़ना नहीं चाहते हैं, उदाहरण के लिए सिस्टम लिबास की तरह)।

ध्यान दें कि यह करना हमेशा आसान होता है यदि आप हर दो महीने में अखंड बैच अपडेट के बजाय नियमित रूप से अद्यतित रहते हैं। इसके अलावा, बहुत अधिक आश्चर्य से बचने के लिए, आपको मेलिंग सूचियों में से एक की सदस्यता लेने में मदद मिल सकती है, जैसे gentoo-user(चेतावनी: ~ इस सूची में एक दिन में 100 मेल) क्योंकि बहुत अधिक किसी भी प्रमुख अद्यतन के साथ सूची में दिखाने की संभावना है कैसे उन्हें हल करने के लिए चर्चा के बहुत सारे।

मुझे लगता है कि अगले प्रमुख "समस्या" अपडेट को एक बार स्थिर होने पर ओपनकॉग पर माइग्रेशन होगा (यह पिछले साल के ~ आर्क मिडिल पर किया गया था, केवल कुछ मुद्दों के साथ, मुख्य रूप से नेटवर्किंग परिवर्तनों के साथ)।


2
हां, निश्चित रूप से विशाल चंक्स के बजाय नियमित रूप से अद्यतित रहने पर +1। कभी-कभी ऐसे परिवर्तन होते हैं जो बहुत कुछ तोड़ देते हैं। github.com/lkraav/gentoo-cron-weekly मेरा सरलीकृत साप्ताहिक रिपोर्टिंग टूलसेट है।
lkraav

8

मैं आपको छोड़कर केवल उन्हीं चरणों का उपयोग कर रहा हूं:

  • eix-syncइसके बजाय emerge --syncमुझे पोर्टेज ट्री में बदलाव देखना पसंद है। यह विशेष रूप से उन नोटिंग पैकेजों के लिए अच्छा है जिन्हें मैं ट्री में नया स्थापित करना चाहता हूं।

  • layman -S (कभी-कभी) ओवरले में किसी भी परिवर्तन को सिंक करने के लिए मुख्य उभरने से पहले।

  • eclean-dist -dबाद revdep-rebuildसाफ टारबॉल साफ करने के लिए। मैं हर उभरने के बाद ऐसा करता हूं, क्योंकि पैकेज डाउनग्रेड वह सामान्य नहीं है।

  • eix-test-obsoleteमेरे / etc / portage फ़ाइलों को चुस्त और अद्यतित रखने में मदद करने के लिए अंतिम चरण के रूप में। इससे मुझे यह भी पता चल जाता है कि जब मैंने ऐसे पैकेज स्थापित किए हैं जो पूरी तरह से पोर्टेज से हटा दिए गए हैं, तो मुझे रिपॉजिटरी से पुनर्निर्माण प्राप्त करने की आवश्यकता है। एक हालिया उदाहरण, मुझे अपने Xen VPS पर चलने वाले पुराने कर्नेल के कारण iproute2> 2.6.22.20070710 के सभी संस्करणों को मास्क करना है लेकिन इसे हाल ही में पोर्टेज से हटा दिया गया था।

eix-syncऔर eix-test-obsoleteऐप-पोर्टेज / ईएक्सएक्स में हैं।

eclean-dist ऐप-पोर्टेज / जेंटूलकिट में है।


ई-सिंक के लिए +1
टिम

5
  1. emerge --syncया eix-syncया emerge-delta-webrsyncऔरeix-update
  2. emerge -av portage
  3. eclean-dist

जाँच करें कि linux-headers, glibc, binutils, libtool या gcc में से एक में magor अपडेट है (उदाहरण 4.6 से 4.8 तक gcc अपडेट)। यदि यह चरण 11 में नहीं जाता है।

पूर्ण पुनर्निर्माण:

  1. rm -rf PKGDIR/* अपने पैकेज के साथ PKGDIR बदलें dir!
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> नए gcc पर जाएँ
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

यदि आपको चरण 10 या 11 पर कोई समस्या है, तो इसे ठीक करें और पुनः प्रयास करें

अद्यतन दुनिया:

  1. अपनी दुनिया की फाइल /var/lib/portage/worldको अनावश्यक पैकेज से साफ करें और /etc/portageसंस्थाओं की जांच करें
  2. fixpackages
  3. emerge -avuDN world
  4. eselect python update
  5. python-updater -- -av
  6. perl-cleaner --all -- -av
  7. emerge -a --depclean
  8. revdep-rebuild -i -- -av

यदि आपको चरण 14-18 में कोई परेशानी है, तो इसे ठीक करें और चरण 13 से सभी चरणों को दोहराएं

  1. etc-update या dispatch-conf
  2. glsa-check -vp affected आप अपडेट के बाद स्लॉट में पैकेज को प्रभावित कर सकते हैं
  3. emaint --check all

3

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

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


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

1
तीन बहुत हाल की रुकावटें / टूटना मैं सोच सकता हूं कि लिबेकमर / e2fsprogs, firefox2 / 3 और xorg 1.3 / 1.5 हैं। उन सभी मामलों में इसे थोक अद्यतन कार्य करने के लिए गैर-तुच्छ मालिश किया गया, और इसमें कोई ~ कीवर्ड शामिल नहीं थे।
एडम डी 'एमिको

2
पोर्टेज के नवीनतम संस्करण - पिछले 6 महीनों के भीतर कहते हैं - स्वचालित रूप से लगभग सभी ब्लॉक और ब्रेक को हल करते हैं। लिबेकमर / e2fsprogs सहित।
डेन कार्ली

3
glsa-check -t all
glsa-check -f all

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

ओह और मैं सीएफजी-अपडेट पसंद करता हूं;)


1

मैं यह करता हूं:

emerge --sync         //Synchronize the package manager with the latest 
                      //version of each package.


emerge -aDvNu system  //updates the system, but only important if you want the
                      //latest stable version of the actual compiler and libraries
                      //with the core system.

emerge -uDNav world   //world means everything we've asked to be emerged before
                      //this does not include things that came pre installed.
                      //N means if you change your use directives in 
                      //your make.conf file to pull in the new packages.

emerge -av depclean   //removes libraries or programs that don't have any other 
                      //dependencies because of an update.


revdep-rebuild        //means if something is broken by an update, it 
                      //recompiles it.  Fixes dynamic and static linking problems.

यदि आप टिप्पणियों को पूरी तरह से नहीं समझते हैं, तो इसे पढ़ें क्योंकि यह आपके जेंटू पैकेजों को अपडेट करने का अधिकार है।

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1


0

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


0

लंबे समय तक अब मैंने हमेशा इस प्रक्रिया का उपयोग किया है:

emerge -f --update --newuse --deep world && emerge --update --newuse --deep world

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

शायद - Theewewuse स्विच अप्राकृतिक है, लेकिन मैं अक्सर अपने मेक.कॉन्फ़ का संपादन कर रहा हूँ, इसलिए यह मेरे लिए समझ में आता है।


आप "--newuse" के बजाय "--reinstall बदले-उपयोग" का उपयोग कर सकते हैं, यह उन उपयोग फ़्लैग के पैकेजों को पुनर्स्थापित करता है जिन्हें आपने स्पष्ट रूप से बदल दिया है। आद्योपांत, जोड़े गए झंडों आदि के बजाय आपको समय-समय पर "--newuse" के साथ चलना चाहिए।
२०:२०

0

ठीक लग रहा है, हालांकि मैं डिप्लीन चलाने के लिए इतनी जल्दी नहीं होगा।

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


0

यही कारण है कि मैं इसे अपने VPS पर करता हूं:

चरण 0 (से / आदि / crontab)

0 0   * * *     root    emerge --sync &> /dev/null

चरण 1:

emerge --update --deep --newuse world -av

चरण 2:

emerge --depclean && revdep-rebuild && eclean-pkg && rm /usr/portage/distfiles/*
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.