Parallels Plesk Panel ではパッチが適用された Qmail を使用します。カスタムパッチで Qmail をコンパイルするにはどうすればよいですか?

Created:

2016-11-16 13:15:43 UTC

Modified:

2017-08-16 17:18:22 UTC

0

Was this article helpful?


Have more questions?

リクエストを送信

Parallels Plesk Panel ではパッチが適用された Qmail を使用します。カスタムパッチで Qmail をコンパイルするにはどうすればよいですか?

Applicable to:

  • Plesk 10.4 for Linux/Unix

解決策

http://cr.yp.to/ (例)から Qmail ソースをダウンロードします。この記事に添付された Plesk パッチを適用し、カスタムパッチを適用し、Qmail をコンパイルします。次の手順を実行します。

  1. KB #260 (How to recompile Apache, PHP, and IMAP with increased value of file descriptors larger than FD_SETSIZE (1024) on a RedHat-like system?)に従い、 typesizes.h および posix_types.h で __FD_SETSIZE システム定数の値を調整します。
  2. カスタムパッチと Plesk パッチをレビューし、カスタムパッチの変更点といつ適用すべきかを確認します(Plesk パッチの適用前、適用後、または Plesk パッチ適用中に特定のパッチの前/後)。
    注: Plesk 8.3 以降のバージョンでは、Qmail パッチをアルファベット順に適用する必要があります。Plesk 8.2 の場合、すべての patch* ファイルを適用してから、 fr49-quota-patch を適用します。例:
    # cd qmail-1.03
    # for patch in ../patches/patch* ; do patch -p0 < $patch ; done
    # patch -p0 < ../patches/fr49-quota-patch

  3. conf-users ファイルと conf-groups ファイルを、 patch-pe パッチと patch-pf パッチに適用された変更に合わせて変更します。これらのファイルに含まれるレコードは、' groupname GID ' または ' username UID ' 形式です。以下のコマンドで、これらのファイルに正しいレコードが挿入されます。
    注: これらのコマンドは、Qmail がインストール済みのシステム(Plesk がインストール済みのシステム)で実行する必要があります。
    # grep -E '^(qmail|alias)' /etc/passwd | awk 'BEGIN {FS=":"; OFS=" ";} {if ($1 == "qmaill") {print $1,$3,"\nroot 0"} else {print $1,$3}}' > conf-users
    # grep -E '^(qmail|nofiles)' /etc/group | awk 'BEGIN {FS=":"; OFS=" ";} {print $1,$3}' > conf-groups

  4. リンカフラグを構成します(パッチ適用後の Qmail ソースディレクトリ内):
    # pkg-config --libs openssl > ssl.lib
    # echo "/var/qmail" > conf-qmail
  5. 注:FreeBSD サーバには、pkg-config の代わりに次のコマンドを使用します。
    # echo -lssl > ssl.lib
    # echo "/var/qmail" > conf-qmail

  6. `make` を実行できます。

  7. コンパイル後は、既存の Qmail ファイルを新しいファイルで上書きしないでください。つまり、 `make install` は実行しないでください。インストールされた構成ファイルと init スクリプトは変更しないでください。代わりに、必要な Qmail バイナリだけを、新しいコンパイル済みのファイルと置換します。
    • Qmail サービスと DrWeb サービスを、shell ではなく Plesk パネルから停止します。
    • xinetd(inetd) サービスを shell から停止します。
    • Plesk バージョンに応じてファイルを置換します。
      Plesk 8.2 の場合: コンパイルされた qmail-queue qmail-remote qmail-local を Qmail bin/ ディレクトリにコピーし、 .origin サフィックスを付けてコピーを作成します。
      # cp qmail-queue /var/qmail/bin/qmail-queue
      # cp qmail-queue /var/qmail/bin/qmail-queue.origin
      # cp qmail-local /var/qmail/bin/qmail-local
      # cp qmail-local /var/qmail/bin/qmail-local.origin
      # cp qmail-remote /var/qmail/bin/qmail-remote
      # cp qmail-remote /var/qmail/bin/qmail-remote.origin

      Plesk 8.3 以降の場合: コンパイルされた qmail-queue qmail-remote qmail-local を、 .moved サフィックスを付けて Qmail bin/ ディレクトリにコピーします(既存のファイルを置換しないでください)。
      # cp qmail-queue /var/qmail/bin/qmail-queue.moved
      # cp qmail-local /var/qmail/bin/qmail-local.moved
      # cp qmail-remote /var/qmail/bin/qmail-remote.moved
      置換されたファイルのオリジナルの所有者/パーミッションを忘れずに復元してください。ファイルの所有者/パーミッションは OS によって異なる可能性があるため、実際のコマンドを提示することはできません。バイナリを置換する前に、オリジナルの所有者/パーミッションを覚えておき、後で復元します。
    • xinetd(inetd) サービスを起動します。
    • Qmail サービスと DrWeb サービスを起動します。

追加情報

注: 再コンパイルを開始する前に、再コンパイル手順についてオリジナルの Qmail マニュアルを確認することをお勧めします。

注: Parallels Plesk Panel バージョン 9.5 の場合、パッチ plesk93_qmail_patches.tgz を使用し、同じコンパイル手順に従うことができます。
他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。