FreeBSD पर पैकेज और पोर्ट के मिश्रण को कैसे अपडेट करें


18

मैं ज्यादातर FreeBSD पर पैकेज का उपयोग करता हूं, क्योंकि उनमें से ज्यादातर मेरे लिए ठीक हैं। हालांकि, कुछ मुझे सूट नहीं करते हैं, लेकिन vimपैकेज की तरह , जिसमें ग्राफिकल शामिल नहीं है gvim

कोई दिक्कत नहीं है। मैं विकल्प का उपयोग portmaster editors/vimऔर चयन करने के बजाय पोर्ट को स्थापित कर सकता हूं GTK2। यह ठीक काम करता है।

हालाँकि, जब मैं pkg upgradeथोड़ी देर बाद दौड़ता हूं, तो मुझे निम्नलिखित के साथ प्रस्तुत किया जाता है:

        Reinstalling vim-7.4.110_3 (options changed)

क्या देता है? मैंने कोई विकल्प नहीं बदला, और कोई नया संस्करण नहीं है (बंदरगाहों में भी नहीं है)। क्या यह मेरे स्थापित पोर्ट की तुलना दूरस्थ संस्करण के बिना कर रहा है GTK2?

बेशक मैं pkg upgradeइसके काम को करने दे सकता हूं और बाद में फिर से पोर्ट स्थापित कर सकता हूं , लेकिन यह बेवकूफी है। पैकेज और पोर्ट के मिश्रण को अपडेट करने का अनुशंसित तरीका क्या है?


pkg lockअनुशंसित समाधान का उपयोग कर रहा है? यह काम करता है, लेकिन मुझे उम्मीद है कि कुछ सरल होगा क्योंकि यह स्वचालित रूप से नियंत्रित किया जा सकता है।
रिकार्डो बाउरिंग

हां, इसके pkg lockलिए जो समाधान तैयार किया गया है: मैन पेज से: "पीपीके लॉक का उपयोग रीइंस्टॉलेशन, मॉडुलन या विलोपन के खिलाफ पैकेज लॉक करने के लिए किया जाता है।"
डेरेकसन

यह पद पुराना है। लेकिन मुझे बताया गया है कि मेरे पास अब तक वही समस्या है। मैंने FreeBSD फोरम से पूछा था "संकुल और बंदरगाहों का उपयोग एक ही समय में?" और एक सदस्य मुझे इंस्टॉलेशन अपडेट के लिए स्क्रिप्ट का उपयोग करने की सलाह देता है, जैसे उसने किया है। आप उसे उसके उत्तर में पा सकते हैं।
HL1234

जवाबों:


15

आपको यह याद रखने की आवश्यकता है कि pkgऔर पोर्ट उसी जगह (एक SQLite डेटाबेस /var/db/pkg) में स्थापित सॉफ़्टवेयर को पंजीकृत करते हैं । न तो सिस्टम किसी भी अतिरिक्त जानकारी को रिकॉर्ड करता है कि सॉफ्टवेयर का एक विशेष टुकड़ा पूर्व-संकलित पैकेज के रूप में, या पोर्ट के रूप में स्थापित किया गया था। इस प्रकार, एक बार सॉफ़्टवेयर का एक टुकड़ा या तो एप्रोच द्वारा स्थापित किया जाता है, तो टूल में यह जानने का कोई तरीका नहीं है कि यह कैसे स्थापित किया गया था।

जब आपने editors/vimपोर्ट के लिए GTK2 समर्थन का चयन किया था, जो पैकेज डेटाबेस में पंजीकृत था। जब आप बाद में भागे pkg upgrade, pkgतो पैकेज डेटा के लिए देखा vim, और पाया कि स्थापित संस्करण में GTK2 समर्थन सक्षम किया गया था, जबकि यह पूर्व-संकलित पैकेज में सक्षम नहीं है। pkg upgradeठीक वही कर रहा है जो इसे करना चाहिए - किसी भी स्थापित पैकेज को खोजना जो कि उपलब्ध पूर्व-संकलित पैकेज से अलग हैं, और उन्हें अपग्रेड करने का प्रयास कर रहे हैं। वे अंतर संस्करण संख्या, निर्भरता ग्राफ, संकलन-समय विकल्प आदि में हो सकते हैं।

pkgपोर्ट या पैकेज पर विचार करने से रोकने का उचित तरीका (एक बार स्थापित होने के बाद, कोई अंतर नहीं है, जहां तक ​​उपकरण चिंतित हैं) जिसे आप संरक्षित करना चाहते हैं वह pkg lockकमांड का उपयोग करना है ।

वैकल्पिक रूप से, यदि आप कई पोर्ट पर खुद को बदलते हुए विकल्प पाते हैं, तो आप poudriereअपने पैकेज रिपॉजिटरी को स्थापित करने और बनाए रखने पर विचार कर सकते हैं । यह सेट अप करने में थोड़ा सा लगता है, और सबसे अच्छा काम करता है यदि आपके बिल्ड होस्ट में ZFS स्टोरेज पूल है, हालाँकि यह तब काम करेगा जब आपके पास ZFS नहीं होगा; यह कस्टम सॉफ्टवेयर बिल्ड का प्रबंधन करने के लिए एक बहुत ही लचीला और सुविधाजनक तरीका है।

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