ฉันเพิ่งติดตั้ง CentOS 6 64 บิตฉันพยายามติดตั้งแอปพลิเคชั่น 32 บิตบนเครื่อง 64 บิตและได้รับข้อผิดพลาดนี้:
/lib/ld-linux.so.2: ล่าม ELF ไม่ดี: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันใหม่กับ linux ฉันจะแก้ไขปัญหานี้ได้อย่างไร
ฉันเพิ่งติดตั้ง CentOS 6 64 บิตฉันพยายามติดตั้งแอปพลิเคชั่น 32 บิตบนเครื่อง 64 บิตและได้รับข้อผิดพลาดนี้:
/lib/ld-linux.so.2: ล่าม ELF ไม่ดี: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันใหม่กับ linux ฉันจะแก้ไขปัญหานี้ได้อย่างไร
คำตอบ:
คุณใช้ระบบ 64 บิตและไม่ได้ติดตั้งการสนับสนุนไลบรารี 32 บิต
(ถ้าคุณไม่ใช้ sudo ในการตั้งค่าอ่านหมายเหตุด้านล่าง)
ระบบ Linux บนเดสก์ท็อปส่วนใหญ่ในตระกูล Fedora / Red Hat:
pkcon install glibc.i686
อาจเป็นไปได้ที่ระบบเดสก์ท็อปเดเบียน / อูบุนตู:
pkcon install ia32-libs
Fedora หรือ Red Hat ที่ใหม่กว่า CentOS:
sudo dnf install glibc.i686
เก่ากว่า RHEL, CentOS:
sudo yum install glibc.i686
แม้แต่ RHEL ที่เก่ากว่า CentOS:
sudo yum install glibc.i386
Debian หรือ Ubuntu:
sudo apt-get install ia32-libs
ควรคว้าไลบรารี่ที่คุณต้องการ
ทุกคนที่ต้องการติดตั้งglibc.i686
หรือglibc.i386
อาจพบเจอกับการพึ่งพาไลบรารีอื่น ๆ เช่นกัน ในการระบุแพ็คเกจที่มีไลบรารีที่กำหนดเองคุณสามารถใช้
ldd /usr/bin/YOURAPPHERE
หากคุณไม่แน่ใจว่ามันอยู่ใน/usr/bin
นั้นคุณสามารถถอยกลับมาได้
ldd $(which YOURAPPNAME)
ผลลัพธ์จะมีลักษณะดังนี้:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
ตรวจสอบไลบรารี่ที่หายไป (เช่นlibSM.so.6
ในเอาต์พุตด้านบน) และสำหรับแต่ละไฟล์ที่คุณต้องการค้นหาแพ็คเกจที่จัดให้
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
หรือบน RHEL ที่เก่ากว่า / CentOS:
yum provides /usr/lib/libSM.so.6
หรือบน Debian / Ubuntu:
ก่อนติดตั้งและดาวน์โหลดฐานข้อมูลสำหรับ apt-file
sudo apt-get install apt-file && apt-file update
จากนั้นค้นหาด้วย
apt-file find libSM.so.6
หมายเหตุเส้นทางคำนำหน้า/usr/lib
ในกรณี (ปกติ); ไม่ค่อยห้องสมุดบางส่วนยังคงมีชีวิตอยู่ภายใต้/lib
เหตุผลทางประวัติศาสตร์ ... บนระบบ 64 บิตทั่วไปห้องสมุด 32 บิตอาศัยอยู่ใน/usr/lib
และห้องสมุด 64 /usr/lib64
บิตอาศัยอยู่ใน
(Debian / Ubuntu จัดระเบียบไลบรารีหลายสถาปัตยกรรมแตกต่างกัน)
ข้างต้นควรให้ชื่อแพ็คเกจเช่น:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
ในตัวอย่างนี้ชื่อของแพคเกจที่เป็นlibSM
และชื่อของรุ่น 32 libSM.i686
บิตของแพคเกจคือ
จากนั้นคุณสามารถติดตั้งแพคเกจเพื่อคว้าไลบรารี่ที่จำเป็นโดยใช้pkcon
ใน GUI หรือsudo dnf/yum/apt-get
ตามความเหมาะสม…. pkcon install libSM.i686
เช่น หากจำเป็นคุณสามารถระบุเวอร์ชันได้อย่างสมบูรณ์ sudo dnf install ibSM-1.2.0-2.fc15.i686
เช่น
ห้องสมุดบางแห่งจะมีผู้ออกแบบ "ยุค" ก่อนที่ชื่อของพวกเขา; สามารถละเว้นได้ (ผู้ที่อยากรู้อยากเห็นสามารถอ่านบันทึกด้านล่าง)
อนึ่งปัญหาที่คุณเผชิญอยู่แสดงว่าฐานข้อมูล RPM (การตอบสนอง DPkg / DSelect) ของคุณเสียหายหรือแอปพลิเคชันที่คุณพยายามเรียกใช้ไม่ได้ติดตั้งผ่านตัวจัดการแพคเกจ หากคุณยังใหม่กับ Linux คุณอาจต้องการหลีกเลี่ยงการใช้ซอฟต์แวร์จากแหล่งอื่นนอกเหนือจากตัวจัดการแพ็คเกจของคุณทุกครั้งที่ทำได้
ชนิด
su -c
ทุกครั้งที่คุณเห็นsudo
เช่น
su -c dnf install glibc.i686
ตัวกำหนด“ ยุค” ก่อนชื่อเป็นสิ่งประดิษฐ์ของวิธีที่ไลบรารี RPM อ้างอิงจัดการกับหมายเลขเวอร์ชัน เช่น
2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo : fedora
Matched from:
Filename : /usr/lib/libpng.so.3
ที่นี่2:
สามารถละเว้น; เพียงหรือpkcon install libpng.i686
sudo dnf install libpng-1.2.46-1.fc16.i686
(มันหมายถึงบางสิ่งบางอย่างเช่น: บางครั้งหมายเลขเวอร์ชันของlibpng
แพ็คเกจย้อนกลับและ "ยุค" จะต้องเพิ่มขึ้นเพื่อให้แน่ใจว่าเวอร์ชั่นใหม่จะได้รับการพิจารณาว่าเป็น "รุ่นใหม่" ในระหว่างการอัปเดต .)
อัปเดตเพื่อให้ความกระจ่างและครอบคลุมตัวเลือกตัวจัดการแพคเกจต่าง ๆ อย่างเต็มที่ (March, 2016)
เพิ่งพบปัญหาเดียวกันกับเครื่อง CentOS 6.4 64 บิตที่ติดตั้งใหม่ คำสั่ง yum เดียวจะแก้ไขปัญหานี้บวก 99% ของปัญหาที่คล้ายกัน:
yum groupinstall "ไลบรารีที่เข้ากันได้"
ทั้งนำหน้าด้วย 'sudo' หรือเรียกใช้ในฐานะรูทแล้วแต่ว่าอะไรจะดีที่สุดสำหรับคุณ
โดยทั่วไปเมื่อคุณได้รับข้อผิดพลาดเช่นนี้ให้ทำ
yum provides ld-linux.so.2
แล้วคุณจะเห็นสิ่งที่ชอบ:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
จากนั้นคุณก็เรียกใช้สิ่งต่อไปนี้เช่น BRPocock wrote (ในกรณีที่คุณสงสัยว่าตรรกะคืออะไร ... ):
yum install glibc.i686
ลอง
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
หวังว่าจะล้างออก
แค่ต้องการเพิ่มความคิดเห็นใน BRPocock แต่ฉันไม่มีสิทธิ์เพียงพอ
ดังนั้นการมีส่วนร่วมของฉันคือสำหรับทุกคนที่พยายามติดตั้ง IBM Integration Toolkit จากชุด Integration Bus ของ IBM
เมื่อคุณพยายามเรียกใช้คำสั่ง "เครื่องมือจัดการการติดตั้ง" จากโฟลเดอร์ / Integration_Toolkit / IM_Linux (ไฟล์ที่จะเรียกใช้คือ "ติดตั้ง") คุณจะได้รับข้อผิดพลาดที่แสดงในโพสต์นี้
คำแนะนำเพิ่มเติมเพื่อแก้ไขปัญหานี้คุณจะพบในหน้าเว็บของ IBM นี้: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
หวังว่านี่จะช่วยให้ใครก็ตามที่พยายามติดตั้งนั้น
sudo yum ติดตั้ง fontconfig ฟรีแวร์ libfreetype.so.6 libfontconfig.so.1 libstdc ++. so.6
ฉันจะเพิ่มสำหรับ Debian คุณต้องการคอมไพเลอร์อย่างน้อยหนึ่งตัวในระบบ (ตามDebian Stretch และ Jessie 32-bit libraries )
ฉันติดตั้งapt-get install -y gcc-multilib
เพื่อให้สามารถเรียกใช้ไฟล์ปฏิบัติการแบบ 32 บิตในคอนเทนเนอร์ของนักเทียบท่าตามเดเบียน: เจสซี
คุณสามารถติดตั้ง OpenJDK 32-bit ( .i686
) แทน ตามการทดสอบของฉันมันจะถูกติดตั้งและทำงานได้อย่างไม่มีปัญหา
sudo yum install java-1.8.0-openjdk.i686
บันทึก:
Java-1.8.0-OpenJDKแพคเกจประกอบด้วยเพียง Java Runtime Environment หากคุณต้องการพัฒนาโปรแกรม Java ให้ติดตั้งแพคเกจjava-1.8.0-openjdk-devel
ดูที่นี่สำหรับรายละเอียดเพิ่มเติม