8

そこで、パッケージ化してArch LinuxユーザーリポジトリAURに投稿したいソフトウェアを作成しました。これまで、ディストリビューション用に何もパッケージ化したことがないことに注意してください。また、パッケージ化して自分のマシンにインストールしました。 ArchのパッケージマネージャーPacmanを介して成功しましたが、今、私は一体どうやってフォルダーとファイルを構造化するのだろうかと思っています。

通常、ソフトウェアを作成するときは、次の構造を使用します。

ビルド/| src / | makefile

少なくとも、このソフトウェアの場合、makefileは.cppファイルをsrc/からbuild/にコンパイルするだけです。Archパッケージを作成するには、.rcファイルを作成して、プログラムをデーモンとして適切に使用する必要がありました。PKGBUILDファイルは、makepkgプログラムにインストーラーパッケージのビルド方法を指示するファイルです。これら2つのファイルはただし、Archに固有です。たとえばdebian用にプログラムをパッケージ化したい場合は、これを行うために別のファイルセットが必要になりますが、これらのファイルはdebianでのみ機能します。さて、.rcファイルとPKGBUILDファイルをプログラムのルートフォルダに入れることはできません。これは、特にdebian用のパッケージをビルドするファイルもある場合は「混乱」するためですが、どこに置くのでしょうか。ディストリビューション固有のファイル?それを追跡できるようにするには、プログラムのルートフォルダ(少なくとも)にそれを置く必要があります。

では、distro固有のファイルはどこに置くのですか?このプログラムをArchに提供するだけでよいことを知っていれば、Makepkgだけにプログラムを構築するのは簡単ですが、そのようなソフトウェアを投獄するのは好きではありません。また、debianのような他の市長ディストリビューションにパッケージを提供することも想像できます。正常なファイル構造を維持しながらこれを実現するにはどうすればよいですか?

よろしく、クリスブッフホルツ

4

1 に答える 1

2

多くの場合、tarball 内に「debian」という名前のディレクトリがあり、そこに debian 固有のファイルが含まれています。同じ方法で「archlinux」というディレクトリを作成し、そこにファイルを置きます。

次に、PKGBUILD の適切な使用方法を説明する README ファイルを archlinux ディレクトリに置きます。

解決策の 1 つは、PKGBUILD をルート ディレクトリにコピーし、makepkg を実行して、冗長な PKGBUILD を削除するルールを Makefile 'package-arch' に書き込むことです。

これはハックなので、この制限を修正するために Arch の人々にバグレポートを書きます。しかし、あなたは試しましたmakepkg -p archlinux/PKGBUILDか?

于 2010-12-21T11:44:43.977 に答える