메타 패키지에 대한 공식적인 정의는 없습니다. 비공식적 인 정의는 메타 패키지가 단지 의존성을 위해서만 설치되도록되어 있고 자체적으로 유용한 파일을 포함하지 않는 것입니다.
메타 패키지를 파일이없는 패키지로 정의 할 수 있습니다. 패키지 데이터베이스에서이를 확인할 수있는 방법이 없습니다. 파일 데이터베이스를 사용하고 패키지에 디렉토리 만 포함되어 있는지 확인할 수 있습니다 (많은 패키지에 디렉토리가 몇 개 포함되어 있음). 사실, 대부분의 metapackages는 몇 파일을 포함 /usr/share/doc/<package name>
하십시오 copyright
파일, 변경 로그, 때로는 몇 가지 더. 다음은 메타 패키지를 /usr/share/doc/<some directory>
하위 디렉토리가 아닌 파일 과 주요 디렉토리 만 포함하는 것으로 메타 패키지를 정의하는 근사치입니다 .
if ! apt-file -F list $package | grep -qvE '^/(usr(/share(/doc(/[^/]*(/[^/]*)?)?)?)?)?$'; then
echo "$package looks like a metapackage"
fi
또 다른 방법은 찾는 것입니다 패키지 태그 와 debtags
. 메타 패키지에 일반적으로 사용되는 몇 가지 태그가 있습니다.
debtags tag ls $package | grep -x -e 'role::metapackage' -e 'role::dummy' -e 'special::meta'
또 다른 방법은 작은 크기의 패키지를 찾는 것입니다. 각 디렉토리는 4kB로 계산되므로 임계 값을 선택할 때 적절하게 계획하십시오 (다시 말하면 근사치 임).
aptitude -F '%I %p' search "~n^$package\$"
반영하면 메타 패키지가 아닌 가상 패키지 를 의미하는지 궁금합니다 . 가상 패키지는 실제로 패키지가 아니라 Provides:
필드 에서 사용되는 패키지 이름 입니다. 로 나열 할 수 있습니다 aptitude search '~v'
. apt-cache show
하나에서 실행 하면 "순전히 가상이므로 패키지 'zcav'에서 버전을 선택할 수 없습니다"가 표시됩니다. 실행 aptitude show
은 패키지를 제공하는 패키지를 나열합니다. 가상 패키지를 표시하는 편리한 방법은 다음과 apt-cache
같습니다. 가상 패키지가 아닌 패키지의 경우 한 줄을, 가상 패키지의 경우 여러 줄 (각 공급자 당 한 줄)을 인쇄합니다. 단일 공급자가 있어도 패키지가 가상인지 알 수 있습니다 공급자의 이름이 다르기 때문입니다.
apt-cache -n search "^$package\$"