パッケージ一覧のカスタマイズ

パッケージの表示方法のカスタマイズ
パッケージ階層構造のカスタマイズ
パッケージの並べ方のカスタマイズ

パッケージ一覧は大規模にカスタマイズできます。パッケージの表示方法・パッケージ階層構造の形成方法・パッケージの並べ方が、そして表示のまとめ方さえも、自由に変更可能です。

パッケージの表示方法のカスタマイズ

このセクションでは、パッケージ一覧・ステータスライン・ヘッダラインの表示内容と書式の設定方法を説明します。

これらの各領域の書式は、「書式指定文字列」によって定義されます。書式指定文字列とは、%p%S などのような % エスケープを含む一連のテキストです。結果として返される出力は、このテキストを取得し、その中の % エスケープをその意味内容 (以下で説明します) によって置換して生成されます。

% エスケープは固定サイズの場合と「伸長可能」な場合があります。前者の場合、% エスケープは、常に同じ長さのテキストで (欄を埋めるために必要に応じて余分な空白文字を追加して) 置換されます。後者は、固定サイズの欄が使用しない領域をすべて使用するという意味です。伸長可能な欄が複数ある場合は、余分な空白が等しく分配されます。

すべての % エスケープは、デフォルトサイズをもっているか伸長可能であるか、またはその両方です。% エスケープのサイズは、% とエスケープの識別文字の間に書いて変更できます。例えば %20V は、パッケージのインストール候補のバージョンを表す、20 文字分の幅をもつテキストを生成します。% とエスケープの識別文字の間にクエスチョンマーク (?) を置くと、欄の「基本的な」幅を欄の内容に応じて変更可能です。この場合、結果として返される欄が垂直方向に一列に並ばない可能性があることに注意してください!

通常は幅が固定されている特定の % エスケープを伸長可能にしたい場合は、ナンバー記号 (「#」) をエスケープ表記の直後に置いてください。例えば、あるパッケージのインストール候補のバージョンがどんなに長くてもすべて表示するには、書式指定文字列 %V# を使用してください。また、% エスケープ以外のテキストの後に # を置くと、aptitude は、# の前のテキストを、その後ろに余分な空白を挿入して「伸長」します。

まとめると、% エスケープの構文は次のようになります。

%[][?]コード[#]

設定変数 Aptitude::UI::Package-Display-FormatAptitude::UI::Package-Status-FormatAptitude::UI::Package-Header-Format が、それぞれ、パッケージ一覧・パッケージ一覧最上部のヘッダ・パッケージ一覧の下のステータスラインのデフォルトの書式を定義しています。

書式指定文字列では以下の % エスケープが利用可能です。

[注意]注意

以下の説明の一部では、「(その) パッケージ」という言葉を用いています。GUI では、これは表示されているパッケージと現在選択中のパッケージのどちらか一方を指します。コマンドライン検索では、表示されているパッケージを指します。

エスケープ表記名前デフォルトサイズ伸長可能か?説明
%%リテラル %1いいえ これは実際にはエスケープ表記ではありません。出力において、この表記がある場所にパーセント記号を挿入するだけです。
%#数字パラメタ置換可変いいえ 状況によっては、表示用の書式指定文字列に「パラメタ」が含まれていることがあります。例えばコマンドラインで search を実行すると、検索結果を表示する際に、検索にマッチしたグループがパラメタとして使用されます。この書式指定コードは、数字で表されるパラメタで置換されます。
%aアクションフラグ1いいえ パッケージに対して実行予定のあらゆるアクションを簡潔に表す、単一文字のフラグ (図 2.10. 「「アクション」フラグの値」を参照してください)。
%Aアクション10いいえ パッケージに対して実行予定のアクションについての、いくらか冗長な記述。
%B破損の数12いいえ 破損パッケージがない場合は何も生成しません。存在する場合は、破損パッケージ数を表す「Broken: 10」のような文字列を生成します。
%c現在の状態のフラグ1いいえ パッケージの現在の状態を簡潔に表す、単一文字のフラグ (図 2.9. 「「現在の状態」フラグの値」を参照してください)。
%C現在の状態11いいえ パッケージの現在の状態についての、より冗長な記述。
%d説明40はい パッケージ説明・要約版。
%Dパッケージサイズ6いいえ パッケージを含むパッケージファイルのサイズ。
%Hホスト名15いいえ aptitude を実行しているコンピュータの名前。
%iPin プライオリティ4いいえ パッケージバージョンに対しては、指定されたプライオリティ値の中で最も高いものを表示します。パッケージに対しては、強制的にインストールされる予定のバージョンがもしあれば、そのプライオリティ値を表示します。
%Iインストールサイズ6いいえ パッケージが占有するディスク領域の (推定) 量。
%mメンテナ30はい パッケージのメンテナ。
%M自動フラグ1いいえ パッケージが自動的にインストールされたものである場合、「A」を出力します。そうでない場合は何も出力しません。
%nプログラムバージョン0.4.9」の長さ。いいえ プログラムのバージョンを出力します。現在は「0.4.9」です。
%Nプログラム名プログラム名の長さ。いいえ プログラムの名前を出力します。通常は「aptitude」です。
%oダウンロードサイズ15いいえ インストール予定のパッケージがない場合は何も出力しません。パッケージがある場合は、インストール予定の全パッケージファイルの合計のサイズ (必要なダウンロードの量を示す推定値) を表す文字列 (例えば 「DL サイズ: 1000B」) を出力します。
%pパッケージ名30はい パッケージの名前を出力します。パッケージがツリー状の一覧に表示される場合、可能であれば、パッケージの名前はツリー内での深さに応じてインデントされます。
%P優先度9いいえ パッケージの優先度を出力します。
%r逆依存の数2いいえ パッケージに依存しているインストール済みパッケージのおおよその数を出力します。
%R優先度・簡略版3いいえ パッケージの優先度の簡略表記を出力します。例えば「重要」は「」となります。
%sセクション10いいえ パッケージのセクションを出力します。
%S信頼状態1いいえ パッケージが信頼できないものである場合、"U" の文字を表示します。
%tアーカイブ10はい パッケージが発見されたアーカイブ。
%Tタグつき1いいえ パッケージにタグがついている場合は「*」を出力し、そうでない場合は何も出力しません。[14]
%uディスク使用量の変化30いいえ 予定されているアクションによって、使用されるディスク領域の量が変化する場合は、ディスク領域の変化を記述する文字列 (例えば、「100MB のディスク領域を新たに使用します」) を出力します。
%v現在のバージョン10いいえ パッケージが現在インストールされている場合はそのバージョンを、現在インストールされていない場合は <なし> を、出力します。
%Vインストール候補のバージョン10いいえ パッケージが現在入手可能な場合は、パッケージインストール (+) がそのパッケージに対して発行されたときにインストールされるバージョンを、現在入手不可能な場合は <なし> を、出力します。
%Zサイズの変化7いいえ パッケージのインストール・更新・削除によって使用または解放されるディスク領域の量を出力します。

パッケージ階層構造のカスタマイズ

パッケージの階層構造は分類規則によって生成されます。分類規則とは、階層構造の構築方法を記述する一連の規則です。分類規則は規則の「処理の流れ」を記述し、各規則は一部のパッケージを捨てたり、一部のパッケージを含む部分階層構造を作成したり、ツリーを操作したりします。設定項目 Aptitude::UI::Default-GroupingAptitude::UI::Default-Preview-Grouping が、それぞれ、新規に作成したパッケージ一覧とプレビュースクリーンに分類規則を設定します。G を押すと、現在のパッケージ一覧に分類規則を設定できます。

分類規則は、規則 1,規則 2,... というようなコンマ区切りの規則のリストで記述されます。各規則は、例えば versionssection(subdir) というように、必要に応じて引数を後ろにつけた規則名から成ります。引数が必要か否かや、必要とする (あるいは任意で指定可能な) 引数の数は、規則の種類によります。

規則は非末端末端のいずれか一方です。非末端規則は、階層構造の一部を生成してパッケージを後方の規則に渡す、という方法でパッケージを処理します。他方で末端規則は、やはりツリーの一部 (通常はパッケージに相当する項目) を生成しますが、パッケージを後方の規則に渡しません。末端規則が指定されていない場合、aptitude はデフォルトの規則を使用します。デフォルトの規則では、標準「パッケージ項目」が作成されます。

action

パッケージに対して予定されているアクションに応じてパッケージを分類します。更新可能ではなく変更もなされないパッケージは無視されます。これは、プレビューツリーで使用されている分類方法です。

deps

この規則は末端規則です。

展開してパッケージの依存関係を見えるようにできる標準パッケージ項目を作成します。

filter(パターン)

1 つ以上のバージョンがパターンにマッチするパッケージのみを含めます。

パターンが「与えられていない」場合、捨てられるパッケージはありません。これは後方互換性のための機能で、将来削除されるかもしれません。

firstchar

パッケージ名の 1 文字目に基づいてパッケージを分類します。

hier

パッケージの「階層構造」を記述した外部データファイルに応じてパッケージを分類します。

pattern(パターン [=> 
タイトル][, 
...])

カスタマイズ可能な分類規則です。あらゆるパッケージのそれぞれのバージョンは、指定された各パターンにマッチするかどうかをテストされます。最初にマッチしたものがパッケージのタイトルとして使用され、その上でパッケージは、そのようにして与えられたタイトルによって分類されます。タイトルに指定される \N という書式の文字列は、マッチの N 番目の結果によって置換されます。タイトルは、指定されない場合は \1 と仮定されます。

例えば、pattern(~m => \1) とすると、メンテナ (Maintainer) フィールドに応じてパッケージを分類します。タイトルが空の場合はデフォルトで \1 になるので、規則 pattern(~m) でも同じです。

Instead of => title, an entry may end with ||. This indicates that packages matching the corresponding pattern will be inserted into the tree at the same level as the pattern grouping, rather than being placed in subtrees. For instance, pattern(~aremove => Packages Being Removed, ~T ||) will place packages that are being removed into a subtree, and place all the other packages at the current level. Any later grouping policies will apply to both sets of packages, of course.

パターンの書式についてさらに詳しく知りたい場合は、検索パターン項を参照してください。

priority

優先度に応じてパッケージを分類します

section[(モード[,passthrough])]

セクション (Section) フィールドに応じてパッケージを分類します。

モードには以下のいずれかを指定できます。

none

セクションフィールド全体に基づいたグループ。「non-free/games」 のようなカテゴリが作成されます。

topdir

セクションフィールドのうち 「/」 より前の部分に基づいたグループ。/ がない場合は main が代わりに使用されます。

subdir

セクションフィールドのうち 「/」 より後ろの部分に基づいたグループ。/ がない場合はフィールド全体が使用されます。

passthrough が指定されている場合、何らかの理由で実際のセクションフィールドがないパッケージ (例えば仮想パッケージ) は、次の分類レベルに渡される前に下位のカテゴリに入れられることはなく、そのまま渡されます。

status

パッケージを以下のカテゴリに分類します

  • インストール済み

  • インストールされていない

  • セキュリティアップデート

  • 更新可能

  • 廃止

  • 仮想

tag[(facet)]

Debian パッケージファイル内に格納されたタグ情報に応じてパッケージを分類します。facet が指定されている場合、その facet に相当するタグのみが表示され、その facet がないパッケージは隠されます。facet が指定されていない場合は、全てのパッケージが一度以上表示されます (タグのついていないパッケージは、タグのついているパッケージとは別に一覧表示されます)。

debtags についてさらに詳しく知りたい場合は、http://debtags.alioth.debian.org を参照してください。

task

利用可能なタスクを含む「タスク」と呼ばれるツリーを作成します (タスクに関する情報は、tasksel パッケージ内の debian-tasks.desc から読み込まれます)。task 以降の規則は、タスクの兄弟ノードとしてカテゴリを作成します。

versions

この規則は末端規則です。

展開してパッケージのバージョンを見えるようにできる標準パッケージ項目を作成します。

パッケージの並べ方のカスタマイズ

パッケージ一覧内のパッケージはデフォルトでは名前順に並べられます。しかし、異なる基準 (例えばパッケージサイズ) で並べると有益なことがしばしばあるので、aptitude では、並び替え規則を変更するだけで並べる基準を変更できるようになっています。

前のセクションで説明した分類規則と同様、並び替え規則はコンマ区切りのリストです。リスト内の各項目は並び替え規則の名前で、最初の規則で複数のパッケージが「同等」になる場合は 2 番目の規則が並び替えに使用される、というように処理されます。規則の前にチルダ文字 (~) を置くと、その規則の意味を通常と逆にできます。例えば priority,~name とすると、優先度によってパッケージを並び替えますが、同じ優先度のパッケージは名前による並び替え結果の逆順で並べられます。

アクティブなパッケージ一覧の並び替え規則を変更するには、S を押してください。

以下の規則が利用可能です。

installsize

インストール時に必要となるサイズの推定量でパッケージを並び替えます。

name

名前でパッケージを並び替えます。

priority

優先度でパッケージを並び替えます。

version

バージョン番号でパッケージを並び替えます。



[14] タグづけは現在サポートされていません。このエスケープ表記は将来使用するためのものです。