32-बिट मशीन पर 64-बिट .deb फ़ाइल कैसे स्थापित करें?


17

मेरे पास उबंटू 14.04 है। मैंने हाल ही में Viber डाउनलोड किया है । Viber .deb फ़ाइल में 64-बिट आर्किटेक्चर है। मैं इसे अपने कंप्यूटर पर स्थापित करना चाहता हूं, लेकिन मेरा कंप्यूटर केवल 32-बिट का समर्थन करता है।

चलने lscpuका आउटपुट निम्नानुसार है:

Architecture: i686
CPU op-mode(s): 32-bit, 64-bit 
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1 
Core(s) per socket: 2 
Socket(s): 1 
Vendor ID: GenuineIntel 
CPU family: 6 
Model: 23 
Stepping: 10 
CPU MHz: 2800.000 
BogoMIPS: 5586.12 
Virtualization: VT-x 
L1d cache: 32K 
L1i cache: 32K 
L2 cache: 2048K

3
आप यह कैसे सुनिश्चित कर सकते हैं कि यह 64-बिट का समर्थन नहीं करता है? यदि आपको 64-बिट प्रोग्राम चलाना है तो आपको 64-बिट OS स्थापित करना होगा।
मुरु

मैंने सुना है कि कुछ सॉफ्टवेयर्स उस काम को करते हैं ... Thats मैं क्या पूछ रहा हूँ
एक उमर मुक्तार

आपको वीएम का उपयोग करना होगा: askubuntu.com/questions/180761/…
मूर

lscpuटर्मिनल में रनिंग का आउटपुट क्या है ?
α atsнιη

7
हाँ, आपके सिस्टम है 64-बिट सक्षम है, और आप चाहिए , जितना जल्दी अवसर मिले इसे पुनः स्थापित क्योंकि आप इस समस्या में फिर से चलेंगे और यह और भी बाद में से निपटने के लिए दर्दनाक हो जाएगा।
माइकल हैम्पटन

जवाबों:


22

बशर्ते आपका हार्डवेयर 64-बिट्स का समर्थन करता है, जो:

CPU ऑप-मोड (s): 32-बिट, 64-बिट

और पैकेज को मल्टीकार का उपयोग करने के लिए तैयार किया गया था, जो सच भी है:

 dpkg -I viber.deb
 new debian package, version 2.0. <--- here
 size 57046082 bytes: control archive=8024 bytes.
       0 bytes,     0 lines      0                    
    1210 bytes,    29 lines      control              
    9475 bytes,    33 lines   *  copyright            
    7404 bytes,    85 lines      md5sums              
      39 bytes,     2 lines   *  postinst             #!/bin/bash
     800 bytes,    35 lines   *  preinst              #!/bin/bash
     500 bytes,    24 lines   *  prerm                #!/bin/bash
 Package: viber
 Version: 4.2.2.6
 Section: non-free/net
 Priority: extra
 Architecture: amd64 <---- and here

आप आवश्यक 64-बिट लाइब्रेरी और बायनेरिज़ को स्थापित कर सकते हैं जो पैकेज की निर्भरता है (जो कि बाद में इसके बारे में अधिक नहीं है), जिसे आपको आभासी शून्य प्रदर्शन प्रभाव के साथ आवेदन चलाने की आवश्यकता है। मेरे मामले में, मैंने अभी-अभी पैकेज स्थापित किया है:

$ sudo dpkg --add-architecture amd64
## adding 64-bits architecture package, in my system I didn't need to
## but it's likely you have
$ sudo apt-get update # this downloads the package list for amd64 arch
$ sudo dpkg -i viber.deb
Selecting previously unselected package viber.
(Reading database ... 268703 files and directories currently installed.)
Preparing to unpack viber.deb ...
Unpacking viber (4.2.2.6) ...
Setting up viber (4.2.2.6) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for mime-support (3.56) ...
Processing triggers for desktop-file-utils (0.22-1) ...

और फिर समस्याओं में भागना शुरू कर दिया ...

पैकेज प्रबंधकों ने फैसला किया कि उन्हें अपने पैकेज के लिए किसी भी निर्भरता की सूची नहीं देनी चाहिए,

 Installed-Size: 141336
 Conflicts: Viber (<< 4.2.2.6)
 Replaces: Viber (<< 4.2.2.6)
 Maintainer: Viber Media Inc <support@viber.com>

जो उन्हें वास्तव में चाहिए:

ldd /opt/viber/Viber | grep 'not found'
    libXcomposite.so.1 => not found
    libxslt.so.1 => not found
    libxml2.so.2 => not found
    libgstreamer-0.10.so.0 => not found
    libgstapp-0.10.so.0 => not found
    libgstbase-0.10.so.0 => not found
    libgstinterfaces-0.10.so.0 => not found
    libgstpbutils-0.10.so.0 => not found
    libgstvideo-0.10.so.0 => not found
    libsqlite3.so.0 => not found

इसलिए आपको मैन्युअल रूप से लापता पुस्तकालयों को खोजना और स्थापित करना होगा ! यदि आप सही उपकरण जानते हैं तो यह आसान है। apt-fileयहाँ काम आता है, यहां तक ​​कि http://packages.ubuntu.com कार्यक्षमता "पैकेज की सामग्री खोजें" भी ठीक आती है। लेकिन मैंने आगे बढ़कर उनकी खोज की:

ये फ़ाइलें पहले से ही मेरे सिस्टम में स्थापित हैं, आपको केवल पैकेज नाम की प्रतिलिपि बनाने की आवश्यकता है, जो कि बृहदान्त्र से पहले समाप्त होती है amd64। आपको पैकेज के नाम कॉपी करने चाहिए जैसे वे हैं:

dpkg -S $(ldd /opt/viber/Viber | awk '{print $3}' | grep -vP 'not|viber')
libc6:amd64: /lib/x86_64-linux-gnu/libpthread.so.0
libc6:amd64: /lib/x86_64-linux-gnu/libdl.so.2
libc6:amd64: /lib/x86_64-linux-gnu/librt.so.1
libstdc++6:amd64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libm.so.6
libgcc1:amd64: /lib/x86_64-linux-gnu/libgcc_s.so.1
libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6
libx11-6:amd64: /usr/lib/x86_64-linux-gnu/libX11.so.6
libxext6:amd64: /usr/lib/x86_64-linux-gnu/libXext.so.6
zlib1g:amd64: /lib/x86_64-linux-gnu/libz.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1
libxrender1:amd64: /usr/lib/x86_64-linux-gnu/libXrender.so.1
libglib2.0-0:amd64: /lib/x86_64-linux-gnu/libglib-2.0.so.0
libglib2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
libxcb1:amd64: /usr/lib/x86_64-linux-gnu/libxcb.so.1
libglapi-mesa:amd64: /usr/lib/x86_64-linux-gnu/libglapi.so.0
libxdamage1:amd64: /usr/lib/x86_64-linux-gnu/libXdamage.so.1
libxfixes3:amd64: /usr/lib/x86_64-linux-gnu/libXfixes.so.3
libx11-xcb1:amd64: /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
libxcb-glx0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0
libxcb-dri2-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0
libxcb-dri3-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0
libxcb-present0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-present.so.0
libxcb-sync1:amd64: /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1
libxshmfence1:amd64: /usr/lib/x86_64-linux-gnu/libxshmfence.so.1
libxxf86vm1:amd64: /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
libdrm2:amd64: /usr/lib/x86_64-linux-gnu/libdrm.so.2
libpcre3:amd64: /lib/x86_64-linux-gnu/libpcre.so.3
libffi6:amd64: /usr/lib/x86_64-linux-gnu/libffi.so.6
libxau6:amd64: /usr/lib/x86_64-linux-gnu/libXau.so.6
libxdmcp6:amd64: /usr/lib/x86_64-linux-gnu/libXdmcp.so.6

ये मैंने उन्हें स्थापित नहीं किया था, जो मैंने उपयोग किया था ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/':

$ ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstapp-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstinterfaces-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstpbutils-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstvideo-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
libsqlite3-0:amd64: /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
libxcomposite1:amd64: /usr/lib/x86_64-linux-gnu/libXcomposite.so.1
libxml2:amd64: /usr/lib/x86_64-linux-gnu/libxml2.so.2
libxslt1.1:amd64: /usr/lib/x86_64-linux-gnu/libxslt.so.1

apt-fileमुझे 64-बिट पैकेज देने के लिए चिढ़ता था इसलिए मुझे sudo apt-file -a amd64 update64-बिट फ़ाइल सूची के लिए बाध्य करने के लिए करना पड़ा ।

अब, मैं समझाता हूं कि उपरोक्त सभी क्या है:

  • ldd /path/to/binary: एक बाइनरी पढ़ता है और आपको बताता है कि आवश्यक पुस्तकालय, प्रतीक आदि क्या हैं।
  • dpkg -S: खोज करें कि कौन सा संकुल एक विशिष्ट संस्थापित फ़ाइल प्रदान करता है।
  • awk, sedऔर grep: केवल दिलचस्प भागों को संसाधित करने या वांछित आउटपुट दिखाने के लिए पाठ स्ट्रीम को संशोधित कर रहे हैं।
  • |, $(...): पहले मुझे पाइप के लिए एक और के लिए एक आदेश के उत्पादन की अनुमति देता है, और बाद में मुझे निष्पादित करने के लिए अनुमति देता है / एक आदेश का मूल्यांकन मुख्य लोगों को मार डाला जाता है से पहले।

TL, डॉ। बस इन पैकेजों को स्थापित करें:

sudo dpkg --add-architecture amd64 ## adding 64-bits architecture package
sudo apt-get update
sudo apt-get install libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer0.10-0:amd64 libgstreamer0.10-0:amd64 libsqlite3-0:amd64 libxcomposite1:amd64 libxml2:amd64 libxslt1.1:amd64 libc6:amd64 libdrm2:amd64 libffi6:amd64 libgcc1:amd64 libgl1-mesa-glx:amd64 libglapi-mesa:amd64 libglib2.0-0:amd64 libpcre3:amd64 libstdc++6:amd64 libx11-6:amd64 libx11-xcb1:amd64 libxau6:amd64 libxcb1:amd64 libxcb-dri2-0:amd64 libxcb-dri3-0:amd64 libxcb-glx0:amd64 libxcb-present0:amd64 libxcb-sync1:amd64 libxdamage1:amd64 libxdmcp6:amd64 libxext6:amd64 libxfixes3:amd64 libxrender1:amd64 libxshmfence1:amd64 libxxf86vm1:amd64 zlib1g:amd64

आपको 64-बिट कर्नेल को भी इंस्टॉल करना होगा।


रूट @ umar: / home / umar / Desktop # sudo dpkg -i viber.deb dpkg: एरर प्रोसेसिंग आर्काइव viber.deb (--install): पैकेज आर्किटेक्चर (amd64) सिस्टम से मेल नहीं खाता (i386) संसाधन प्रोसेस करते समय सामने आए थे: viber.deb
बजे उमर मुक्तार

@ आवरमुकथर sudo dpkg --add-architecture amd64
Braiam

मैंने आपकी आज्ञा का प्रयास किया। आगे कोई प्रगति नहीं
उमर मुक्तार

2
"संभावित है कि आपको 64-बिट कर्नेल को भी स्थापित करने की आवश्यकता है।" - यह संभावित नहीं है, यह 100% निश्चित है। एक 32 बिट कर्नेल में 64 प्रक्रिया वाले वातावरण को सेट करने के लिए सिर्फ इतना ही नहीं होता है।
Mat


11

एक सॉफ्टवेयर स्थापित करना संभव नहीं है जो 32 बिट ओएस पर केवल 64 बिट आर्क का समर्थन करता है जबकि रिवर्स सच है। 64 बिट सॉफ़्टवेयर स्थापित करने के लिए आपको एक हार्डवेयर की आवश्यकता होगी जो 64 बिट का समर्थन करता है और इसके शीर्ष पर 64 बिट ओएस चल रहा है।

इसके अलावा, मैं यह उल्लेख करना चाहूंगा कि हार्डवेयर पर वर्चुअल मशीन के रूप में 64 बिट ओएस स्थापित करना संभव नहीं है जो केवल 32 बिट आर्किटेक्चर का समर्थन करता है। 64 बिट वर्चुअल मशीन बनाने के लिए आपके हार्डवेयर को वर्चुअलाइजेशन समर्थन के साथ 64 बिट आर्किटेक्चर का समर्थन करना चाहिए।


1
आप 32 बिट मशीन पर 64 बिट vm स्थापित कर सकते हैं जैसे आप किसी भी आर्किटेक्चर में से किसी एक को स्थापित कर सकते हैं, उदाहरण के लिए qemu को देखें। ध्यान दें, लेकिन यह असाधारण रूप से धीमा होगा।
वैलेटी

@Vality आपका जवाब अच्छा लग रहा है। क्या आप उत्तर को और बेहतर बना सकते हैं।
एक उमर मुख्तार

@AmarMukthar कि मैं बिल्कुल काम? अगर इसमें अभी भी कमी है तो कृपया टिप्पणी करें और मैं देखूंगा कि क्या मैं इसमें सुधार कर सकता हूं।
वैलिटी

10

मेरा कहना है कि आप इसके बारे में सच नहीं हैं

मेरा कंप्यूटर केवल 32-बिट का समर्थन करता है

lscpuअपने Ubuntu संस्करण को चलाने के आउटपुट के अनुसार जो 32 बिट स्थापित है, जबकि आपका सिस्टम 64 बिट एप्लिकेशन का समर्थन कर सकता है यदि आप 64 बिट एप्लिकेशन इंस्टॉल करना चाहते हैं तो आपको उबंटू ओएस 64 बिट स्थापित करना होगा। इस लाइनों को नीचे देखें:

Architecture: i686              # <-- your kernel is 32 bit (32 bit Ubuntu)
CPU op-mode(s): 32-bit, 64-bit  # <-- your cpu can handle 32 or 64 bit instructions
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1 
Core(s) per socket: 2 
Socket(s): 1 
Vendor ID: GenuineIntel 
CPU family: 6 
Model: 23 
Stepping: 10 
CPU MHz: 2800.000 
BogoMIPS: 5586.12 
Virtualization: VT-x 
L1d cache: 32K 
L1i cache: 32K 
L2 cache: 2048K

64 बिट Ubuntu 14.04.1 को डाउनलोड और इंस्टॉल करें और फिर Viber को भी इंस्टॉल करें ।


यह ठीक है अगर मैं ऐसा करता हूं तो मैं अभी तक स्थापित अन्य अनुप्रयोगों को नुकसान पहुंचाऊंगा .. इसलिए मैं केवल एक समाधान खोज रहा हूं। आपकी जानकारी के लिए कोई भी धन्यवाद। आपके प्रयासों के लिए +1
एक उमर मुक्तार

10

आप 32 बिट हार्डवेयर के साथ निर्मित मशीन पर 64 बिट सॉफ़्टवेयर स्थापित कर सकते हैं उसी तरह आप गतिशील अनुवाद का उपयोग करके x86 लक्ष्य पर एआरएम सॉफ़्टवेयर कह सकते हैं।

मूल रूप से, सॉफ्टवेयर का एक टुकड़ा जैसे कि क्यूमू कार्यक्रमों और आपके कंप्यूटर के बीच में बैठता है, एएमडी 64 निर्देश से x86 (शायद i686) सेट पर एक अनुवाद (एक बहुत ही गंभीर प्रदर्शन हिट के साथ) , जो आपके मामले में हो सकता है पूरी तरह से बचने योग्य)।

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

अब गाइड मुझसे यह बेहतर समझाता है, लेकिन संक्षेप में आपको qemu और qemu-kvm-extras-static पैकेज को स्थापित करने की आवश्यकता है, फिर अपने 64 बिट प्रोग्राम के लिए वातावरण और लाइब्रेरीज़ सेटअप करने के लिए qemu-debootstrap का उपयोग करें। तब आपको अपने प्रोग्राम को शायद पर्यावरण के अंदर चलाने के लिए binfmt_misc और स्थिर qemu दुभाषिया (qemu-arch-static, आपके मामले में शायद x86_64, x64 या AMF64) का उपयोग करने की आवश्यकता है।

ध्यान दें कि, आपका सीपीयू 64 बिट निर्देशों का समर्थन करता है, इसलिए आपके लिए 64 बिट ubuntu स्थापित करना संभव हो सकता है, आप बिना किसी अनुकरण के x86 कोड को AMD64 मशीन पर चला सकते हैं और यदि आप ऐसा करने में सक्षम हैं तो यह आसान हो सकता है, अगर दूसरी तरफ आप qemu और आर्किटेक्चर एमुलेशन की दुनिया की खोज करना चाहते हैं (बाद में हाथ आ सकता है अगर आपको कहने के लिए कोई प्रोग्राम बनाया जाए ... ARM जैसे कि एक फोन के लिए कुछ बनाया गया है) मैं आपको आगे बढ़ने की सलाह देता हूं लेकिन सावधान इससे पहले कि वे अच्छी तरह से काम करेंगे, चीजों को कभी-कभी थोड़ा फीका या डिबगिंग लगता है।


5
इस तरह का "डायनेमिक ट्रांसलेशन" वर्चुअलाइजेशन दर्द रहित रूप से धीमा होगा । और चूंकि उसके पास पहले से 64-बिट सिस्टम है, इसलिए केवल 64-बिट ओएस स्थापित करना सबसे अच्छा होगा।
माइकल हैम्पटन

@ मिचेल हैम्पटन मुझे पता है कि यह धीमी गति से होगा और वास्तव में यह नोट किया है कि, मैंने यह भी नोट किया है कि वह 64 बिट ओएस के साथ बेहतर हो सकता है, हालांकि मैं भी एक उत्तर देना चाहता था जो पूछे गए प्रश्न का उत्तर देगा।
वैलेटी

मुझे नहीं लगा कि "प्रदर्शन हिट" पर्याप्त रूप से बताता है कि यह कितना धीमा होगा। :)
माइकल हैम्पटन

@ मिचेल हैम्पटन ट्रू। अब खुश? ;)
वैलिटी

हां, अब मुझे यह पसंद है। :)
माइकल हैम्पटन

1

32 बिट (x86) और 64 बिट अनुप्रयोगों के बारे में पढ़ें:
http://www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm

कभी-कभी यह संभव है कि एक अनुप्रयोग या एकल पैकेज [एक .deb फ़ाइल] स्थापना के बाद दोनों के रूप में कार्य करें।
यानी, x86 app on x86 OSऔरx64 app on x64 OS


इसके अलावा यह संभव है स्थापित करें x86 application on x64 OS
α atsнιη

-1

यदि आप 32 बिट सिस्टम उपयोग चला रहे हैं

sudo dpkg --force-आर्किटेक्चर -i viber.deb

लिंक: उबंटू 13.10, 32 बिट पर Viber कैसे स्थापित करें


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