2

Requiresタグが満たしていないことがいくつかあります。だから私はこれらのことを確認するスクリプトを書きましたが、どこに配置すればよいでしょうか? 見つからない場合は、インストールを終了して、この rpm を再度インストールする前にユーザーに手順を実行するように求めます。

タグに書き込むexit 1と、%installrpmbuild を使用して rpm をビルドできません。言う%install has a bad exit code.

編集:例を挙げましょう。最初にテストしたかったのは、Oracle Java 6 が存在するかどうかです。そうでない場合は、Java6 へのパスを指定します。ユーザーが提供に失敗した場合 ... RPM を終了します。より高い Java は許可されておらず、インストールは Java なしでは成功しません。ユーザーが Java rpm パッケージをインストールしたくない場合、ポイントの Requires に配置することはできません。

私が私の要点を理解したことを願っています。

4

1 に答える 1

8

この種のタスクには %pre セクションを使用できます。

%pre スクリプトは、パッケージがインストールされる直前に実行されます。これは、インストールの前に何かを行う必要があるまれなパッケージです。Red Hat Linux Linux 4.0 を構成する 350 個のパッケージのいずれも、それを使用していません。

始めるためのガイド。スクリプトの内容 (%pre セクションでは使用されていません) は jpackage-utils から取得されます。そこには、スクリプトの他の良い例がいくつかあります。

  %pre
  # try to find jvm from java command

  # try javac first, or we might get the location of the jre instead - djw
  java=`which javac 2>/dev/null || :`

  # if we don't have the jdk, then maybe we have the jre - djw
  if [ -z "$java" ] ; then
    java=`which java 2>/dev/null || :`
  fi

  if [ -n "$java" ] ; then
    while [ -h "$java" ] ; do
      java=`readlink $java 2>/dev/null`
    done
    return
  fi

  echo "Can't find java virtual machine, aborting."
  exit 1
于 2013-01-23T07:35:33.970 に答える