web-dev-qa-db-ja.com

Debianパッケージを作成するときに使用するユーザー/ファイル所有者は何ですか?

Dpkg-debを使用して、warファイルといくつかのスクリプト用のシンプルなバイナリパッケージを作成しています。

1つの問題は、「goofy」と呼ばれるローカルユーザーとしてこれを行うと、パッケージ内のファイルはgoofyが所有するということです。

後でこのパッケージをルートとしてインストールしようとすると、/ opt/ourpackageに入れたファイルがすべてgoofyによってまだ所有されていることに驚きました。

現在、ほとんどの人のマシンには間抜けなユーザーは存在しないので、これを処理する最善の方法は何ですか?

次の2つのオプションがあると仮定します。

  1. すべてのファイルがすべてのサーバーに存在すると想定できるユーザー、つまりルートによって所有されるようにします。
  2. 最初に間抜けな(または適切な)ユーザーを作成するいくつかのインストール前スクリプトを作成します。

どのような方法が推奨されますか?

答えが2の場合、これを行うためにパッケージに追加できる試行済みのスクリプトはありますか?

Option1を選択しますが、これはパッケージを作成およびビルドする「ユーザー」がjenkinsであるため、rootが所有するファイルを簡単に作成できません。

3
John Little

最後の解決策は、fakeroot(Sudo apt-get install fakeroot)を使用することでした。

その後、パッケージャはパッケージ化するファイルを所有できますが、実行すると:

fakeroot dpkg-deb --build debian

すべてのファイルがルートによって所有されていると考えるようにビルダーを偽装し、lintianを満足させ、ターゲットサーバーにルートとしてファイルをインストールします。

4
John Little