Eski paketler ve artık paketler


18

Eski ve artık paketler arasındaki fark nedir? Daha spesifik olarak, bunu neden deborphanüretir:

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

... bunu aptitude search '~o'üretirken:

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)

Bonus soru: apt-get autoremovedaha da farklı. Neden?

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.

Herkes bilmek isterse, bunu isteyen 13.04'e yükseltme.


Ben şahsen hepsini eski çekirdekler dışında sildim çünkü
makinemle

Yanıtlar:


26

Kısacası, kullanılmayan paketler artık listenizde herhangi bir depoda bulunmuyor. Artık paketler, "bağımlıları" kaldırılmış otomatik bağımlılıklardır. Ve apt-get autoremovesadece aptbağımlılıkları çözmek için yüklenen artık paketleri göz önünde bulundurur .

Eski paketler

Muhtemelen bildiğiniz gibi, aptpaketleri alabileceği depoların bir listesini tutar. Ancak bazen paketler bir depodan kaldırılır. Belki de artık kimse paketle ilgilenmiyor (bakımını yapıyor) ve mevcut (çok) eski son sürüm bir güvenlik riski haline geldi. Ya da program adını değiştirdi, paket adları buna göre değiştirildi ve eski adın altındaki eski paketler kaldırıldı. Bir paketin depodan kaldırılmasının başka olası nedenleri de vardır.

Sisteminize bir paket yüklüyse, ancak aptlistelerinde bulunan depolarınızın hiçbirinde artık bulunamıyorsa , bu paket "eski" kabul edilir.

Artık paketler

Muhtemelen bildiğiniz gibi, aptpaketler arasındaki bağımlılıkları yönetebilir. Örneğin, "greatprogram" adlı bir programın çalışması için "greatlibrary" adlı bir kütüphaneye ihtiyacı vardır. Böylece, greatlibrary içeren paket, greatprogram içeren paketin otomatik bağımlılığı olarak işaretlenebilir. Greatlibrary zaten yüklü değilse (veya aynı komutla yüklenmeyecekse) greatprogram paketini yükleyemezsiniz.

Peki ya daha sonraki bir günde greatprogram'ı kaldırır ve greatlibrary'yi geride bırakırsanız ne olur? Bu durumda, en az bir başka paketin bağımlılık olarak büyük kütüphaneye ihtiyacı vardı, ancak artık başka bir paket artık yok. Bu "geride kalan" paketlere "yetimsiz paketler" denir.

apt-get autoremove

Muhtemelen bildiğiniz bir başka gerçek, aptbağımlılıkları sizin için otomatik olarak çözebilmesidir. Daha önce belirtilen greatprogram'ı kurmak istediğinizi, ancak henüz greatlibrary yüklü olmadığını varsayalım. apt-gettatminsiz bir bağımlılık olduğunu "fark eder" ve size büyük kütüphane kurmanızı önerir.

apt-get autoremovebir bağımlılığı çözmek için bu şekilde yüklenmiş olan artık paketleri kaldırmanızı önerir . Başka yollarla yüklenmiş olan artık paketler otomatik kaldırma listesinde değil. Diyelim ki, greatprogram kurmadan önce greatlibrary'yi kendiniz yüklediyseniz ve daha sonraki bir günde greatprogram'ı kaldırırsanız, greatlibrary yine de yetim kalır. Ancak otomatik çalıştırma, onunla ilgilenmez, çünkü çözülmüş bir bağımlılığın sonucu olarak otomatik olarak yüklenmez.


1
Büyük açıklama için teşekkürler. Meraklı: neden deborphanher şeyi autoremovealmıyor? Neden tersini anlamadığını anlıyorum.
David Kennedy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.