สำหรับแพ็คเกจเฉพาะฉันสามารถค้นหาสาเหตุที่ติดตั้งได้หรือไม่
ดังนั้นฉันสามารถดูหรือติดตั้งด้วยตนเองหรือว่าติดตั้งเป็นการอ้างอิงของแพคเกจอื่นได้หรือไม่ หรือว่าติดตั้งเป็นส่วนหนึ่งของ distro?
สำหรับแพ็คเกจเฉพาะฉันสามารถค้นหาสาเหตุที่ติดตั้งได้หรือไม่
ดังนั้นฉันสามารถดูหรือติดตั้งด้วยตนเองหรือว่าติดตั้งเป็นการอ้างอิงของแพคเกจอื่นได้หรือไม่ หรือว่าติดตั้งเป็นส่วนหนึ่งของ distro?
คำตอบ:
วิธีแก้ปัญหาอย่างรวดเร็วคือการป้อนคำสั่งต่อไปนี้ในเทอร์มินัล:
aptitude why $package
หรือถ้าคุณสนใจเฉพาะสาเหตุที่ดีที่สุด:
aptitude why $package --show-summary
แทนที่$ packageด้วยชื่อของแพ็คเกจและคุณอาจต้องติดตั้งaptitude
แพ็คเกจก่อน
นี่คือผลลัพธ์ที่คุณอาจได้รับ aptitude why aspell --show-summary
Packages requiring aspell:
inkscape
aptitude why aspell
สำหรับรายละเอียดเพิ่มเติมที่คุณจะเรียกใช้ คุณสามารถอ่านตัวอย่างผลลัพธ์ด้านล่างดังนี้: "คุณติดตั้งด้วยตนเองinkscape
ซึ่งต้องการlibgtkspell
ซึ่งต้องใช้libenchantic2a
ซึ่งต้องใช้aspell
" ( i
เครื่องหมายบ่งบอกถึงแพ็คเกจที่ติดตั้งA
เครื่องหมายจะระบุแพ็คเกจที่ติดตั้งโดยอัตโนมัติ)
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
ในที่สุดคำสั่งดังต่อไปนี้
apt-cache rdepends --installed $package
รายการแพคเกจอื่น ๆ ที่ติดตั้งบนคอมพิวเตอร์ของคุณที่ขึ้นอยู่โดยตรงกับแพคเกจ $ คุณสามารถเพิ่ม--recurse
ตัวเลือกเพื่อแสดงรายการแพ็คเกจทั้งหมดที่ขึ้นอยู่กับมันโดยตรงหรือโดยอ้อม
apt-cache rdepends --recurse $package
อาจให้แพ็คเกจมากเกินไป ฉันจะเพิ่ม--installed
ตัวเลือกเพื่อ จำกัด แพ็คเกจที่ติดตั้ง -i
ตัวเลือกที่ จำกัด ไว้ก่อนแพคเกจที่เกี่ยวข้องกับการพึ่งพาและการพึ่งพา แต่แพคเกจอาจถูกติดตั้งเพราะมันแนะนำโดยแพคเกจอื่น จะรวมถึงแพคเกจคำแนะนำ relateded ดังกล่าวผมคิดว่านี้จะให้คนที่เหมาะสม:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
เหตุผลสั้น ๆ เกี่ยวกับสาเหตุที่ติดตั้งแพคเกจบางอย่างสามารถค้นหาได้โดยพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล ( Applications -> Accessories -> Terminal
):
aptitude why <package-name>
แทนที่ด้วยชื่อของแพ็คเกจที่คุณสนใจตัวอย่างเช่นพิมพ์aptitude why libgoo-canvas-perl
ผลลัพธ์ต่อไปนี้:
i shutter Suggests libgoo-canvas-perl
ซึ่งโดยทั่วไปหมายความว่าแพ็คเกจshutter
ในกรณีนี้ได้รับการแนะนำlibgoo-canvas-perl
ให้ติดตั้ง จากนั้นพิมพ์aptitude why shutter
ฉันสามารถเดินขึ้นห่วงโซ่การพึ่งพา
อย่างไรก็ตามมีข้อแม้ ฉันมักจะสังเกตเห็นว่าความถนัดสามารถหาคำอธิบายที่เป็นไปได้มากที่สุดสำหรับสถานการณ์ที่อาจไม่ใช่กรณีที่เกิดขึ้นจริง
ในกรณีของฉันการshutter
แนะนำlibgoo-canvas-perl
- อย่างไรก็ตามแพ็คเกจที่แนะนำไม่ได้ติดตั้งโดยอัตโนมัติตามค่าเริ่มต้น อย่างไรก็ตามมันทำให้หน่วยความจำของฉัน "ประสบการณ์" ไม่สามารถแก้ไขภาพหน้าจอshutter
ที่ทำให้ฉันติดตั้งด้วยตนเองได้ligbgoo-canvas-perl
ในที่สุดคุณสามารถค้นหาว่ามีการติดตั้งแพคเกจโดยอัตโนมัติหรือไม่ (หมายถึงการตัดสินใจโดยระบบการจัดการแพคเกจที่จำเป็นจากการดูการอ้างอิงและคำแนะนำของแพ็คเกจอื่น ๆ ที่คุณขอให้ติดตั้ง) โดยเรียกใช้คำสั่งต่อไปนี้
aptitude show <package-name>
นี่จะเอาต์พุตบรรทัดดังนี้ (บรรทัดที่ 3 ของเอาต์พุต):
Automatically installed: no
สำหรับการรันข้อมูลเพิ่มเติมinfo aptitude
(ในเทอร์มินัล) หรือไปที่หน้าความถนัด
หากต้องการทราบว่าเมื่อใดที่ติดตั้งแพ็คเกจเฉพาะมี 2 ตัวเลือก:
Install
(คำนึงถึงกรณี) เพื่อแสดงรายการทั้งหมดที่เกี่ยวข้องกับการติดตั้ง อย่างไรก็ตามสิ่งนี้จะแสดงเฉพาะแพ็คเกจที่ติดตั้งโดยใช้ Synapticรันคำสั่งต่อไปนี้ในเทอร์มินัล นี่จะค้นหาบันทึก dpkg สำหรับรายการประวัติการติดตั้ง อย่างไรก็ตามมีการ จำกัด จำนวนการเก็บรักษาบันทึกเหล่านี้ไว้สูงสุดดังนั้นหากแพ็คเกจที่คุณกำลังค้นหาติดตั้งมานานแล้วคุณอาจไม่พบ รายละเอียดเพิ่มเติมที่นี่
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
ใช่คุณทำได้และเป็นคำสั่งที่ชัดเจนมาก เมื่อคุณติดตั้งความสามารถแล้วคุณสามารถเปิดโฆษณาประเภทเทอร์มินัลหน้าต่างได้:
aptitude why package
ที่ควรให้รายการแพคเกจที่ขึ้นอยู่กับแพคเกจเฉพาะนั้น หากเป็นแพ็คเกจที่ติดตั้งด้วยตนเองมันจะพูดบางอย่างเช่น "ไม่สามารถหาเหตุผลในการติดตั้งแพ็คเกจได้"
นี่เป็นวิธีง่ายๆที่ไม่ต้องพึ่งพาaptitude
ซึ่ง 10.10 จะไม่จัดส่งตามค่าเริ่มต้นอีกต่อไป
เปิด Synaptic แล้วลองลบออก
หากกล่องโต้ตอบปรากฏขึ้นขอให้คุณลบแพ็คเกจอื่น ๆ นั่นคือแพ็กเกจที่ (ซ้ำ) ขึ้นอยู่กับมัน
apt-get remove package_name_goes_here -s
อีกครั้งแพคเกจที่จะถูกลบออกเป็นผลมาจากทั้งหมดที่ขึ้นอยู่กับมัน (ซ้ำ) ( -s
พารามิเตอร์บอกapt-get
ว่าไม่ได้ลบแพ็กเกจจริงๆ)
y/N
-s
ฉันได้เพิ่มคำเตือนแล้ว