메타패키지는 자체적으로 아무것도 설치하지 않고 다른 패키지에 의존하는 패키지입니다. 시스템에 설치된 메타 패키지를 나열하는 방법은 무엇입니까?
답변1
나는 다음을 사용했다:
apt-cache search . | grep -i "metapackage\|meta-package"
결합하다:
dpkg --get-selections
다음 스크립트에서:
awk 'BEGIN{
FS=" - ";
findmeta="apt-cache search . | grep -i \"metapackage\|meta-package\"";
while ((findmeta | getline) > 0) meta[$1]=$2;
FS=" ";
findinstalled="dpkg --get-selections";
while ((findinstalled | getline) > 0) {
if ($1 in meta) print $1" - "meta[$1]
}
}'
한 줄:
awk 'BEGIN{FS=" - ";findmeta="apt-cache search . | grep -i \"metapackage\|meta-package\""; while ((findmeta | getline) > 0) meta[$1]=$2; FS=" "; findinstalled="dpkg --get-selections"; while ((findinstalled | getline) > 0) {if ($1 in meta) print $1" - "meta[$1]}}'
결과의 예:
emacs - GNU Emacs editor (metapackage)
exim4 - metapackage to ease Exim MTA (v4) installation
linux-headers-amd64 - Header files for Linux amd64 configuration (meta-package)
linux-image-amd64 - Linux for 64-bit PCs (meta-package)
xfce4 - Meta-package for the Xfce Lightweight Desktop Environment
xserver-xorg-input-all - X.Org X server -- input driver metapackage
답변2
"metapackage"
출력의 일부 필드에 문자열이 포함된 설치된 모든 패키지의 이름을 나열하는 다음 명령을 시도해 보십시오 apt-cache show
.
apt-cache show $(dpkg-query -Wf '${Package}\n') |
awk '$1 == "Package:" { pkg = $2 };
$1 == "Section:" && $2 ~ /metapackage/ { print pkg }'