アプリケーションのビルドガイドラインを読むとき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
。