ดาวน์โหลดแพ็คเกจผ่าน apt สำหรับสถาปัตยกรรมอื่น


15

ขณะนี้ฉันอยู่ในสถาปัตยกรรม amd64 ดังนั้นเมื่อฉันลองapt-get download vlcมันจะดาวน์โหลดสถาปัตยกรรมที่เหมาะสมสำหรับระบบของฉัน แต่ฉันจะดาวน์โหลดเวอร์ชั่น i386 ผ่าน apt ได้อย่างไร

มันใช้สำหรับส่งออกไปยังระบบอื่นที่ไม่มีการเชื่อมต่ออินเทอร์เน็ตและมีวิธีใดที่จะดาวน์โหลดการอ้างอิงที่ตามมา


คุณต้องการติดตั้งหรือไม่
Braiam

เพียงแค่ fyi ฉันได้ขยายคำตอบของฉันด้วยความรู้ใหม่
เซท 23'14

คำตอบ:


13

ใช่คุณทำได้เพียงต่อท้าย:i386คำสั่งดาวน์โหลดเช่นนี้

sudo apt-get download <package>:i386  

ดังนั้นสำหรับคุณ:

sudo apt-get download vlc:i386  

ฉันไม่ทราบวิธีการดาวน์โหลดแพคเกจที่อ้างอิงโดยอัตโนมัติใด ๆ นอกจากbuild-depนั้นจะไม่ทำงานในกรณีของคุณ

หลังจากที่จิ้มหน้า manpage อีกเล็กน้อยฉันได้พบว่าคุณทำได้จริง ๆ แล้วใช้build-depสิ่งนี้:

sudo apt-get build-dep --download-only vlc:i386  

ซึ่งจะดาวน์โหลดแพ็คเกจที่ต้องการลงในไดเรกทอรีปัจจุบัน หมายเหตุ แต่ที่build-depกำลังมองหาที่รวบรวมแพคเกจจากแหล่งที่ไม่ได้ติดตั้งจาก.debจึงจะแนะนำสิ่งที่ต้องการbuild-essentialและgccที่อาจจะจำเป็นในการรวบรวม VLC .debแต่ไม่จำเป็นต้องติดตั้งจาก

มันอาจจะง่ายกว่าที่จะแสดงรายการการพึ่งพาหลักของ vlc ด้วยapt-cache:

apt-cache depends vlc:i386  

หากคุณต้องการกรองโดยขึ้นอยู่กับการใช้งาน:

apt-cache depends vlc:i386 | grep 'Depends'  

โปรดทราบว่าบางแพ็กเกจเช่นlibc6มาเป็นค่าเริ่มต้นใน Ubuntu ดังนั้นคุณไม่จำเป็นต้องดาวน์โหลดแพ็คเกจเหล่านั้น หากคุณต้องการดาวน์โหลดการอ้างอิงทั้งหมดและจัดการกับว่าคุณต้องการหรือไม่ในภายหลังคุณสามารถใช้สคริปต์นี้:

for i in $(apt-cache depends vlc:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>no32.txt; done  

นี้จะดาวน์โหลดทั้งหมดขึ้นอยู่กับการแนะนำและแนะนำแพคเกจและเปลี่ยนเส้นทางข้อผิดพลาดใด ๆ no32.txtที่จะ คุณควรดูที่นั่นเมื่อคุณทำเสร็จแล้วเพราะบางแพ็คเกจที่จำเป็นที่ไม่มี i386 รุ่น (นั่นคือไม่ใช่ไบนารี) อยู่ในนั้น

เพียงแค่apt-get downloadนั้น

โปรดทราบว่าสคริปต์นี้ไม่ได้ฉลาดมาก แต่ก็ไม่ได้คำนึงถึงอะไรมากมายดังนั้นคุณอาจได้รับข้อผิดพลาดบางอย่าง แต่ควรทำงานโดยทั่วไป


แล้วแพ็คเกจ build-dep: i386 ล่ะ?
enedil

@enedil build-dep การดาวน์โหลดและติดตั้งดังนั้นสิ่งนี้จะติดตั้งแพ็คเกจ i386 จำนวนมากบนเครื่องของเขาซึ่งไม่ใช่สิ่งที่เขาต้องการ เห็นคนฉลาดรับรายละเอียด
เซท

นอกจากนี้ยังมีaptitude downloadคำสั่ง ไม่แน่ใจว่าเปิดใช้งาน multiarch หรือไม่
Faheem Mitha

@FaheemMitha ใช่ความสามารถสามารถทำทุกอย่างapt-getได้
เซท

0

วิธีหนึ่งที่คุณสามารถทำได้คือการใช้ chroot หรือ proot บนระบบโฮสต์เพื่อสร้างระบบไฟล์แยกของสถาปัตยกรรมที่เหมาะสม จากนั้นคุณสามารถรัน apt ในสภาวะแวดล้อมที่จำลองเพื่อติดตั้งแพ็กเกจเฉพาะสถาปัตยกรรมเช่นเดียวกับที่คุณอยู่บนเครื่องของสถาปัตยกรรมนั้น มันทำงานช้าลงเล็กน้อยเนื่องจากมันกำลังจำลองสถาปัตยกรรม แต่คุณมีรูทที่คุณสามารถปรับใช้กับอุปกรณ์อื่นของสถาปัตยกรรมอื่น

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