.debからPKGBUILDを作成します


11

私が持っている.deb基本的に、ソフトウェアのバイナリが含まれているDebianパッケージ/usr/share/bin圧縮フォルダdata、ファイル、およびその他のファイルのチェックサムを含む別のメタデータ圧縮ファイルを。

私の目標は、PKGBUILDそのような.debパッケージをarchlinuxに正しくインストールするを作成することです。

それを行う適切な方法は何ですか?

関数を使用/usr/share/binしてそのディレクトリの内容をpkg /usr/share/binfakeroot環境にコピーするのに十分build()ですか?/usr/share/binビルドされたパッケージが実際にインストールされると、フォルダーは実際の場所にコピーされますか?


6
基本的に、はい(package関数を使用する場合を除く)。AURで終了する他のパッケージを探し-bin、同じアプローチを使用します...
jasonwryan '27

回答:


9

はい、バイナリソースを持つ他のPKGBUILDと同じように動作します-抽出してファイルをコピーします。言及しなければならない唯一のことは、DEB-アーカイブは3つの他のファイルで構成されていることです- 、debian-binary、。control.tar.gz data.tar.gzmakepkgは第1レベルのアーカイブのみを抽出するため、手動で抽出する必要がありますdata.tar.gz

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

または、deb-archiveをnoextract配列に配置して、手動でのみ抽出することもできますdata.tar.gz

$ ar p source.deb data.tar.gz | tar zx

makepkg$srcdir関数を実行する前に現在のディレクトリをに変更するので、これを含める必要はありません...
jasonwryan

@jasonwryan、何人かの開発者は、そのようなことが真実であり続ける保証はないと述べています。寿命を延ばすために、慣習的なcd "${srcdir}"行をそのままにしておくことは理にかなっています。
HalosGhost 14

1
@HalosGhost聞いてないよ。同じ論理によって、それが偽になることは保証されません... :)
jasonwryan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.