次のファイルがある大きなプロジェクトがあります。
この製品は、Ubuntu Linux(Lucid)をターゲットO.S.として使用して、雇用主がすでに選択したアプライアンスハードウェアにインストールされます。インストールとアップグレードを容易にするために、アーカイブをDebianパッケージとして配布することを目標としています。さらに、お客様ごとに適切な値を「入力」する必要のある多くのERBテンプレートがあるため、 ポストインスト スクリプトは、私たちの目的に特に便利です。
補足として、Debianパッケージは、社内で管理するサーバーリポジトリに保存されます。
この段階で私は dh_make debianディレクトリと関連ファイル(例:ルール、コントロールなど)を作成しますが、生成されたルールファイルは私の目的にとってはやり過ぎのようです。
この説明に基づいて、 「ルール」ファイルが本当に必要なのは、単にソースディレクトリ(またはアーカイブ内)から以下に示すターゲットディレクトリにファイルをコピーすることだけです。:
Debianポリシーマニュアルといくつかのハウツーを読みました。 いけない 使用するルールファイルを変更する mkdir ディレクトリを作成するには、一般的に dh_ ほぼすべてのインストール目的のニーズに対応できるアプリ(たとえば、dh_installdirsなど)。これらのマニュアルページ dh_ 関連するアプリはせいぜいおおざっぱで、私は「模範」的な人です。
とは言っても、自分を手に入れるための最善のアプローチは何かについて少し迷っています ルール さまざまなコンパイル済みバイナリとRuby/Railsテキストファイルを目的の場所にインストールするためのファイル。
これが私のイニシャルです ルール ファイル。これは、dh_makeが作成する標準の定型ルールファイルです。私の考えでは、 インストール 次に、そのセクション内でディレクトリを作成したり、ファイルをコピーしたりするための適切なコマンドを見つけます。
アドバイスや提案は大歓迎です。
#!/ usr/bin/make -f package = testapp CC = gcc CFLAGS = -g -壁 ifeq(、$(findstring noopt、$(DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 clean: dh_testdir dh_clean rm -f build インストール:build dh_clean dh_installdirs echo "ここにインストールスクリプトを配置します" cp $(CURDIR)/testapp-2.0.tar.gz $(CURDIR) /debian/$(package)/opt/testapp-2.0 echo "Finished copy folder" build: touch build binary-indep:install #アップロードするアーキテクチャに依存しないファイルはありません #このパッケージによって生成されました。何かあった場合は、 #ここで作成します。 。] dh_installdocs -a dh_installchangelogs -a dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary:binary-indep binary-Arch 。PHONY:バイナリバイナリ-アーカイブバイナリ-インデップクリーンチェックルート
あなたはすでにあなた自身の答えを持っていますが、私はいくつかのことを指摘します。
あなたはこれを非常に複雑な方法で行っているようです。ファイルを特定のディレクトリにコピーするだけの場合は、debian/mypackagename.install
を次の形式で記述します。
path/to/file/relative/to/source/root path/to/install/relative/to/system/root
(/
の前に/usr
を追加しないでください。または/opt
、またはターゲットディレクトリが何であれ。詳細についてはman dh_install
を参照してください)
次に、debian/rules
は次のようになります。
#!/usr/bin/make -f
%:
dh $@
ソースルートにある種のメイクファイルなどがある場合は、これを上記のrules
ファイルに追加します。
override_dh_auto_build:
override_dh_auto_install:
7
にdebian/compat
を入れることを忘れないでください。
また、/opt/
や/usr/local/
などにファイルをインストールしないでください。これらは、Debianによってインストールされたファイルではありませんパッケージ。 Debian は/usr/share/yourcompany/
へのインストールを推奨します。 juzzlin が以下に示すように、Ubuntu Software Centerには異なる要件がある場合があります。
具体的には、mypackage.install
ファイルは次のようになります。
src/bin/* usr/bin
src/etc/* etc/