เมื่อเวลาผ่านไปฉันติดตั้งแพ็คเกจ i386 หลายชุดซึ่งฉันไม่ต้องการอีกต่อไป ฉันจะทำความสะอาดระบบและอยู่กับแพ็คเกจ amd64 ได้อย่างไร
เมื่อเวลาผ่านไปฉันติดตั้งแพ็คเกจ i386 หลายชุดซึ่งฉันไม่ต้องการอีกต่อไป ฉันจะทำความสะอาดระบบและอยู่กับแพ็คเกจ amd64 ได้อย่างไร
คำตอบ:
หากพวกเขาไม่ได้อยู่ในทางของคุณฉันจะปล่อยให้พวกเขาอยู่ที่ไหน
หากคุณยืนยันในการลบให้ใช้dpkg -l | grep i386
เพื่อสร้างรายการแพ็คเกจ i386 คุณสามารถลบเหล่านี้หลังจากการตรวจสอบอย่างระมัดระวังsudo apt-get purge <package-name>
กับสิ่งที่ต้องการ
apt-get purge <package-name>
ควรจะยังคงทำงานแม้ว่า
dpkg -l | grep amd64
ฉันก็มี i386 pkg ในรายการซึ่งก็คือamd64-microcode 3.20160316.3 i386
ฉันคิดว่า ':' ในรูปแบบ grep เป็นสิ่งสำคัญ! ( dpkg -l | grep ":amd64"
)
โซลูชันอัตโนมัติด้านบนมีอันตรายและไม่ได้ทำงานเสมอ (1) ดังนั้นนี่เป็นอีกวิธีหนึ่ง
sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
หรือ
sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
(พยายามใช้เครื่องมือเพียงอย่างเดียวเสมอเพราะความถนัดจะดีกว่าเมื่อมีปัญหาในการพึ่งพาฉันชอบมัน)
ความคิดที่ดีที่จะยัง
dpkg --remove-architecture i386
และอาจจะ
dpkg --print-foreign-architectures
(1) คำสั่งเดิมยังแสดงรายการแพ็คเกจที่มีเพียง i386 ในชื่อของพวกเขา (แม้ว่าจะเป็นสถาปัตยกรรม 64 บิต) นิพจน์ปกติไม่ทำงานและ dpkg แสดงแพ็คเกจที่ถูกลบไปแล้ว แต่ยังมีไฟล์การกำหนดค่า ( dpkg -l) แสดง "rc" แทน "ii" เป็นสถานะ)
awk
อยู่คุณอาจกำจัดการgrep
เรียกร้องได้เช่นกัน นอกจากนี้ยัง$()
เป็นที่นิยมมากกว่า backticks ฉันเพิ่งได้กำจัด i386 แพคเกจของฉันโดยใช้คำสั่งนี้ขึ้นอยู่กับคนที่คุณให้:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
ฉันทำลายแพ็คเกจ 32 บิตทั้งหมดของฉันเช่นนี้:
sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
dpkg -l | grep i386
ตรวจสอบแพ็กเกจยังคงมีความคิดใด ๆ +1 ด้วยสำหรับความคิดเห็นที่เหนือกว่าและฉันเดาว่ามันเกี่ยวข้องกับเทคนิคการเขียนสคริปต์เชลล์
sudo dpkg --remove-architecture i386
ในกรณีที่ใคร ๆ ก็สงสัยว่ามันมีวิธีที่ดีกว่า คำตอบก่อนหน้านี้หวังว่าจะทำสิ่งเดียวกัน แต่การค้นหานั้นล้มเหลวเนื่องจากสถาปัตยกรรมไม่ได้เป็นส่วนหนึ่งของชื่อแพ็คเกจยกเว้นในกรณีพิเศษ
ในฐานะที่เป็นราก (หรือด้วย sudo) ทำงาน:
aptitude remove ~i~ri386
หากคุณไม่ได้ใช้ความถนัดมากกว่า apt-get แล้วให้ทำ มันยอดเยี่ยมจริงๆ คุณสามารถค้นหารายการคำค้นหาความถนัดของที่นี่
นี่เป็นอีกวิธีหนึ่งที่มีความเสี่ยงต่ำกว่า:
apt-get remove "^.*:i386$"
สิ่งนี้จะจับคู่เฉพาะแพ็คเกจที่ลงท้ายด้วย":i386"
ซึ่งเป็นแบบแผนการตั้งชื่อมาตรฐานสำหรับi386
แพ็คเกจ Debian สถาปัตยกรรมทั้งหมด
sudo apt-get purge .*:i386
เดเบียนคู่มือ multiarchกล่าวถึงคำสั่งนี้apt-get purge ".*:<arch>"
ซึ่งจะมีลักษณะเช่นนี้i386
:
apt-get purge ".*:i386"
จากนั้นคุณสามารถลบสถาปัตยกรรมออกจาก dpkg:
dpkg --remove-architecture i386