パッケージがメタパッケージであるかどうかをコマンドラインから、おそらくapt-get、aptitude、またはapt-cacheを使用して判断するにはどうすればよいですか?
私が試してみました:
apt-cache show texlive-full
apt-cache showpkg texlive-full
しかし、このパッケージにメタを伝える唯一の方法は、「en-description」フィールドを読むことです。
これを行うためのより自動化された方法はありますか?それは私にyes/no応答を与えますか、または少なくともこれに専用の「en-description」などのフィールドがありますか?
メタパッケージの正式な定義はありません。非公式の定義は、メタパッケージは依存関係のためにのみインストールされることを意図したものであり、独自の有用なファイルが含まれていないということです。
ファイルを含まないパッケージとしてメタパッケージを定義できます。パッケージデータベースからこれを判断する方法はありません。 ファイルデータベース を使用して、パッケージにディレクトリのみが含まれていることを確認できます(このようなパッケージには、いくつかのディレクトリが含まれています)。実際、ほとんどのメタパッケージには、/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
で package tag を探すことです。メタパッケージで一般的に使用されるタグがいくつかあります。
debtags tag ls $package | grep -x -e 'role::metapackage' -e 'role::dummy' -e 'special::meta'
別のアプローチは、サイズの小さいパッケージを探すことです。各ディレクトリは4µkBとしてカウントされるため、しきい値を選択する際にそれに応じて計画してください(これも概算です)。
aptitude -F '%I %p' search "~n^$package\$"
熟考すると、メタパッケージではなく 仮想パッケージ を意味しているのだろうか。仮想パッケージは実際にはパッケージではなく、Provides:
フィールドで使用されるパッケージ名です。 aptitude search '~v'
でリストできます。 1つでapt-cache show
を実行すると、「パッケージ 'zcav'は純粋に仮想であるため、バージョンを選択できません」と表示されます。 aptitude show
を実行すると、それを提供するパッケージがリストされます。仮想パッケージを表示する便利な方法はapt-cache
を使用することです。これにより、非仮想パッケージの場合は1行、仮想パッケージの場合は複数行(プロバイダーごとに1行)が出力されます。プロバイダーの名前が異なるため、単一のプロバイダーがあります。
apt-cache -n search "^$package\$"
入ってみてください
apt-cache search 'metapackage | meta-package'
長いリストが表示され、grep
を使用して、科学関連のすべてのメタパッケージを表示します。
apt-cache search 'metapackage | meta-package' | grep -i science
これは長いリストを返します(ここではshortened itを持っています)
science-astronomy - Debian Science Astronomy packages
science-astronomy-dev - Debian Science Astronomy-dev packages
science-biology - Debian Science Biology packages
science-chemistry - Debian Science Chemistry packages
science-dataacquisition - Debian Science data acquisition packages
science-dataacquisition-dev - Debian Science data acquisition development packages
science-distributedcomputing - Debian Science Distributed Computing packages
science-electronics - Debian Science Electronics packages
science-electrophysiology - Debian Science packages for Electrophysiology
science-engineering - Debian Science Engineering packages
science-engineering-dev - Debian Science Engineering-dev packages
science-geography - Debian Science Geography packages
science-highenergy-physics - Debian Science High Energy Physics packages
すべてのKDE
メタパッケージを見つけるために、KDE
などの科学の代替をいくつでも使用できます。
これはおそらくapt-cache
でできる最善の方法ですが、探したいメタパッケージのほとんどをすばやく見つける必要があります。探しているものがすべて正確に見つからない場合、最も簡単なことは、Synaptic
のメタパッケージセクションを調べることです。