0

次のような仕様ファイルがあります。

BuildRoot: /tmp/build_%{name}-%{version}-%{release}

%prep
...
...

%install
# Directories
install -m 755 -d %{buildroot}/usr/app/mypackage/config
install -m 755 -d %{buildroot}/usr/app/mypackage/src
....

# Bash script
install -m 755 script/script1.sh %{buildroot}/usr/app/mypackage/config/script1.sh
install -m 755 script/script2.sh %{buildroot}/usr/app/mypackage/config/script2.sh
install -m 755 script/myapp-log %{buildroot}/etc/logrotate.d/myapp-log

rpmbuild を実行すると、次のエラーが表示されます。

install: cannot create regular file `/tmp/build_my_app-1.0-2/etc/logrotate.d/myapp-log'

/etc/ディレクトリ内にディレクトリを手動で作成し、次に/etc/logrotate.dディレクトリを作成することで、これを回避できます/tmp/build_my_app-1.0-2/

rpmbuild を再実行すると、機能します。

これは、インストールセクションにこのディレクトリを作成していないためだと思いますが、アプリケーションに直接関係していないため、入れたくありません。

私の推測では、手動の介入なしでビルドが機能するように、これを修正するために使用できる巧妙なタグがあると思います。

私の質問: 誰かがこれを達成する方法を提案してもらえますか (それが可能であると仮定します)、または最初にこれを設定するために rpmbuild に関するスクリプトを作成する必要があるかどうかを教えてください。

4

1 に答える 1

3

%installセクションにインストールディレクトリを作成する手順がありません。「異なる」ルートでビルドできるため、特定のディレクトリ($ {buildroot} / etcなど)が存在することを期待できないことに注意してください。

追加してみてください

 mkdir -p ${buildroot}/etc/logrotate.d

ファイルをにコピーするinstallコマンドの直前${buildroot}/etc/logrotate.d

于 2011-09-13T14:13:34.217 に答える