3

独自の rpm パッケージを作成しようとしていますが、疑問がいくつかあります。

まず第一に、いくつかの場所で、ルートとして rpm をビルドするべきではないと警告しました。何故ですか?ビルド プロセス中、rpmbuild はファイルをシステムにインストールするインストール ステージを通過する必要があります。

私が理解している限り、私がルートでない場合、それはできません。rpmbuild プロセスがエラーで終了します。問題は、システムに何かをインストールせずに rpm を構築することが本当に可能かどうかということです。それとも最終的に、ビルド プロセスを完了するために root になる必要がありますか?

4

2 に答える 2

7

稼働中のファイルシステムで RPM をビルドすると、既存のものを上書きしますこれは、ビルド プロセスの意図しない副作用であり、何としても回避する必要があります。

RPM をビルドする正しい方法は、すべてのファイルをステージング ディレクトリ (通常は/var/tmp) にインストールすることです。これにより、ライブ システムとの競合が回避され、次のことが保証されます。

  • 意図したよりも多くのファイルをパッケージ化しようとしない
  • パッケージング時にファイルを見逃すことはありません

これには root 権限は必要ありません。RPM ビルド スクリプトを実行するために root が必要な場合、それは間違っています。

root 権限を必要としないため、root として実行しないでください。可能な限り root として実行することは避けてください。

于 2011-09-13T15:20:54.353 に答える
0

パッケージをビルドする場所をシステムに通知します。「_topdir」の値については、$ HOME/.rpmmacrosファイルを参照してください。

rpm --eval %{_topdir} # get your current value

次に、ビルドルート値を変更します。

rpmbuild --buildroot=[path] ..

(--buildrootキーは、root以外のユーザーが独自のrpmパッケージをビルドする機能のみを取得します)

私が言う何か間違っているなら、私を訂正してください。

于 2011-10-10T16:29:21.930 に答える