削除を容易にするためにパッケージグループに名前を付けることはできますか?

削除を容易にするためにパッケージグループに名前を付けることはできますか?

アプリケーションのビルドガイドラインを読むときapt

後でこれらのパッケージが必要なくなった場合は、インストール時にこのパッケージセットに名前またはラベルを付けたいと思います。これにより、そのパッケージをインストールした理由に関する一種のコンテキストを提供し、コレクション名を参照しやすくなります。バッチをアンロードします。

それは可能ですか?

現在、個々のパッケージをインストールする理由について別々の説明を管理する必要があると感じています。

答え1

1つの方法は、インストール中に任意のオプションをaptに渡すことです。

例えば

apt -o foo=bar install when

..結果はこの項目内にあります。/var/log/history.log

root@ans4:~# tail -4 /var/log/apt/history.log
Start-Date: 2022-10-27  12:53:12
Commandline: apt -o foo=bar install when
Install: libsigsegv2:amd64 (2.13-1, automatic), when:amd64 (1.1.38-2), m4:amd64 (1.4.18-5, automatic)
End-Date: 2022-10-27  12:53:14
root@ans4:~#

したがって、ある種の-o andreas-reason=needed-for-db構成を使用して開始できます。

logrotate不要な回転/取り外しを防ぐために調整が必要です。

root@ans4:~# cat /etc/logrotate.d/apt
/var/log/apt/term.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}

/var/log/apt/history.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}

root@ans4:~#

答え2

3つのファイル:

<packages.txt>
list
of
packages

インストールの問題は...質問には要件がなく、怠惰なので作成できません。また、以下のコードは機能しません。なぜなら、aptベースマシンを使用するには怠惰すぎるからです。少なくともこれは説明される。

#!/usr/bin/env bash    

# <remove.sh>: Uninstall all packages lised in ./packages.txt.

while read PACK
do
    sudo apt remove "$PACK"
done < 'packages.txt'

sudo apt autoremove
sudo apt clean

2つの「パッケージセット」が交差すると仮定する。たとえば、両方ともgccが必要です。そのうちの1つだけを削除するとどうなりますか?

もちろんそれは混乱だった。安全にフォーマットする方法はpackages.txt...私が知っているものではありません。

packages.txtアイデア:アンインストールを避けるためにスマートに生成されたインストールスクリプトを作成してくださいgcc

関連情報