31

スペックファイルがあります。システム上の 1 行のファイルから値を取得する仕様変数を %define する必要があります。

例えば

%define path `cat /home/user/path_file`

そしてpath_fileには1行です

/var/www/html/hosts

これは部分的に機能します。RPM BUILD の出力で始まると言うと、値${path}が文字通り私のコマンドcat /home/user/path_fileである場合もあれば、値が path_file (/var/www/html/hosts) の行である場合もあります。

4

1 に答える 1

42

%(cmd)仕様ファイルの先頭でrpmbuild 変数を定義できます。コマンドは中かっこではなく、かっこで囲まれていることに注意してください。例:

%define whoami %(whoami)

また、スクリプトやビルド/インストール セクションなど、spec ファイルの他の場所では、次のように中括弧内で通常どおり変数を使用します。

echo "The user that built this is %{whoami}"

cmdcat コマンドを含め、何でもかまいません。注意してください - 別のユーザーが仕様ファイルを再構築すると、ファイルが見つからない場合があります。したがって、次のように %{sourcedir} マクロを使用することをお勧めします。

%define path %(cat %{sourcedir}/path_file)

path_fileソースディレクトリにあり、スペックファイルにソースとして含まれていることを確認してください。

于 2012-04-19T20:20:21.193 に答える