32-बिट रेपो के लिए मेरा 64-बिट सिस्टम क्यों दिखता है?


19

मैंने अपने लैपटॉप पर 64-बिट 12.10 इंस्टॉल किया है। एप-गेट अपडेट को चलाते समय, यह 32-बिट पैकेज (साथ ही स्रोत और 64-बिट पैकेज सूची) के लिए पैकेज सूचियों को डाउनलोड करता है। यह 64-बिट सिस्टम पर 32-बिट पैकेज सूची के लिए क्यों दिखता है? मैंने उन मदों में से एक को शामिल किया है जो नीचे खोजने की कोशिश करता है।

http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages

जवाबों:


28

भ्रामक, यह नहीं है? मुझे थोड़ा समझाने की।

क्यों?

  • 32-बिट सॉफ़्टवेयर 64-बिट सक्षम हार्डवेयर के साथ 64-बिट कर्नेल पर ठीक चलता है।
  • कुछ सॉफ्टवेयर अभी भी विशिष्ट 32-बिट पुस्तकालयों पर निर्भर हैं। यह अच्छा नहीं है, लेकिन कभी-कभी हमारे पास इसे बदलने की शक्ति नहीं होती है।
  • 32-बिट सॉफ़्टवेयर को निर्भरता को संतुष्ट करने के लिए सिस्टम के लिए उपलब्ध होना है, इसलिए यह 32-बिट रिपॉजिटरी का भी उपयोग करता है।

मैं 2011 की शुरुआत से हूँ। क्या हुआ?

11.10 से पहले उबंटू के 64-बिट संस्करणों में, आम 32-बिट पुस्तकालयों के कुछ सेटों ia32-libsको एपीटी / डीपीकेजी के प्रतिनिधित्व वाले एकल पैकेज में 64-बिट के रूप में और रिपॉजिटरी में ऐसे स्थान पर पैक किया गया था । यदि आपको किसी एप्लिकेशन के लिए एकल लाइब्रेरी की आवश्यकता होती है, तो यह 32-बिट लाइब्रेरी 1 के 150+ एमबी पर निर्भर करेगा । जाहिर है, यह एक अच्छा डिजाइन नहीं है।

कई आर्किटेक्चर?

नया विचार APT / Dpkg और इसके आस-पास के उपकरणों के लिए तथाकथित "मल्टीकार" क्षमताओं को पेश करना था। यह लॉन्चपैड पर कई ब्लूप्रिंट में प्रस्तुत किया गया था, उनमें से एक है । Oneiric (11.10) मल्टीकार का समर्थन करने वाली पहली रिलीज़ बनी।

यह कैसे काम करता है?

आप Dpkg को बता सकते हैं कि आपका सिस्टम किस आर्किटेक्चर को चलाने में सक्षम है। मेरे 12.04 64-बिट इंस्टॉलेशन पर, यह यहां है:

$ cat /etc/dpkg/dpkg.cfg.d/multiarch 
foreign-architecture i386

यह अभी भी डिफ़ॉल्ट होने के i386साथ संकुल की पूरी दुनिया को खोलता है amd64:

$ apt-cache show libqt4-core                   | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb

$ apt-cache show libqt4-core:i386              | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb

उपरोक्त उदाहरण से पता चलता है कि मल्टीचर्क पैकेज अनुचर को केवल उनके पैकेज libqt4-core:i386को उदाहरण के लिए निर्भर करने में सक्षम बनाता है , और किसी भी 32-बिट लाइब्रेरी / पैकेज को स्थापित करना संभव बनाता है (और इस प्रकार किसी भी पैकेज को स्थापित करने के लिए जो किसी भी 32-बिट लाइब्रेरी / पैकेज पर निर्भर करता है ) बल्कि एक निर्धारित सेट से।

ia32-libs अनुकूलता

यदि आप ia32-libsबुनियादी 32-बिट पुस्तकालयों के एक सामान्य सेट को स्थापित करने के लिए सुविधा पैकेज के रूप में पैकेज को स्थापित करने के लिए उपयोग किए गए थे , तो अब आप उपयोग कर सकते हैं । यह पुस्तकालयों के उसी (या कम से कम बहुत समान) सेट के आधार पर एक साधारण रूपक है, लेकिन इसे मल्टीकार की शक्ति के साथ स्थापित किया जाएगा।ia32-libs-multiarch Ia32-libs-multiarch स्थापित करें

आगे संबंधित पठन

1 ल्यूसिड (10.04) के लिए ia32-libsपैकेज स्थापित आकार 155,812.0 kB है।


5
मैं dpkg --print-foreign-architecturesकैटिंग के बजाय दौड़ने की सलाह देता हूं /etc/dpkg/dpkg.cfg.d/multiarch। यह 12.04 के बाद मौजूद नहीं है।
Tumbleweed

मैंने घर पर सिर्फ एपर्ट-मिरर सेटअप किया है और सिर्फ 64-बिट रेपो को मिरर करने की उम्मीद कर रहा था। यह दुर्भाग्यपूर्ण है कि मैं ऐसा नहीं कर सकता, लेकिन मैं समझता हूं कि अब क्यों और यह इस तरह से समझ में आता है। उत्तर स्वीकृत!
tgm4883

@ tgm4883 यदि आप वास्तव में amd64केवल चलाना चाहते हैं तो आप विदेशी आर्किटेक्चर कॉन्फ़िगरेशन को हटा सकते हैं । यह ia32-libsउपलब्ध बिना पुराने उबंटू को चलाने के समान है।
gertvdijk 17

1
मैंने पढ़ना शुरू किया और मेरे दिमाग में यह कहा: hmm gertvdijk से एक पोस्ट की तरह दिखता है: +) Goede पोस्ट;)
रिनजविंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.