apt-cacheはパッケージの命名にどのようなパターンマッチングを許可しますか?

apt-cacheはパッケージの命名にどのようなパターンマッチングを許可しますか?

問題はapt-cache外部コマンドに関するものですsearch regex

たとえば、アスタリスク文字をワイルドカードとして使用できることがわかっていますが、apt-cache policy 'firefox*'他の可能なアイテムの文書が見つかりません。ファイル名拡張子と同じですか?extglobスイッチのようなものもありますか?

私が解決しようとしている実際の問題は、すべてのパッケージを除くすべてをapt-cache policy表示することです。'firefox*'-l10n-

ベストアンサー1

パッケージ名は、ドキュメントの説明に従って処理されます。~のためapt-get install(はい、はっきりしません):

与えられた式に一致するパッケージがなく、式に '.'、 '?'または、「*」のいずれかが含まれている場合は、POSIX正規表現と見なされ、データベース内のすべてのパッケージ名に適用されます。次に、一致をインストール(または削除)します。一致は部分文字列で行われるため、「lo.*」は「how-lo」および「lowest」と一致します。これを避けるには、「^」または「$」文字を使用して正規表現を固定するか、より具体的な正規表現を作成します。

厳密に言えば、このチェックは、利用可能なパッケージ名に対してglobを実行した後に行われます。したがって、最初にパッケージの仕様で正確に一致することを確認し、次にglobの一致(?および使用*)を確認し、何も見つからない場合はパッケージの仕様を確認します。.、、、?またはを含む場合は*正規表現として解釈されます。 (apt-cache policy 'firefo?'一致にワイルドカードのみを使用し、apt-cache policy 'firefox?'最後に正規表現を使用するを実行してワイルドカードの動作を確認できます。)

apt-cache policy 'firefox*'一致のためにglobを使用してください。正規表現を使用して強制的に一致させるには、出力でforをチェックして、式がapt-cache policy 'firefox.*'globまたは正規表現で一致することを確認できます。mozilla-firefox

apt-cache search引数は次のようになるため、正規表現を処理するために明示的に文書化されています。いつも正規表現として扱われます。

正規表現でサポートされている型を考慮すると、apt除外-l10n-できません。この回答もっと学ぶ。

おすすめ記事