[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kernel-handbook 査読依頼 #8



八津尾です。
Debian kernel-handbook 8 章の翻訳です。
査読をお願いします。
titanpad は http://yyatsuo.titanpad.com/8 です。
以上、よろしくお願いします。

<chapt id="update-hooks">
  <!-- Package maintainer scripts and hooks -->
  <heading>メンテナスクリプトとフック</heading>

  <!--
    Kernel packages for Debian have historically had complex
    maintainer scripts which can invoke the initramfs builder and/or a
    boot loader, based on a mixture of file tests, explicit
    configuration through the file <tt>/etc/kernel-img.conf</tt> and
    debconf questions.  Starting with Debian 6.0, this has been greatly
    simplified.
  -->
   <p>
    Debian のカーネルパッケージは複雑なメンテナスクリプトを歴史的に引き
    継いでいます。このスクリプは、ファイルテストと、<tt>/etc/kernel-img.
    conf</tt>ファイルと debconf の質問による明示的な設定の複合に基いて、
    initramfs ビルダーおよび/またはブートローダを起動します。Debian 6.0
    以降、これは大幅に簡略化されています。
  </p>

  <!--
    The following policy applies to Debian GNU/Linux 6.0 'squeeze' and
    later releases.  Some parts may be applicable to kernels other
    than Linux, but this policy does not set any requirements for
    them.
  -->

  <p>
    以下のポリシーは GNU/Linux 6.0 'squeeze' と、それ以降のリリースに関し
    適用されます。これらのなかには、 Linux 以外のカーネルに対して適用可能
    なものもありますが、このポリシーにはそれらのための要件を設定していませ
    ん。
  </p>

  <sect id="kernel-hooks">
    <!-- Kernel hooks -->
    <heading>Kernel フック</heading>

    <!--
      The maintainer scripts in Linux kernel packages must use
      <tt>run-parts</tt> to invoke hook scripts in the corresponding
      subdirectory of <tt>/etc/kernel</tt>, e.g. the <tt>postinst</tt>
      script must invoke scripts in <tt>/etc/kernel/postinst.d</tt>.
    -->

    <p>
      Linux カーネルパッケージ内のメンテナスクリプトは、 <tt>/etc/kernel
      </tt> の対応したサブディレクトリに配置されたフックスクリプトを起動
      する際に <tt>run-parts</tt> を使用しなければなりません。例えば、
      <tt>postinst</tt> スクリプトは <tt>/etc/kernel/postinst.d</tt> 内の
      スクリプトを起動します。
    </p>

    <!--
      The arguments given to all kernel hook scripts are the kernel
      ABI version (the string that <tt>uname -r</tt> reports) and,
      optionally, the absolute path to the kernel image.  If the
      second argument is missing then the path is
      either <tt>/boot/vmlinuz-<em>version</em></tt> or
      <tt>/boot/vmlinux-<em>version</em></tt>, according to
      architecture convention.  The environment variable
      <tt>DEB_MAINT_PARAMS</tt> will contain the arguments given to
      the kernel maintainer script, possibly single-quoted.  In a
      shell script, this variable can be parsed using:
    -->
    <p>
      全てのカーネルフックスクリプトには、カーネルの ABI バージョン
      (<tt>uname -r</tt> コマンドが応答する文字列) と、 必要であれば、
      カーネルイメージへの絶対パスを引数として渡します。2 つ目の引数
      が無い場合アーキテクチャの慣例に従い、パスは<tt>/boot/vmlinuz-
      <em>version</em></tt> か <tt>/boot/vmlinux-<em>version</em></tt>
      になります。カーネルのメンテナスクリプトに与えられる引数は、環境
      変数 <tt>DEB_MAINT_PARAMS</tt> に格納されます。これは、単一引用
      符で囲まれている場合があります。シェルスクリプト内では、この変数
      は次のようにパースできます:
      <example> eval set -- "$DEB_MAINT_PARAMS" </example>
    </p>

    <!--
      Kernel hook scripts may be run under debconf.  In this case
      they must not use stdin and stdout, and should send all output
      to stderr (fd 2).  A shell script can ensure that it does this
      using:
    -->

    <p>
      カーネルフックスクリプトは debconf の下で実行することもできま
      す。その場合、stdin と stdout は使用せず、全て stderr (fd 2)
      に出力しなければなりません。シェルスクリプトで確実にそうするに
      は、次のように書きます:
      <example> exec &lt;/dev/null &gt;&amp;2 </example>
    </p>
  </sect>
  <sect id="kernel-hooks-loader">
    <!-- Kernel hooks required for boot loaders -->
    <heading>ブートローダに必要なカーネルフック</heading>

    <!--
      Packages for boot loaders that need to be updated whenever the
      files they load are modified (i.e. those that store a block
      list) must install hook scripts in
      <tt>/etc/kernel/postinst.d</tt> and
      <tt>/etc/kernel/postrm.d</tt>.
    -->

    <p>
      ブートローダがロードするファイルが変更された場合、必ず更新しなけ
      ればならないブートローダ用のパッケージ (ブロックリストを保存して
      いるものなど) は <tt>/etc/kernel/postinst.d</tt> と <tt>/etc/ker
      nel/postrm.d</tt> にフックスクリプトをインストールしなければなり
      ません。
    </p>

    <!--
      Since these boot loaders should be updated as the last step
      during installation/upgrade and removal, hook scripts for boot
      loaders must be named using the prefix <tt>zz-</tt> and no other
      packages may use this prefix or one that sorts later by the
      rules used by <tt>run-parts</tt>.  A postrm hook script should
      warn but exit with code 0 if the boot loader configuration file
      still refers to the kernel image that has been removed.
    -->
    <p>
      これらのブートローダはインストール/アップグレード/削除の最終段階
      で更新されるべきものです。したがって、ブートローダのフックスクリ
      プトに <tt>zz-</tt> のプレフィックスを持たせて他のパッケージはこ
      のプレフィックスを使わないようにするか、後で<tt>run-parts</tt> で
      使用されるルールを使用して並び替えなければなりません。ブートロー
      ダの設定ファイルが、削除されたカーネルイメージを参照している場合、
      postrm フックスクリプトは警告すべきですが、終了コードは 0 を返さ
      なければなりません。
    </p>

    <!--
      These boot loader packages must be installable on the filesystem
      in a disabled state where they will not write to the boot sector
      or other special storage.  While a boot loader is disabled, any
      kernel hooks it includes must do nothing except (optionally)
      printing a warning that the boot loader is disabled, and must
      exit successfully.
    -->
    <p>
      これらのブートローダパッケージは、ブートセクタや特殊なストレージ
      に書き込まないように、無効化された状態でファイルシステムにインス
      トール可能でなければなりません。ブートローダが無効になっている間、
      カーネルフックは (任意で) ブートローダが無効になっているという警
      告を出力する以外は何もせず、成功裏に終了しなければなりません。
    </p>

    <!--
      Packages for boot loaders that can provide a menu of kernel
      versions should install kernel hook scripts in order to update
      that menu.
    -->

    <p>
      カーネルバージョンのメニューを提供することができるブートローダ用
      のパッケージは、メニューを更新するためにカーネルフックスクリプト
      をインストールするべきです。
    </p>
  </sect>
  <sect id="initramfs-hooks">
    <!-- Initramfs hooks -->
    <heading>Initramfs フック</heading>

    <!--
      Packages for boot loaders that need to be updated whenever the
      files they load are modified must also install hook scripts in
      <tt>/etc/initramfs/post-update.d</tt>.  Initramfs builders
      must call these scripts using <tt>run-parts</tt> after they
      create, update or delete an initramfs.  The arguments given to
      these hook scripts are the kernel ABI version and the absolute
      path to the initramfs image.
    -->

    <p>
      ブートローダがロードするファイルが変更された場合、必ず更新しなけ
      ればならないブートローダ用のパッケージは、<tt>/etc/initramfs/pos
      t-update.d</tt> にフックスクリプトをインストールしなければなりま
      せん。initramfs ビルダーは initramfs を作成、更新、または削除した
      後にこのスクリプトを <tt>run-parts</tt> から呼び出します。これら
      のフックスクリプトに与えられる引数は、カーネルの ABI バージョン
      と、initramfs イメージへの絶対パスです。
    </p>

    <!--
      While a boot loader is disabled, any initramfs hook it includes
      must do nothing except (optionally) printing a warning that the
      boot loader is disabled, and must exit successfully.
    -->
    <p>
      ブートローダが無効になっている間、initramfs フックは (任意で) ブ
      ートローダが無効になっているという警告を出力する以外は何もせず、
      成功裏に終了しなければなりません。
    </p>
  </sect>
  <sect id="kernel-hooks-initramfs">

    <!-- Kernel hooks required for initramfs builders -->
    <heading>Kernel フックに依存する initramfs ビルダー</heading>

    <!--
      Initramfs builders must install hook scripts in
      <tt>/etc/kernel/postinst.d</tt> and
      <tt>/etc/kernel/postrm.d</tt>, to create/update and delete the
      corresponding initramfs images.  The postinst hook script must
      complete its work before returning.
    -->

    <p>
      Initramfs ビルダーは、対応する initramfs イメージを作成/更新/削
      除するために、<tt>/etc/kernel/postinst.d</tt> と <tt>/etc/kernel
      /postrm.d</tt> にフックスクリプトをインストールしなければなりま
      せん。postinst フックスクリプトは return する前にその処理を終え
      ている必要があります。
    </p>
  </sect>
  <sect id="loader-optimisation">
    <!-- Optimising boot loader updates -->
    <heading>ブートローダの更新を最適化する</heading>

    <!--
      During a kernel package installation, upgrade or removal, various
      boot loader hooks may be invoked (in this order):
      <enumlist>
      <item>
        A <tt>postinst_hook</tt> or <tt>postrm_hook</tt> command
        set by the user or the installer in
        <tt>/etc/kernel-img.conf</tt>
      </item>
      <item>
        A hook script in <tt>/etc/initramfs/post-update.d</tt>
      </item>
      <item>
        A hook script in <tt>/etc/kernel/postinst.d</tt> or
        ...<tt>/postrm.d</tt>
      </item>
      </enumlist>
    -->
    <p>
      カーネルパッケージのインストール、更新、または削除中に、様々なブ
      ートローダ hook が (次の順で) 起動します:

      <enumlist>
      <item>
        <tt>postinst_hook</tt> または <tt>postrm_hook</tt> ユーザかイ
        ンストーラによる <tt>/etc/kernel-img.conf</tt> 内のコマンドセ
        ット
      </item>
      <item>
        <tt>/etc/initramfs/post-update.d</tt>内のフックスクリプト
      </item>
      <item>
        <tt>/etc/kernel/postinst.d</tt> または <tt>/postrm.d</tt> 内の
        フックスクリプト
      </item>
      </enumlist>
    </p>

    <!--
      To avoid unnecessary updates, the hooks invoked at steps 1 and
      2 may check whether <tt>$DPKG_MAINTSCRIPT_PACKAGE</tt> begins
      with <tt>linux-image-</tt> and do nothing in this case.
    -->
    <p>
      不要な更新を避けるには、ステップ 1 と ステップ 2 で呼び出される
      フックは、<tt>$DPKG_MAINTSCRIPT_PACKAGE</tt> が <tt>linux-image-
      </tt> で始まるかどうかをチェックし、その場合は何もしないようにす
      ると良いでしょう。
    </p>
  </sect>

  <sect id="deprecation">
    <!-- Deprecated features -->
    <heading>非推奨の機能</heading>

    <!--
      Kernel packages must not invoke boot loaders except via hooks.
      If <tt>/etc/kernel-img.conf</tt> contains <tt>do_bootloader       yes</tt> or equivalent, maintainer scripts that previously
      acted on this must warn that they are ignoring
      it.  <tt>linux-base</tt> must also warn on upgrade that the
      default has changed.  In Debian 7.0 'wheezy', this prohibition
      extends to initramfs builder packages.
    -->
    <p>
      カーネルパッケージはフックを経由する以外の方法でブートローダを起
      動してはいけません。<tt>/etc/kernel-img.conf</tt> に <tt>do_boot
      loader = yes</tt>または同等のオプションが設定されている場合、以前
      これに作用したメンテナスクリプトはこのオプションを無視することを
      警告しなければなりません。<tt>linux-base</tt> もまた、アップデー
      ト時にデフォルトが変更されたことを警告しなければなりません。Debi
      an 7.0 'wheezy' では、この禁止条件は initramfs ビルダーパッケージ
      にも拡張されます。
    </p>
  </sect>
  <sect id="init-config">

    <!-- Initial configuration by the installer -->
    <heading>インストーラによる初期設定</heading>
    <!--
      The installer must not define <tt>do_bootloader</tt>,
      <tt>postinst_hook</tt> or <tt>postrm_hook</tt> in
      <tt>/etc/kernel-img.conf</tt>.
    -->
    <p>
      インストーラは <tt>/etc/kernel-img.conf</tt> 内の<tt>do_bootload
      er</tt>、<tt>postinst_hook</tt> または <tt>postrm_hook</tt> オプ
      ションを設定してはいけません。
    </p>
  </sect>
</chapt>

Attachment: signature.asc
Description: Digital signature