삭제를 용이하게 하기 위해 패키지 그룹에 이름을 지정할 수 있습니까?

삭제를 용이하게 하기 위해 패키지 그룹에 이름을 지정할 수 있습니까?

애플리케이션의 빌드 지침을 읽을 때 apt.

나중에 이러한 패키지가 더 이상 필요하지 않으면 설치할 때 이 패키지 세트에 이름이나 레이블을 지정하고 싶습니다. 이렇게 하면 해당 패키지를 설치한 이유에 대한 일종의 컨텍스트를 제공하고 컬렉션 이름을 더 쉽게 참조할 수 있습니다. 배치를 언로드합니다.

그게 가능합니까?

현재는 개별 패키지를 설치하는 이유에 대해 별도의 설명을 관리해야 한다는 느낌을 받고 있습니다.

답변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

두 개의 "패키지 세트"가 교차한다고 가정합니다. 예를 들어 둘 다 gcc가 필요합니다. 그 중 하나만 제거되면 어떻게 되나요?

물론 그것은 혼란이었다. 안전하게 포맷하는 방법은 packages.txt... 제가 아는 바가 아닙니다.

packages.txt아이디어: 제거를 피할 수 있을 만큼 스마트하게 생성된 설치 스크립트를 만드세요 gcc.

관련 정보