Gói lỗi thời so với gói mồ côi


17

Sự khác biệt giữa các gói lỗi thời và mồ côi là gì? Cụ thể hơn, tại sao deborphansản xuất này:

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

... Trong khi aptitude search '~o'sản xuất này:

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)

Câu hỏi tiền thưởng: apt-get autoremovethậm chí còn khác nhau hơn. Tại sao?

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.

Trong trường hợp bất cứ ai muốn biết, việc nâng cấp lên 13.04 là điều thúc đẩy điều này.


Cá nhân tôi đã xóa tất cả trừ các hạt nhân cũ bởi vì với máy của tôi, hạt nhân mới có một chút lỗi
giật tường

Câu trả lời:


25

Đối với các gói ngắn, lỗi thời không còn trong bất kỳ kho lưu trữ nào trong danh sách của bạn nữa. Các gói mồ côi là các phụ thuộc tự động mà tất cả "người phụ thuộc" đã được gỡ cài đặt. Và apt-get autoremovechỉ xem xét các gói mồ côi đã được cài đặt aptđể giải quyết các phụ thuộc.

Gói quá hạn

Như các bạn hẳn đã biết, apt giữ một danh sách các kho nó có thể lấy gói từ. Nhưng đôi khi, các gói được loại bỏ khỏi một kho lưu trữ. Có lẽ không ai quan tâm (duy trì) gói hàng nữa và phiên bản cũ (rất) cũ có sẵn đã trở thành một rủi ro bảo mật. Hoặc có thể chương trình đã thay đổi tên của nó, tên gói đã được thay đổi tương ứng và các gói cũ dưới tên cũ bị xóa. Có nhiều lý do khác có thể khiến một gói bị xóa khỏi kho lưu trữ.

Nếu một gói được cài đặt trên hệ thống của bạn, nhưng không thể tìm thấy trong bất kỳ kho lưu trữ nào bạn aptcó trong danh sách của nó, gói đó được coi là "lỗi thời".

Gói mồ côi

Như bạn có thể biết là tốt, aptcó thể quản lý các phụ thuộc giữa các gói. Ví dụ, một chương trình gọi là "greatprogram" cần một thư viện gọi là "greatl Library" để hoạt động. Vì vậy, gói chứa greatl Library có thể được đánh dấu là một phụ thuộc tự động của gói chứa greatprogram. Bạn sẽ không thể cài đặt gói greatprogram, trừ khi Greatl Library đã được cài đặt (hoặc sẽ được cài đặt với cùng một lệnh).

Nhưng điều gì sẽ xảy ra nếu bạn gỡ cài đặt chương trình tuyệt vời vào một ngày sau đó và để lại thư viện tuyệt vời? Trong trường hợp đó, một lần ít nhất một gói khác cần thư viện tuyệt vời làm phụ thuộc, nhưng bây giờ không có gói nào khác thực hiện được nữa. Những gói "bị bỏ lại phía sau" được gọi là "gói mồ côi".

apt-get autoremove

Một sự thật khác mà bạn có thể biết, đó là aptcó thể tự động giải quyết các phụ thuộc cho bạn. Giả sử bạn muốn cài đặt chương trình tuyệt vời được đề cập trước đó, nhưng chưa cài đặt thư viện tuyệt vời. apt-get"Thông báo" rằng có một sự phụ thuộc không thỏa mãn và cũng cung cấp cho bạn để cài đặt thư viện tuyệt vời.

apt-get autoremoveđề nghị bạn loại bỏ bất kỳ gói mồ côi nào đã được cài đặt theo cách này để giải quyết vấn đề phụ thuộc . Các gói mồ côi đã được cài đặt theo những cách khác không có trong danh sách của autoremove. Nếu, giả sử, bạn đã tự cài đặt greatl Library trước khi cài đặt greatprogram và vào một ngày sau đó gỡ cài đặt greatprogram, greatl library vẫn sẽ bị mồ côi. Nhưng autoremove sẽ không quan tâm đến nó, vì nó không được cài đặt tự động do kết quả của một phụ thuộc được giải quyết.


1
Cảm ơn lời giải thích tuyệt vời. Tò mò: tại sao khôngdeborphan chọn mọi thứ autoremove? Tôi hiểu tại sao nó không hoạt động theo cách khác.
David Kennedy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.