書式
dpkg-split [option...] command説明
dpkg-split は Debian バイナリパッケージのファイルを小さいパートに分割したり、それらを再度統合したりするツールであり、フロッピーディスクのような容量の小さい媒体上に、サイズの大きいパッケージファイルを保管できるようにする。これは、--split, --join, --info オプションを手動で指定することにより行われる。
dpkg-split には --auto オプションにより実行される自動モードも備わっている。自動モードでは、存在しているがまだ統合されていないパートのキューを管理することで、すべてのパートが確認できた時点でそれらを統合する。キューの管理は、--listq および --discard オプションで行うことができる。
分割、統合、キューイング処理のいずれも、標準出力に有用なメッセージを出力する。これらは無視しても問題ない。
コマンド
- -s, --split complete-archive [prefix]
-
単一の Debian バイナリパッケージを幾つかのパートに分割する。
各パートは、prefix.NofM.deb のように名づけられる。ここで、N は 1 から始まるパート番号であり、M はパートの総数である (いずれも 10 進数である)。
prefix が指定されていない場合は、complete-archive ファイル名が、ディレクトリ部分も含めて用いられるが、末尾の .deb 部分は削除される。
- -j, --join part...
-
パッケージファイルのパート群を集約して、分割前のオリジナルファイルに統合する。
引数として指定された各パートのファイルは、オリジナルのバイナリファイルのすべてのパートを含んでいること。パートを順番に並べて指定する必要はないが、同じパートのファイルを複数回指定することはできない。
各パートは分割時に指定されたサイズが同一である必要がある。これは、通常各パートが単一の dpkg-split --split の実行から生成されることを意味する。
パートのファイル名は、統合処理において重要ではない。
生成されたファイルは、デフォルトで package_version_arch.deb というファイル名になる。
- -I, --info part...
- パートのファイルに関する情報を人が読みやすい形式で表示する。バイナリパッケージのパート以外のファイルが引数で指定された場合は、それを指摘するメッセージを (標準出力に) 代わりに表示する。
- -a, --auto -o complete-output part
-
自動的にパートをキューイングして、可能であればパッケージを再統合する。
part で指定されたパートが検査され、同じパッケージファイルのパートのキューにあるパッケージの別のパート (もしあれば) と比較される。
part が属するパッケージファイルのすべてのパートが利用可能な場合、パッケージは統合され、complete-output に書き出される (ファイルが既存の場合もエラーとはならないが、通常は推奨されない)。
それ以外の場合、part がキューにコピーされ、complete-output は作成されない。
part が分割されたバイナリパッケージのパート以外の場合、dpkg-split は戻り値 1 で終了する。何らかのトラブルが発生した場合、戻り値 2 で終了する。
--auto を使用する場合、--output もしくは -o オプションも指定すること (これを必須にしないと、呼び出したプログラムが出力ファイル名を知る術がなくなってしまう)。
- -l, --listq
-
統合されるパッケージのキューの内容を一覧表示する。
キューにパートが存在している各パッケージファイルについて、パッケージ名とキューにあるパート、キューに格納されているバイト数が出力される。
- -d, --discard [package...]
-
パッケージの残りのパートが揃うまでキューに格納されているパートをキューから削除する。
package が指定されなかった場合、キューは完全に消去される。何らかのパッケージが指定された場合、そのパッケージのパートのみが削除される。
- -?, --help
- 利用方法を表示して終了する。
- --version
- バージョン情報を表示して終了する。
オプション
- --depotdir directory
- 自動的な統合を待っているパートのキューが置かれているディレクトリを指定する。デフォルトは /var/lib/dpkg である。
- -S, --partsize kibibytes
- ファイル分割の際のパートの最大サイズを kibibyte (1024 byte) 単位で指定する。デフォルトは 450 KiB である。
- -o, --output complete-output
-
統合の際の出力ファイル名を指定する。
これは、(--join による) 手動統合の際のデフォルトのファイル名に優先する。また、(--auto による) 自動でのキューイングおよび統合の際には必須である。
- -Q, --npquiet
- 自動でのキューイングおよび統合が行われる際、dpkg-split は通常バイナリパッケージのパートでない part が指定されるとメッセージを出力するが、このオプションによりメッセージが抑止され、dpkg のようなプログラムがパッケージの分割や統合を扱う際に、余計なメッセージを出力することが避けられる。
- --msdos
-
--split で生成される出力ファイル名として MS-DOS 互換のファイル名を強制する。
これにより、入力ファイル名から生成されたデフォルト値の prefix、引数として指定された prefix いずれもが切り詰められる。英数字は小文字にされ、プラス記号は x に置き換えられ、その他の文字は破棄される。
必要な切り詰めが行われた結果として、prefixNofM.deb 形式のファイル名が生成される。
終了ステータス
- 0
- 要求された分割、統合、その他のコマンドは成功した。--info コマンドはファイルがバイナリパッケージのパートでなかった場合も含め、成功としてカウントする。
- 1
- --auto の場合のみ発生し、part ファイルがバイナリパッケージのパートではなかったことを示す。
- 2
- Fatal or unrecoverable error due to invalid command-line usage, a file that looked like a package part file but was corrupted, or interactions with the system, such as accesses to the database, memory allocations, etc.
ファイル
- /var/lib/dpkg/parts
-
パートを構成するファイルが自動統合を待機するデフォルトのキューディレクトリ。
このディレクトリ内のファイル名は dpkg-split の内部形式となっており、その他のプログラムから参照されることを想定していない。いかなる場合もファイル名の形式に依存すべきではない。
バグ
キューにあるパッケージの詳細は、キューディレクトリを自分で調べない限り確認することができない。ファイルがバイナリパッケージのパートかどうかを簡単に確認する手段が存在しない。