廃止されたパッケージと孤立したパッケージ


17

廃止されたパッケージとみなしご化されたパッケージの違いは何ですか?より具体的には、なぜ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のウォレス

回答:


25

要するに、廃止されたパッケージはリスト上のどのリポジトリにもありません。孤立パッケージは、「依存関係」がすべてアンインストールされた自動依存関係です。そして、依存関係を解決するためにapt-get autoremoveインストールされた孤立パッケージのみを考慮しますapt

廃止されたパッケージ

おそらくご存知のように、aptパッケージを取得できるリポジトリのリストを保持しています。ただし、パッケージがリポジトリから削除される場合があります。たぶん、誰もパッケージの面倒を見る(維持する)ことはできず、利用可能な(非常に)古い最後のバージョンはセキュリティリスクになっています。または、プログラムの名前が変更され、それに応じてパッケージ名が変更され、古い名前の古いパッケージが削除された可能性があります。パッケージがリポジトリから削除される理由は他にも考えられます。

パッケージがシステムにインストールされてaptいるが、そのリストにあるリポジトリのいずれにも見つからない場合、そのパッケージは「廃止」と見なされます。

孤立したパッケージ

おそらくご存知のように、aptパッケージ間の依存関係を管理できます。たとえば、「greatprogram」というプログラムが機能するには、「greatlibrary」というライブラリが必要です。したがって、greatlibraryを含むパッケージは、greatprogramを含むパッケージの自動依存関係としてマークできます。greatlibraryが既にインストールされている(または同じコマンドでインストールされる)場合を除き、greatprogramパッケージをインストールすることはできません。

しかし、後日greatprogramをアンインストールし、greatlibraryを残した場合はどうなりますか?その場合、少なくとも1つの他のパッケージが依存関係としてgreatlibraryを必要としていましたが、現在は他のパッケージはもう必要ありません。これらの「残された」パッケージは「孤立パッケージ」と呼ばれます。

apt-get autoremove

おそらくあなたが知っているもう一つの事実は、apt依存関係を自動的に解決できることです。前述のgreatprogramをインストールしたいが、greatlibraryがまだインストールされていないとします。apt-get依存関係が満たされていないことを「通知」し、greatlibraryをインストールすることもできます。

apt-get autoremove依存関係を解決するために、この方法でインストールされた孤立パッケージを削除することを提案します。他の方法でインストールされた孤立パッケージは、自動削除のリストに含まれていません。たとえば、greatprogramをインストールする前にgreatlibraryを自分でインストールし、後日greatprogramをアンインストールした場合、greatlibraryはまだ孤立しています。ただし、依存関係が解決された結果、自動削除が自動的にインストールされていないため、autoremoveはそれを処理しません。


1
素晴らしい説明をありがとう。好奇心が強い:なぜdeborphanすべてを拾わautoremoveないのですか?私はなぜそれが逆に機能しないのか理解しています。
デビッドケネディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.