.deb
プログラムで内容を抽出する必要があるパッケージがあります。ただし、.deb
パッケージ形式の仕様など、このトピックに関するリソースを見つけることができません。これにより、全体をリバースエンジニアリングせずに問題に取り組む方法がわかります。
何か案は?
実際、非常に単純です。
ar xv <name of deb file>
C内から呼び出すには、次を使用できますsystem
。
system("ar xv <name of deb file>");
このためのライブラリが見つからず(私も見つかりませんでした)、システムコマンドの実行に頼ることができない場合は、いつでも独自のライブラリを実装してarアーカイブを読み取ることができます。arファイル形式はそれほど複雑ではありません。
パッケージ形式の設計目標の1つは、.deb
既存のツールやライブラリを使用して簡単に抽出できるようにすることでした。トップレベルの構造は確かにar
ファイルですが、その中には、従来はファイルのペアである別のレベルの構造がありtar
ます。その他のドキュメントについては、たとえばhttp://en.wikipedia.org/wiki/Deb_(file_format)を参照してください。
ar
既存のライブラリが見つからない場合は、GNUソースを使用して独自のライブラリを構築できます。ar / tar /cpio/あなたが持っているもののための一般的なライブラリがあることを期待します。
libarchivear
がこのフォーマットをサポートしているのを見たばかりですが、他にもたくさんあります。