ビルドしたdebianパッケージには、ファイルのtarボール、制御ファイル、postinstファイルが含まれています。 dpkg-debを使用してビルドされ、dpkgを使用して正しくインストールされます。debianパッケージの内容のランタイムインストールディレクトリ
私が作ってみたいのは、ファイルのインストールディレクトリが、dpkg -iがdebファイルで実行されるときに設定される環境変数に基づいて実行時に決定されることです。私postinstスクリプトの環境変数をエコーし、私は適切にそのセットを見ることができます。
私の質問:
1)は、実行時に動的にインストールディレクトリを決定することが可能ですか?
2)どうすれば可能ですか? rulesファイルとmypackage.installファイルについて読んだことがありますが、どちらかがこれを達成できるかどうかわかりません。
ファイルをposinstスクリプト内のターゲットの場所にコピーすることで、ファイルをハックする可能性がありますが、可能であれば正しい方法で実行することをお勧めします。
ありがとうございます!
インストールに '/ usr'以外のルートを使用するために' dpkg'に渡すことができるオプションがあります。 'deb'パッケージにはその意味での"インストールディレクトリ "がありません。あなたが今持っているものの例とそれを望むものを追加しておけば助けになります。理論的には、あなたの 'postinst'スクリプトから何かを移動することができますが、私はあなたを強く落胆させます。 – tripleee
良いアイデア。私は--instdir =を使って試してみましたが、ファイルをコピーしましたがpostinstは--instdirがchrootを実行してから実行されないので、そこにdpkg adminディレクトリもなければなりません。私はまた、2つのディレクトリを分割できるかどうかを調べるために--rootと--admindirを組み合わせて試してみました。 rpmには再配置フラグがあるので、パッケージの場所を移動できます。このパッケージは2つの異なる組み込みLinuxディストリビューション上の異なる場所になければならないので、私は動的ディレクトリを持たなければなりません。例として、異なるマシン上の異なる場所に存在する1つのファイルをtarball内に仮定します。 –
ファイルがconffileでない限り、私は単純に2つの異なる 'deb'パッケージを作成します。例はまだ助けになります。典型的なパッケージ管理ファイルは、 '/ usr/lib/yourpackage.so'と典型的なconffileのようなものです。 '/ etc/yourpackage.cfg'を実行します。 – tripleee