เกิดอะไรขึ้นกับแพ็คเกจ ia32-libs


104

ia32-libsแพคเกจจะไม่อยู่ใน Ubuntu 12.04 ที่เก็บสำหรับระบบ 64 บิต มีแพคเกจการแทนที่ใด ๆ ที่สามารถดาวน์โหลดได้หรือไม่



2
+1 ก็จะถามคำถามเดียวกันทุกประการ ดังนั้นมีข้อเสนอแนะคำถามที่ดีจริงๆ!
ulidtko

คำตอบ:


97

แพ็คเกจ ia32-libs เป็นแฮ็กเพื่อรับแพ็คเกจ 32- บิตที่ติดตั้งในการติดตั้ง 64- บิต ตั้งแต่ Ubuntu เวอร์ชั่น 11.10 (Oneiric) Multi Archถูกเพิ่มเข้ามา หนึ่งในวัตถุประสงค์ของมันคือการลบia32-libsแพ็กเกจ แต่คุณต้องติดตั้งไลบรารี 32- บิตของแพ็คเกจด้วย:

sudo apt-get install package-name:i386

คุณไม่ต้องกังวลกับสิ่งนี้สำหรับแพ็คเกจในที่เก็บมาตรฐาน (เช่นwineแพ็คเกจ) สำหรับซอฟต์แวร์ภายนอกมันค่อนข้างยากกว่านี้เพราะคุณต้องหาการพึ่งพาตนเอง ในกรณีดังกล่าวใช้เครื่องมือค้นหาที่คุณชื่นชอบเพื่อค้นหาไลบรารีที่คุณต้องการ

ดูเหมือนว่า ia32-libs ยังคงมีอยู่ แต่เป็นเพียงแพ็คเกจความสะดวกสบายในการรวมไลบรารี 32- บิตทั่วไป แพ็คเกจนี้ใช้ Multi Arch เพื่อติดตั้งแพ็คเกจ 32- บิตอย่างถูกต้อง


17
แล้วเราจะหาการพึ่งพาทั้งหมดและติดตั้งครั้งแรกได้อย่างไร: i386
user117

10
@wingman Run lddผ่านเส้นทางไปยังไบนารีเป็นอาร์กิวเมนต์ ถ้าผลการมีสายเช่นนั้นคุณจะต้องพบlibz.so.1 => not found libz.so.1คุณสามารถใช้packages.ubuntu.comหรือapt-file searchค้นหาแพ็คเกจที่มีไฟล์นั้น zlib1g:i386ในตัวอย่างที่ผมให้คุณจะต้องติดตั้ง
Lekensteyn

1
ฉันอยู่ในคอมพิวเตอร์ที่มี Ubuntu 10.10 ต่อไปนี้การสอนเกี่ยวกับการพัฒนา Android ฉันต้องติดตั้ง ia32-libs คำตอบของคุณพูดคุยเกี่ยวกับ 11.10 แต่สำหรับคอมพิวเตอร์เครื่องนี้ ฉันต้องทำอะไร
nkint

1
@nkint 10.10 ไม่รองรับอีกต่อไป หากคุณต้องการที่จะดำเนินการต่อคุณจำเป็นต้องเปลี่ยนแหล่งที่มาของแพคเกจ ใน 10.10 คุณต้องติดตั้ง ia32-libs แต่ถึงอย่างนั้นก็ไม่รับประกันว่า android SDK นั้นจะทำงานร่วมกับมันได้
Lekensteyn

1
@FelipeMicaroniLalli คุณต้องแทนที่package-nameด้วยชื่อจริง ใช้lddเพื่อคิดออกดูความคิดเห็นที่สองข้างต้น
Lekensteyn

43

Ubuntu 13.10

เกิดอะไรขึ้น?

แพคเกจได้ถูกแทนที่โดยสิ้นเชิงia32-libs lib32z1 lib32ncurses5 lib32bz2-1.0นี่ไม่ควรเป็นปัญหาเพราะฟังก์ชั่นการใช้งานยังอยู่ในแพ็คเกจอื่น ๆ อย่างไรก็ตามเราไม่ได้อยู่ในโลกในอุดมคติที่ทุกคนดูแลรักษาแพ็คเกจของตนและซอฟต์แวร์ทั้งหมดเป็น FLOSS ดังนั้นบางแพ็คเกจยังคงขึ้นอยู่กับ ia32-libs

ฉันจะติดตั้ง package xที่ขึ้นอยู่กับ ia32-libs ได้อย่างไร

มี 2 ​​วิธี:

  1. คุณสามารถทำการบรรจุใหม่ได้ด้วยตนเองดังนั้นจึงไม่ขึ้นอยู่กับia32-libsอีกต่อไป (ที่ต้องการ)
  2. คุณสามารถติดตั้ง ia32-libs จากที่เก็บ Ubuntu 13.04 (Raring Ringtail) ( ไม่ต้องการเลย! เฉพาะในกรณีที่วิธีแรกใช้ไม่ได้ )

1. บรรจุหีบห่อแพคเกจเก่า

ฉันจะใช้ตัวรับสัญญาณ Citrix เป็นตัวอย่าง แต่คุณสามารถใช้วิธีนี้สำหรับแพ็คเกจ. deb ใด ๆ :

ก่อนอื่นให้ดาวน์โหลดแพ็คเกจ Citrix receiver .deb จากเว็บไซต์ของพวกเขาและสร้างไดเรกทอรีชั่วคราวเพื่อทำการแฮ็ค

mkdir ica_temp

แตกแพ็กเกจ

dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN

เปิดไฟล์ใน gedit (หรือตัวแก้ไขรายการโปรดของคุณ)

sudo -H gedit ica_temp/DEBIAN/control

Depends:...หาบรรทัดที่เริ่มต้นด้วย ลบia32-libsและเพิ่มlib32z1 lib32ncurses5 lib32bz2-1.0

สร้างแพ็คเกจที่แก้ไขใหม่

dpkg -b ica_temp icaclient-modified.deb

และทำการติดตั้ง

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f

การติดตั้งตัวรับสัญญาณ Citrix นั้นต้องมีการแฮ็กด้วยเช่นกัน คุณสามารถค้นหาคำแนะนำการติดตั้งแบบเต็มได้ที่วิกิ Ubuntu

คุณสามารถทำได้ด้วยแพ็คเกจเก่า. deb ที่ยังคงขึ้นอยู่กับ ia32-libs

2. ติดตั้ง ia32-libs จากที่เก็บ raring

โปรดทราบว่ามันเป็นวิธีปฏิบัติที่เลวร้ายมากในการติดตั้งแพ็คเกจเก่า! น่าเศร้าสำหรับผู้ติดตั้งไบนารี่บางท่านไม่มีทางเลือกอื่น

คุณสามารถดาวน์โหลดแพคเกจ ia32-libs จากที่เก็บ raring ดาวน์โหลดและติดตั้งด้วยตนเองจากนั้นควรแก้ไขการอ้างอิง


"FOS" คืออะไร ฉันลอง: acronyms.thefreedictionary.com/FOS
มุมมองรูปไข่

1
@Elipticalview "ฟรีและโอเพนซอร์ส" เปลี่ยนเป็น FLOSS (ซอฟต์แวร์ฟรี / Libre และโอเพ่นซอร์ส) ซึ่งเป็นเรื่องปกติ
Galgalesh

"Repackage old package" ใช้งานได้กับ Ubuntu 16.04 Xenial - คุณเพียงแค่เพิ่มการดัดแปลงเล็กน้อยให้กับชื่อแพ็คเกจโดยปกติจะเพิ่ม ": i386" - ชื่อพื้นที่ท้ายชื่อแพ็คเกจ แพคเกจบางส่วนมีชื่อแตกต่างกันเช่น libbz2-1.0: i386
Christian Benke

6

ฉันอ่านว่าคุณควรจะติดตั้งia32-libs-multiarchแพ็คเกจแทน อย่างไรก็ตามมันไม่ได้ผลสำหรับฉันและฉันได้รับข้อผิดพลาดนี้

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.

วิธีแก้ปัญหาที่ใช้งานได้สำหรับฉันคือการติดตั้งแพ็คเกจต่อไปนี้:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

ใช้งานได้กับระบบปฏิบัติการพื้นฐานของ luna ด้วย
camelCaseD

4

หากคุณได้รับข้อผิดพลาดลอง:

sudo apt-get update

จากนั้นลองอีกครั้ง:

sudo apt-get install ia32-libs

ฉันเพิ่งติดตั้งใหม่ 12.04 ชุดนั้นยังคงมีอยู่ในที่เก็บ ที่จริงแล้วฉันพบข้อผิดพลาดนั้นก่อนที่ฉันจะอัพเดท หลังจากนั้นก็ทำงานได้ดี


1

ฉันเชื่อว่ากรณีการใช้งานเฉพาะนี้ถูกแทนที่ด้วยแพคเกจ "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" ซึ่งน่าจะเป็นคำตอบที่เฉพาะเจาะจงและมีประโยชน์มากกว่าพูดว่า "คุณสามารถใช้หลายโค้ง"


2
อะไร? ไม่มีกรณีการใช้งานเฉพาะในคำถามนี้
gertvdijk

1
@gertvdijk: ตัวแพ็คเกจเองแสดงถึงกรณีการใช้งานที่ จำกัด สำหรับวัตถุประสงค์ทั่วไปที่มากขึ้นคุณสามารถ multi-arch ได้ แต่สำหรับผู้ที่เคยใช้แพ็คเกจนี้มาก่อนดูเหมือนว่าจะถูกแทนที่ด้วย "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" ซึ่งคุณสามารถติดตั้งได้โดยไม่ต้องใช้ multi-arch : ครอบคลุมกรณีการใช้งานเดียวกันกับแพ็คเกจก่อนหน้า ในสาระสำคัญฉันพบคำตอบเหล่านี้ไม่ช่วยเหลือเนื่องจาก multi-arch ถูก overkill ด้วยเหตุผลที่มี ia32-libs อยู่รู้สึกประหลาดใจที่ไม่มีการแทนที่แบบหล่นโดยตรงมากขึ้นและไม่ผิดหวังเมื่อฉันค้นคว้าเพิ่มเติมนี้
saurik

นี่เป็นคำตอบที่ง่ายที่สุดที่แก้ปัญหาที่คล้ายกันสำหรับฉัน แม้ว่า libs ที่ระบุไว้ดูเหมือนจะไม่มีส่วนเกี่ยวข้องกับการเริ่มต้นไบนารีทั่วไป แต่ก็ใช้งานได้
ต่อ Knytt

-2

ฉันติดตั้ง ia32-libs เช่นนี้ (ฉันเรียกใช้ Ubuntu 13.04 Raring Ringtail บนเครื่อง 64 บิต):

ตรวจสอบสถาปัตยกรรมของตัวเอง:

$ dpkg --print-architecture

ตรวจสอบว่ามีการติดตั้งสถาปัตยกรรมต่างประเทศหรือไม่:

$ dpkg --print-foreign-architectures

ขึ้นอยู่กับผลลัพธ์ของคำสั่งทั้งสองข้างต้นคำสั่งสามข้อต่อไปนี้อาจใช้ได้ (ใช้เวลานานในการประมวลผลในกรณีของฉัน):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs

4
ฉันได้รับ: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
foobarbecue
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.