แพ็กเกจที่ล้าสมัยเทียบกับแพ็กเกจที่ถูกโยงถึง


18

ความแตกต่างระหว่างแพคเกจล้าสมัยและกำพร้าคืออะไร? โดยเฉพาะอย่างยิ่งเหตุใดจึงdeborphanสร้างสิ่งนี้:

dave@ubuntu:~$ deborphan
libbind9-80
libllvm3.1
libgrail5
libpython3.2
libsvga1
libarchive12
libdirectfb-1.2-9
gcalctool
liblwres80
libqpdf8
libkms1
libnux-3.0-0

... ในขณะที่aptitude search '~o'สร้างสิ่งนี้:

dave@ubuntu:~$ aptitude search '~o'
idA libarchive12                                 - Multi-format archive and compression library (shared li
i   libbind9-80                                  - BIND9 Shared Library used by BIND                      
i   libdns81                                     - DNS Shared Library used by BIND                        
i   libdrm-nouveau1a                             - Userspace interface to nouveau-specific kernel DRM serv
idA libgrail5                                    - Gesture Recognition And Instantiation Library          
i   libisc83                                     - ISC Shared Library used by BIND                        
i   libisccc80                                   - Command Channel Library used by BIND                   
i   libisccfg82                                  - Config File Handling Library used by BIND              
i   liblwres80                                   - Lightweight Resolver Library used by BIND              
idA libnux-3.0-0                                 - Visual rendering toolkit for real-time applications - s
idA libnux-3.0-common                            - Visual rendering toolkit for real-time applications - c
idA libpython3.2                                 - Shared Python runtime library (version 3.2)            
idA libqpdf8                                     - runtime library for PDF transformation/inspection softw
i   libudev0                                     - udev library                                           
i A linux-headers-3.5.0-27                       - Header files related to Linux kernel version 3.5.0     
i A linux-headers-3.5.0-27-generic               - Linux kernel headers for version 3.5.0 on 32 bit x86 SM
i   linux-image-3.5.0-27-generic                 - Linux kernel image for version 3.5.0 on 32 bit x86 SMP 
i   linux-image-extra-3.5.0-27-generic           - Linux kernel image for version 3.5.0 on 32 bit x86 SMP 
i   python3.2                                    - Interactive high-level object-oriented language (versio
i   python3.2-minimal                            - Minimal subset of the Python language (version 3.2)

คำถามโบนัส: apt-get autoremoveยิ่งแตกต่างกัน ทำไม?

dave@ubuntu:~$ sudo apt-get --purge autoremove
[sudo] password for dave: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gksu* libarchive12* libdirectfb-1.2-9* libgksu2-0* libgnome-menu2* libgrail5* libllvm3.1*
  libnux-3.0-0* libnux-3.0-common* libpython3.2* libqpdf8* libsvga1* libts-0.0-0* libx86-1*
  mobile-broadband-provider-info* python-imaging* python-imaging-compat* python-    oauth* tsconf*
0 upgraded, 0 newly installed, 19 to remove and 0 not upgraded.
After this operation, 33.8 MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

ในกรณีที่ทุกคนต้องการทราบการอัพเกรดเป็น 13.04 เป็นสิ่งที่แจ้งให้นี้


ฉันเป็นการส่วนตัวลบพวกเขาทั้งหมด แต่เมล็ดเก่าเพราะด้วยเครื่องของฉันเคอร์เนลใหม่เป็นรถเล็ก ๆ
jerick wallace

คำตอบ:


26

สำหรับแพ็คเกจสั้น ๆ ที่ล้าสมัยไม่ได้อยู่ในที่เก็บในรายการของคุณอีกต่อไป แพ็คเกจที่ถูกห่อหุ้มนั้นเป็นการพึ่งพาโดยอัตโนมัติซึ่งถอนการติดตั้ง "ผู้ติดตาม" ทั้งหมด และapt-get autoremoveพิจารณาเฉพาะแพคเกจเด็กกำพร้าที่ติดตั้งโดยaptเพื่อแก้ไขการอ้างอิง

แพ็คเกจล้าสมัย

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

หากแพ็กเกจถูกติดตั้งบนระบบของคุณ แต่ไม่สามารถพบได้ในที่เก็บใด ๆ ของคุณที่aptมีอยู่ในรายการแพ็กเกจนั้นจะถือเป็น "ล้าสมัย"

แพ็คเกจกำพร้า

อย่างที่คุณอาจจะรู้เช่นกันaptสามารถจัดการการพึ่งพาระหว่างแพ็คเกจได้ พูดเช่นโปรแกรมที่เรียกว่า "greatprogram" จำเป็นต้องมีไลบรารีชื่อ "greatlibrary" เพื่อให้ทำงานได้ ดังนั้นแพ็คเกจที่มี greatlibrary สามารถถูกทำเครื่องหมายเป็นการพึ่งพาอัตโนมัติของแพ็คเกจที่มี greatprogram คุณจะไม่สามารถติดตั้งแพ็คเกจโปรแกรมขนาดใหญ่ยกเว้นว่า greatlibrary ติดตั้งแล้ว (หรือจะถูกติดตั้งด้วยคำสั่งเดียวกัน)

แต่ถ้าคุณถอนการติดตั้งโปรแกรมที่ดีในภายหลังและทิ้ง greatlibrary ไว้ด้านหลัง ในกรณีนั้นอย่างน้อยหนึ่งแพคเกจอื่น ๆ ที่จำเป็นต้องใช้ห้องสมุดที่ดีเป็นพึ่งพา แต่ตอนนี้ไม่มีแพคเกจอื่นทำอีกต่อไป แพ็คเกจที่ "ทิ้งไว้ข้างหลัง" เหล่านั้นเรียกว่า "แพ็คเกจกำพร้า"

apt-get autoremove

ยังมีข้อเท็จจริงอีกอย่างที่คุณอาจทราบนั่นคือaptสามารถแก้ไขการพึ่งพาโดยอัตโนมัติสำหรับคุณ สมมติว่าคุณต้องการติดตั้งโปรแกรมที่กล่าวมาก่อนหน้านี้ แต่ยังไม่ได้ติดตั้ง greatlibrary apt-get"ประกาศ" ว่ามีการพึ่งพาที่ไม่พึงประสงค์และเสนอให้คุณติดตั้งห้องสมุดที่ดีเช่นกัน

apt-get autoremoveข้อเสนอให้คุณลบแพคเกจกำพร้าใด ๆที่ได้รับการติดตั้งด้วยวิธีนี้ในการแก้ปัญหาการพึ่งพา แพ็คเกจกำพร้าที่ติดตั้งด้วยวิธีอื่นไม่ได้อยู่ในรายการระบบตอบกลับอัตโนมัติ ถ้า, บอกว่า, คุณติดตั้ง greatlibrary ด้วยตัวเองก่อนที่จะติดตั้ง greatprogram และในวันต่อมาถอนการติดตั้ง greatprogram, greatlibrary จะยังคงเป็น orphaned แต่ระบบตอบกลับอัตโนมัติจะไม่ดูแลเพราะมันไม่ได้ถูกติดตั้งโดยอัตโนมัติเนื่องจากการพึ่งพาที่ได้รับการแก้ไข


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