今日は、Debianとその派生物(UbuntuやLinux MintなどのUbuntuバリアントなど)のあまり知られていないが有用なユーティリティについて学習します。 「Debfoster」に挨拶します -必須パッケージのみを保持し、不要になった他のパッケージを削除するコマンドラインユーティリティ。したがって、常にクリーンで最小限のシステムを維持できます。 debfosterアプリケーションは、aptおよびdpkgパッケージマネージャー用のラッパープログラムです。依存関係としてインストールされるのではなく、明示的に要求されたインストール済みパッケージのリストを保持します。
初めて実行すると、インストールされているパッケージのリストが作成され、 keepersという名前のファイルに保存されます。 / var / lib / debfoster /にあります ディレクトリ。 Debfosterはこのリストを使用して、他のパッケージがそれらに依存しているという理由だけでインストールされたパッケージを検出します。これらの依存関係の1つが変更されると、debfosterはそれに気づき、古いパッケージを削除するかどうかを尋ねます。このようにして、選択した必須パッケージを使用してクリーンなシステムを維持するのに役立ちます。
Debfosterを使用してDebianとUbuntuに必須パッケージのみを保持する
Debfosterはデフォルトのリポジトリで利用できます。したがって、インストールは大したことではありません。次のコマンドを実行して、DebianベースのシステムにDebfosterをインストールします。
$ sudo apt install debfoster
インストールしたら、次のコマンドを実行して、インストールされているパッケージのリストを作成する必要があります。
$ sudo debfoster -q
上記のコマンドは、現在インストールされているパッケージをキーパーに追加します / var / lib / debfoster /のファイル ディレクトリ。このファイルを編集して、システムにインストールしたくないパッケージを削除できます。
これが私のキーパーファイルの内容です。
$ cat /var/lib/debfoster/keepers
Linuxカーネル、grub、Ubuntu-base、Ubuntu-desktopなど、システム関連の重要なパッケージをこのファイルから削除しないでください。また、手動で編集した重要な構成ファイルをバックアップしてください。
ここで、debfosterユーティリティに、keepersファイルにリストされていないパッケージを削除するように強制します。これを行うには、次を実行します:
$ sudo debfoster -f
Debfosterは、キーパーファイルで利用できないすべてのパッケージとその依存関係を削除します。
また、欠落していると思われる欠落しているパッケージもインストールされるため、システムはdebfosterデータベースに準拠する必要があります。
また、パッケージを追加/削除するたびに次のコマンドを実行して、削除する必要のある孤立したパッケージや不要な依存関係がないかどうかを確認できます。
$ sudo debfoster
パッケージをインストール/削除した場合は、次のような出力が表示されます。出力にあるように、Screenパッケージは私のキーパーリストにリストされていません。なぜなら、キーパーリストを作成してからインストールしたからです。それで、debfosterは私がこれを保持したいかどうか私に尋ねます。どうすればよいかわからない場合は、 Hと入力してください ヘルプセクションを表示します。
Keep screen? [Ynpsiuqx?], [H]elp: H Yes Keep screen. [default] No Delete screen. Prune Delete screen and the packages it is keeping installed. Skip Skip this question. Help Print this message. Info or ? Show information about screen. Undo Undo last response. Quit Exit without removing packages. Exit Remove unwanted packages and exit. Keep screen? [Ynpsiuqx?], [H]elp:
Debfosterは、可能なすべてのオプションを表示します。 Yと入力します パッケージを削除したくない場合。これでscreenパッケージがkeepersファイルに追加され、「apt-get remove screen」コマンドを使用して手動で削除しない限り、Debfosterは今後のトランザクションでそれを削除しません。 Nと入力します スクリーンパッケージを削除します。 Pと入力します 画面とインストールされているパッケージを削除します。 情報と入力します または? パッケージの詳細を表示します。 Q パッケージを削除せずに終了します。そして、 Eと入力します パッケージを削除して終了します。
キーパーリストでのパッケージの表示
debfosterデータベース内のパッケージのリストを表示するには、次のコマンドを実行します。
$ debfoster -a
これが私のUbuntu16.04LTSデスクトップのパッケージのリストです。
The following packages are on the keeper list: account-plugin-aim brasero debfoster deja-dup-backend-gvfs dialog firefox-locale-en gdebi gir1.2-webkit-3.0 git hyphen-en-us indicator-multiload language-pack-gnome-en libarchive-extract-perl libcpan-meta-perl libmodule-build-perl libmodule-pluggable-perl libpackage-constants-perl libpod-latex-perl libreoffice-help-en-us libreoffice-style-human libterm-ui-perl libtext-soundex-perl libvisual-0.4-plugins linux-generic linux-headers-4.4.0-15-generic linux-image-extra-4.4.0-15-generic myspell-en-au myspell-en-gb myspell-en-za mythes-en-us oneconf openoffice.org-hyphenation openssh-server python-pip python3-smbc rhythmbox-plugin-cdrecorder rhythmbox-plugin-magnatune samba-common screen shutter ssh-askpass-gnome telepathy-idle thunderbird-locale-en-us ubuntu-desktop ubuntu-minimal ubuntu-sso-client-qt ubuntu-standard ubuntu-wallpapers-wily wbritish xserver-xorg-video-cirrus xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
別のキーパーファイルを使用する
デフォルトでは、debfosterはインストールされたパッケージを / var / lib / debfoster / keepersに保持します ファイル。ただし、 -k を使用して、別のdebfosterデータベース(もちろん、keepersファイル)を指定できます。 以下のようなフラグ。
$ debfoster -k <path-to-keeper-file>
孤立したパッケージの表示
孤立したパッケージをチェックするために、必ずしも「sudodebfoster」コマンドを実行する必要はありません。 -sを使用するだけです 孤立したパッケージがあるかどうかを確認するには、以下のようなフラグを立ててください。
$ debfoster -s The following packages have been orphaned: tmux
上記の出力でわかるように、孤立したパッケージが1つあります。パッケージが必要で、debfosterに削除させたくない場合は、次のコマンドを実行して、keepersファイルに追加するだけです。
$ sudo debfoster
tmuxを保持するかどうかを尋ねられます。 tmuxをkeepersファイルに保持する場合は、単に Yと入力します 。
Keep tmux? [Ynpsiuqx?], [H]elp:Y
または、keepersファイルを手動で編集して、リストにtmuxを追加することもできます。
$ sudo vi /var/lib/debfoster/keepers
tmuxを追加します。
[...] tmux
:wqと入力します 保存するには、ファイルを終了します。これで、「debfoster -s」コマンドを実行しても、孤立したパッケージは表示されなくなります。
ここで孤立したパッケージとは、debfosterデータベースに記載されていないパッケージを意味することに注意してください。パッケージが完全に必要ないという意味ではありません。たとえば、screenおよびtmuxユーティリティは非常に便利です。したがって、それらをdebfosterデータベースに追加できます。
パッケージの追加/削除
debfosterはapt-getおよびdpkgパッケージマネージャーのラッパーであるため、これを使用してパッケージを追加または削除することもできます。
パッケージをインストールするには、次のコマンドを実行します:
$ sudo debfoster screen
これで、debfosterがapt-getを実行し、指定されたパッケージをインストールします。
パッケージを削除するには、以下のように名前の直後にマイナス(-)を付けるだけです。
$ sudo debfoster screen- Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: screen* 0 upgraded, 0 newly installed, 1 to remove and 608 not upgraded. After this operation, 972 kB disk space will be freed. Do you want to continue? [Y/n]
依存関係の検索
パッケージが依存するすべてのパッケージを一覧表示するには、 -dを使用します フラグ。
$ debfoster -d screen
また、特定のパッケージに依存するdebfosterデータベース内のすべてのパッケージを一覧表示するには、 -eを使用します。 以下のようなフラグ。
$ debfoster -e screen
詳細については、manページを参照してください。
$ man debfoster
ご覧のとおり、Debfosterは、インストールしたものを追跡し、不要な他のすべてのパッケージを削除するのに役立ちます。繰り返しになりますが、警告します。このアプリケーションは慎重に使用する必要があります。 Ubuntuベース、grub、現在のカーネルなどの重要なシステム関連パッケージを削除しないでください。削除すると、システムが使用できなくなる可能性があります。
推奨される読み物:
- Debianベースのシステムで不要な設定ファイルを削除する
- Linuxで未使用のパッケージを見つけて削除する方法