Ubuntu 14.04 LTS (भरोसेमंद तहर) में ia32-lib कैसे स्थापित करें


115

मैंने कल कल Ubuntu 14.04 (भरोसेमंद तहर) स्थापित किया। सब कुछ ठीक लगता है। लेकिन जब मैंने कुछ C कोड संकलित करने की कोशिश की, तो मुझे निम्नलिखित त्रुटि आई। ओएस 32-बिट आर्किटेक्चर समर्थन की कमी के कारण त्रुटि प्रतीत होती है। त्रुटि आउटपुट निम्नानुसार है:

/usr/bin/ld: i386 architecture of input file `./libsc.a(ftl_msg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_debug.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_str.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `./libsc.a(libsc_cfg_common.o)' is incompatible with i386:x86-64 output

मैं करने के लिए इस्तेमाल apt-get install ia32-libsजब मैं Ubuntu 12.04 (सटीक छिपकली) का उपयोग किया गया था। लेकिन मुझे पता है कि उबंटू ने १३.१० (सॉसी समन्दर) से ia32-lib को हटा दिया है। मैं इस समस्या को कैसे ठीक करुं?


उबंटू के लिए मल्टीकार जानकारी की जाँच करें। आप इसमें 32 बिट संस्करण स्थापित करने के लिए पैकेज नाम से i386 संलग्न कर सकते हैं।
टीईटीटी

1
मुझे वास्तव में यह समस्या है, मुझे Fortinet vpn क्लाइंट को चलाने के लिए ia32-libs की आवश्यकता है, यह पूरी तरह से 10.04 एलटीएस और 12.04 एलटीएस के तहत काम करता है। मैंने 'sudo apt-get install ia32-libs: i386' की कोशिश की, लेकिन काम नहीं करता, मैंने 'lib32z1 lib32ncurses5 lib32bz2-1.0' पैकेज भी स्थापित किए हैं, लेकिन वे काम नहीं करते।
जावाफोबिक

@javaPhobic मैं ubuntu12.04 (32bit) स्थापित करने का निर्णय लेता है। अपने प्रश्न के बारे में, मुझे कुछ उत्तर मिले हैं। वे मेरी चाबी नहीं हैं, लेकिन आपकी मदद कर सकते हैं। 1. आप साफ करने की कोशिश कर सकते हैं फिर अपना कोड बना सकते हैं। 2. आप पूरी तरह से ia32-lib को स्थापित करने का प्रयास कर सकते हैं, जैसे माइक टैंग का जवाब। 3. जब आप अपने कोड को कम्पास करते हैं, तो आप `` -m32` को जोड़ने का प्रयास कर सकते हैं, उदाहरण के लिए gcc -m32 helloworld.c:। सौभाग्य।
साइकोडर

यह वास्तव में सर्वर दोष पर होना चाहिए।
अस्फोटो

2
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि इसके बारे में पुस्तकालयों के लिए पुस्तकालयों का स्थान है। प्रोग्रामिंग के बारे में मूर्त रूप से , समाधान एक प्रोग्रामिंग विन्यास का अधिक होगा, न कि प्रोग्रामिंग का।
ब्रैडलीडॉटनेट

जवाबों:


140

आप 32-बिट लाइब्रेरी (ia32-libs में नहीं) स्थापित करने के लिए इसे आज़मा सकते हैं:

sudo  apt-get install program:i386

sudo dpkg --add-architecture i386 आवश्यकता हो सकती है (यदि आपने कभी ऐसा नहीं किया है)।


या यदि आप इसके बजाय पूरे ia32-lib को स्थापित करना चाहते हैं, तो निम्न क्रम आज़माएँ:

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs

पुनश्च: इस तरह, आप स्थापित कर सकते हैं ia32-libs। हालांकि, हम इसके बजाय 13.04 के स्रोत को जोड़ते हैं, इसलिए, कुछ अज्ञात समस्या हो सकती है। स्थापित करने के बाद ia32-libs, मैं तुम्हें दूर करने के लिए सलाह देते हैं ia32-libs-raring.listमें /etc/apt/sources.list.d, और sudo apt-get update


यदि आप Android SDK की निर्भरता को ठीक करना चाहते हैं, तो आप इस bellow की कोशिश कर सकते हैं:

sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1


3
E: पैकेज 'ia32-libs' का कोई स्थापना उम्मीदवार नहीं है
ThatAintWorking

2
मैं आर्काइव .ubuntu.com तक नहीं पहुंच सका। जबकि बहुत नहीं मिलाapt-get update । इसलिए मैंने पैकेज स्रोत को बदल दिया deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multi verse। अब यह काम कर रहा है।
टिम वू

3
रेरिंग संग्रह अब ubuntu संग्रह पर उपलब्ध नहीं है। मैंने सटीक संग्रह के लिए दुर्लभ संग्रह को बदल दिया। पैकेज ia32-libs अब स्थापित हो जाएगा।
मार्टिंज बर्गर

14.04 पर काम नहीं करता है। मेरे लिए काम करने वाला समाधान अलेक्सी का जवाब है।
joelparkerhenderson

1
दूसरी पंक्ति गूंज है "देब old-releases.ubuntu.com/ubuntu बेताब घूम मुख्य प्रतिबंधित ब्रह्मांड मल्टीवर्स"> /etc/apt/sources.list.d/ia32-libs-raring.list
Vigen

77

जीसीसी कई पुस्तकालय स्थापित करें।

sudo apt-get install gcc-multilib

2
14.04 में यह gcc-multilib मेटा पैकेज निकटतम निकटतम ड्रॉप-इन प्रतिस्थापन के लिए ia32-libs मेटा पैकेज है जो 12.04 में था जो मैंने अब तक का सामना किया है, लेकिन यह अभी भी पैकेज निर्भरता को संतुष्ट नहीं करता है जो स्पष्ट रूप से ia32-libs पर सेट हैं ।
Quickthyme

7
यह पर्याप्त नहीं बढ़ा सकते हैं। इसके libstdc++6-4.7-dev:i386लिए www.modern.ie
Tek

यह अभी भी उबंटू 16.04 पर काम करता है (लेकिन मुझे नहीं पता कि यह कैसे पूरा होता है)
पीटर

मुझे यह भी करना था:sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
माइक गॉडिन

56

सबसे अच्छा जवाब जो मैंने कभी देखा है कि उबंटू 64-बिट पर 32-बिट एप्लिकेशन कैसे चलाएं?

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./adb

2
यह मेरी अदब (क्लॉकवर्कमोड कार्बन / हीलियम से भरी) के साथ पूरी तरह से एक समस्या थी। उस उत्तर के लिए धन्यवाद जो मेरी समस्या के लिए हाजिर था (शायद ओपी समस्या नहीं, हालांकि ^ ^)। और वैसे भी, यह जवाब मुझे क्लीनर लगता है। कोई पिछला पिछला जुबां वर्जन रिपॉजिटरी लिंक नहीं जोड़ना, जो बाद में एक बड़ी गड़बड़ी पैदा करे, मुझे यकीन है ...
Dolanor

1
इसने मेरे लिए भी चाल चली, जहाँ मुझे अनहेल्दी मिला (और शायद ही कोई Google परिणाम भी मिले, इसलिए प्रार्थना करें कि यह अनुक्रमित हो जाए) "साझा पुस्तकालयों को लोड करते समय त्रुटि": libncurses.so.5 "। धन्यवाद!
होनोकी

उबंटू 14.04 के लिए शानदार जवाब, लेकिन 16.04 को काम नहीं करता
पीटर

29

मैं अंत में मिल गया! यहाँ मेरा रास्ता है, और मुझे आशा है कि यह आपकी मदद कर सकता है :)

sudo apt-get install libc6:i386
sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
rm /etc/apt/sources.list.d/ia32-libs-raring.list
apt-get update
exit
sudo apt-get install gcc-multilib

मुझे इसका कारण नहीं पता है कि मुझे इन्हें स्थापित करने की आवश्यकता क्यों है, लेकिन यह मेरे कंप्यूटर पर काम करता है। जब आप इन पैकेजों को स्थापित करना समाप्त करते हैं, तो यह कोशिश करने का समय है। अरे हां, मुझे आपको बताने की जरूरत है। इस बार जब आप अपना कोड संकलित करना चाहते हैं, तो आपको -m32बाद में जोड़ना चाहिए gcc, उदाहरण के लिए gcc -m32 -o hello helloworld.c:। बस make cleanऔर makeफिर। सौभाग्य मित्रों।

PS: मेरा वातावरण है: Ubuntu 14.04 64-बिट (भरोसेमंद तहर) और जीसीसी संस्करण 4.8.4। मैंने अपने ब्लॉग में इसका समाधान लिखा है, लेकिन यह चीनी में है :-) - ubuntu14.04 के तहत 32 बिट प्रोग्राम को कंपास कैसे करें


यह शायद किसी को भी वास्तव में ऐसा करने के लिए स्पष्ट है, लेकिन rm कथन में "/" न डालें।
कीफर

हां, यह मेरी भूल है। मैंने इसे अब ठीक कर दिया है। धन्यवाद ~ @keefer
साइकोडर

2
-1: जबकि यह काम करता है, यह वास्तव में बुरा अभ्यास है। इस AskUbuntu पोस्ट में बहुत बेहतर समाधान हैं जिन्हें पुराने रिपॉजिटरी स्थापित करने की आवश्यकता नहीं है। यह विधि केवल बहुत पुराने बाइनरी पैकेज के लिए आवश्यक होनी चाहिए। लेकिन जैसा कि आपके पास स्रोत कोड है, यह विधि वास्तव में उपयुक्त नहीं है।
jmiserez

रेरिंग संग्रह अब ubuntu संग्रह पर उपलब्ध नहीं है। मैंने सटीक संग्रह के लिए दुर्लभ संग्रह को बदल दिया। पैकेज ia32-libs अब स्थापित हो जाएगा।
झेन्या

-1 मेरे लिए भी। आपको 2 संस्करणों से आने वाली निर्भरता के साथ कई समस्याओं का सामना करना पड़ेगा। भले ही आपने बाद में रेयरिंग रेफरेंस को हटा दिया हो। @Jmiserez से पूरी तरह सहमत हैं।
डोलनोर

20

इन वैकल्पिक पुस्तकालयों ने मेरे लिए काम किया:

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

17

मुझे ऊपर जैसी ही समस्या थी और एक्लिप्स ने स्थापित करने का सुझाव दिया:

Hint: On 64-bit systems, make sure the 32-bit libraries are installed:   
   "sudo apt-get install ia32-libs"    
or on some systems,  
   "sudo apt-get install lib32z1"   

जब मैंने ia32-lib को स्थापित करने का प्रयास किया, तो उबंटू ने तीन अन्य पैकेजों को स्थापित करने का संकेत दिया:

$ sudo apt-get install ia32-libs  
Reading package lists... Done  
Building dependency tree         
Reading state information... Done  
Package ia32-libs is not available, but is referred to by another package.  
This may mean that the package is missing, has been obsoleted, or  
is only available from another source  
However the following packages replace it:  
  lib32z1 lib32ncurses5 lib32bz2-1.0  

E: Package 'ia32-libs' has no installation candidate  
$   
$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0    

Android Studio और intellij के साथ, मुझे libstdc ++ 6 का 32 बिट संस्करण भी स्थापित करना पड़ा:

sudo apt-get install lib32stdc++6

यह मेरे लिए समाधान लगता है, क्योंकि पैकेज ia32-libs अप्रचलित है, और यह काम करता है!
डेनियल सूजा

यह lib32z1अनमोल है
zjk

8

मेरे लिए, मुझे दौड़ना होगा

sudo dpkg --add-architecture i386

माइक टैंग का जवाब चलाने से पहले। अन्यथा, मैं ia32-lib स्थापित नहीं कर सकता।


4

64-बिट संस्करण के बजाय , प्रोग्राम के 32-बिट संस्करण को स्थापित करें

यह उन पैकेजों को स्थापित करने की तुलना में अधिक सुरक्षित है जो हाथ में वितरण के लिए अभिप्रेत नहीं हैं।

मुझे यह सुझाव Ubuntu 14.04 के लिए Google धरती स्थापना निर्देशों से मिला । Google धरती ia32-libs64-बिट Ubuntu 12.04 के तहत नियोजित करती थी।

वेबपद का उद्धरण करते हुए ।.org :

Ia32-libs पैकेज उबंटू में उपलब्ध नहीं है, उबंटू 13.10 से शुरू होता है। पैकेज को मल्टीकार सपोर्ट द्वारा अलग कर दिया गया था, इसलिए आपको इसकी आवश्यकता नहीं है, लेकिन कुछ 64 बिट पैकेज (जो वास्तव में 32 बिट अनुप्रयोग हैं) अभी भी इस पैकेज पर निर्भर करते हैं और इस वजह से, उन्हें Ubuntu 14.04 या 13.10 में स्थापित नहीं किया जा सकता है, 64 बिट। [...]

"फिक्स" या अधिक विशेष रूप से इन एप्स को स्थापित करने का सही तरीका जो ia32-libs पर निर्भर करता है, बस उबंटू 64 बिट पर 32 बिट पैकेज स्थापित करना है। बेशक, यह काफी कुछ 32 बिट पैकेज स्थापित करेगा, लेकिन यह है कि मल्टीकार कैसे काम करता है।

कुछ कार्यक्रमों (जैसे Google अर्थ) के साथ समस्या यह है कि 32-बिट पैकेज मल्टीकार का समर्थन नहीं करता है। नतीजतन, उबंटू 64-बिट पर चलने वाले प्रोग्राम के 32-बिट संस्करण को बनाने के लिए कुछ 32-बिट निर्भरता को मैन्युअल रूप से स्थापित करने की आवश्यकता है।

sudo dpkg --add-architecture i386 # only needed once
sudo apt-get update
sudo apt-get install libfontconfig1:i386 libx11-6:i386 libxrender1:i386 libxext6:i386 libgl1-mesa-glx:i386 libglu1-mesa:i386 libglib2.0-0:i386 libsm6:i386

2
sudo -i
cd /etc/apt/sources.list.d
echo "deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
rm /etc/apt/sources.list.d/ia32-libs-raring.list
apt-get update
exit

यदि आप चीन में हैं, तो आप "रेयरिंग" को "सटीक" ( Ubuntu 13.04 (रेयरिंग रिंगटोन) और Ubuntu 12.04 LTS (सटीक पैंगोलिन) के लिए क्रमशः संशोधित कर सकते हैं)। मैंने Ubuntu 14.04 (भरोसेमंद तहर) की तुलना में परे स्थापित किया ।


1

समस्या यह है कि कई मामलों में पैकेज पहले से ही मल्टीकोर हैं इसलिए i386 पैकेज उपलब्ध नहीं है, लेकिन अन्य पैकेज अभी भी केवल i386 पैकेज पर निर्भर हैं। यह रिपॉजिटरी में एक समस्या है, और रेपो के प्रबंधकों को इसे ठीक करना चाहिए


0

एक समाधान आपके रिपॉजिटरी में संबंधित डेबियन पैकेज तरीका जोड़ देता है। इसके लिए, नीचे दिए गए कमांड टाइप करें:

echo "deb ftp.us.debian.org/debian wheezy main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install ia32-libs-i386

पहली पंक्ति sources.listपैकेज तरीके से फाइल के अंत में लिखती है । यह मेरे लिए काम करता है। काश कि आपकी मदद हो।


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