สามารถค้นหาไฟล์ i386 ได้แม้ว่าสถาปัตยกรรมจะเป็น amd64


15

ฉันกำลังพยายามใช้ที่เก็บไฟล์สำหรับการอัปเดต linux / ubuntu บนเครื่องที่ไม่ได้เชื่อมต่อ สถาปัตยกรรมสำหรับเครื่องนี้ (uname -a):

x86_64 GNU/Linux

ผลลัพธ์ของdpkg --printarchitectureคือ:

amd64

มันเป็นเครื่อง Trusty Tahr amd64 และมันพูดถึงสิ่งนี้โดยเฉพาะเช่นในไฟล์ aptitude source.list นอกจากนี้ "เกี่ยวกับคอมพิวเตอร์เครื่องนี้" ในอูบุนตูบอกว่าเครื่องนั้นเป็นแบบ 64 บิตโดยเฉพาะ ดังนั้นฉันจึงติดตั้งแพ็คเกจ amd64 บนเครื่อง อย่างไรก็ตามเมื่อฉันพยายามที่จะทำapt-get updateฉันได้รับข้อผิดพลาดเช่น:

W: Failed to fetch file:/var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu/dists/trusty/main/binary-i386/Packages  File not found

ดังนั้นในคำอื่น ๆ ถึงแม้ว่ามันจะเป็นเครื่อง 64 บิต apt ก็พยายามอ่านแพ็คเกจ i386 อย่างลึกลับ เหตุใดมันจึงทำเช่นนี้และฉันจะใช้แพ็คเกจ 64 บิตได้อย่างไร

โปรดทราบว่าไม่มีสิ่งใดในแหล่งรายการที่ระบุ i386

บรรทัดที่ไม่ใส่เครื่องหมายข้อคิดเห็นเท่านั้นในไฟล์ source.list คือ:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

บางทีการสนับสนุน multiarch นี้ถูกเปิดใช้งานโดยค่าเริ่มต้นบน Ubuntu เพราะมีผู้ให้บริการซอฟต์แวร์พันธมิตรบางราย (Skype, cof, cof .. ) ที่ขี้เกียจพอที่จะไม่รวบรวมสิ่งต่างๆใน i386 และ amd64 เนื่องจากจำเป็นต้องใช้หลายไลบรารีไลบรารีจะถูกdpkgกำหนดค่าตามค่าเริ่มต้นเพื่อยอมรับ amd64 และเป็นแบบ 32 บิต ฉันพูดว่า "อาจจะ" เพราะฉันไม่พบเอกสารที่เป็นทางการเกี่ยวกับข้อมูลนี้ แค่ 2 เซ็นต์ของฉัน

คำตอบ:


25

ในamd64การติดตั้งUbuntu i386จะเปิดใช้งานเป็นสถาปัตยกรรมเพิ่มเติมตามค่าเริ่มต้น apt& co. คาดว่าที่เก็บข้อมูลจะให้สถาปัตยกรรมที่กำหนดค่าไว้ทั้งหมดซึ่งทำให้เกิดข้อผิดพลาดที่คุณเห็น

เนื่องจากมิเรอร์ของคุณมีamd64แพ็คเกจเท่านั้นคุณควรทำเครื่องหมายเช่น:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

นั่นเป็นปัญหาอย่างแท้จริง ด้วยการแก้ไขนี้พื้นที่เก็บข้อมูลได้รับการยอมรับและปรับปรุง ขอบคุณ
Tyler Durden

2
dpkg --print-foreign-architecturesจะแสดงสถาปัตยกรรมใด ๆ ที่เปิดใช้งานการสนับสนุนหลายแบบ ฉันมีปัญหาเดียวกันและ (อาจไม่แปลกใจ) คำสั่งดังกล่าวรายงาน:i386
sxc731

นี้ไม่ได้อธิบายวิธีการปิดการใช้งานสถาปัตยกรรมเพิ่มเติมโดยค่าเริ่มต้น การใส่ [arch=amd64]แต่ละdebบรรทัดไม่ใช่วิธีที่ดี สิ่งนี้จะอธิบายวิธีการ: superuser.com/a/714392/376867
midenok

2
@midenok ฉันแนะนำให้เพิ่มตัวระบุส่วนโค้งลงใน descriptor ของที่เก็บข้อมูลทุกอันที่ไหน? การปิดใช้งานโดยสิ้นเชิงi386เพื่อจัดการกับที่เก็บข้อมูลที่มีปัญหาเพียงคลังเดียวค่อนข้างเกินความเป็นจริง โปรดทราบว่าหากคุณมีที่เก็บข้อมูลหลายแห่งซึ่งก่อให้เกิดปัญหาตามที่อธิบายไว้ในคำถามแสดงว่ามีปัญหากับเขตข้อมูลสถาปัตยกรรมของที่เก็บข้อมูลไม่ใช่กับการกำหนดค่าท้องถิ่น
Stephen Kitt

@ สตีเฟ่น Kitt โอเคคุณแก้ปัญหาหนึ่งปัญหาที่อธิบายไว้ในคำถาม แต่ทางออกของคุณไม่สามารถใช้งานได้จริง คนส่วนใหญ่รวมถึงผู้ถามและตัวฉันเองไม่ต้องการเห็นแพ็คเกจ i386 ในรายการแพ็คเกจ
midenok
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.