2010-12-21 4 views
8

私はパッケージ化して、Arch Linux User Repositories、AURに投稿したいソフトウェアを作成しました。私もパッケージ化して、ArchのパッケージマネージャPacmanを使って自分のマシンにインストールしましたが、今ではフォルダとファイルをどのように構造化するのだろうと思いますか? |/正常なファイル構造を維持しながらLinuxソフトウェアをパッケージ化する

ビルド:私はソフトウェアを書いたとき

は通常、私は、この構造を使用しますsrc/| makefile

少なくとも、このソフトウェアの場合、makefileはsrc /からbuild /に.cppファイルをコンパイルするだけです。 Archパッケージを作成するには、プログラムをデーモンとして正しく使用するための.rcファイルと、makepkgプログラムにインストーラパッケージをビルドする方法を伝えるファイルであるPKGBUILDファイルも作成する必要がありました。しかし、Archに固有のものです。 debianのためにプログラムをパッケージ化したいのであれば、これを行うために別のファイルセットが必要ですが、これらのファイルはdebianのためにしか動作しません。今は、.rcファイルとPKGBUILDファイルをプログラムのルートフォルダに置くことはできません。なぜなら、特にdebian用のパッケージをビルドするためのファイルがあれば、 "混乱してしまう"でしょう。ディストリビューション固有のファイルですか?私はそれを追跡するために、プログラムのルートフォルダに-a-least-を入れる必要があります。そして、私の最初の考えは、distro/arch/arch Linux固有のファイルのための構造に行き、次にPKGBUILDファイルプログラムのルートフォルダにあるmakefileを実行し、ビルド/コンパイルしたファイルをdistro/arch /にコピーしてから、何かをする前に、私はPKGBUILDをそのように動作させることができず、#archlinuxのFreenodeそれは賢明な考えではないと言いました。

だから、どこにディストリビューション固有のファイルを置くのですか?もし私がArchにこのプログラムを提供しなければならないことを知っていれば、Makepkgのためだけに構造化するのは簡単でしょうが、ソフトウェア的なものを投獄したくないし、debianのような他の市長ディストリビューションのパッケージを提供することも想像できるでしょう純粋なファイル構造を維持しながら、これをどのように達成するのですか?

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

答えて

2

非常に頻繁にあなたが見つけることでDebianの特定のファイルを持っている「のdebian」というディレクトリをtarボール。私は同じルートに行き、ディレクトリ 'archlinux'を作成し、そこにファイルを置くでしょう。

次に、PKGBUILDの使い方を説明するarchlinuxディレクトリにREADMEファイルを作成します。

あなたのMakefile 'package-arch'にPKGBUILDをルートディレクトリにコピーし、makepkgを実行してから、冗長なPKGBUILDを削除するというルールを書くことができます。

私はArchの人々にこの制限を解決するためのバグレポートを書くつもりです。しかし、makepkg -p archlinux/PKGBUILDを試しましたか?

+1

ypnosさん、本当にありがとうございます。私はプロジェクトをどのように構築するのか非常に感銘しました。私は、makefileをディストリビューションとミックスしないことにしました。makepkg -pコマンドはどちらも動作しませんでした。しかし、私はPKGBUILDファイルにsrc /からソースファイルを取得してarchlinuxにコピーするように伝えることができたことを知りました。 – chrisbuchholz

関連する問題