5

こんにちは、スーパーユーザーにこの質問をしましたが、良い質問が得られなかったので、本当に答えが必要です. ここにいる皆さんの何人かがこの質問に答えられることを知っています。

yum経由でnginxをインストールしました。モジュールを追加したいのですが、ソースを再度コンパイルして新しいモジュールをインクルードする必要があります。

しかし、私はソースを見つけることができません。ソースを再コンパイルしてモジュールを取り込むために私がしなければならないことを誰かが知っていますか.

アップデート

パトリックからの回答ですべてを行いましたが、うまくいきました。ただし、yum update を実行すると、インストールされている rpm を同じバージョンに更新する必要があります。

そのまま更新することはできますか、それとも既に最新であることを指定する必要がありますか。

4

1 に答える 1

6

Redhat および関連するディストリビューション (fedora、centos) は、ソース rpm を非常に規則的なディレクトリ ツリーに保持します。RHEL5 の場合: ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/他のリリースの場合は、必要なものが見つかるまで ftp サーバーを参照できます。それ以外の場合は、お使いの nginx の正確なバージョンを Google で検索してください ( rpm -q nginx)

srpm が見つかった場合は、rpm でインストールします。

rpm -ivh nginx-xxxx.src.rpm

これにより、ソースとビルド ファイルが に配置され/usr/src/redhat/{BUILD,SPEC,SRC,SOURCES}ます。.specのファイルを変更して/usr/src/redhat/SPEC、nginx の残りの部分と一緒に必要なモジュールをビルドするか、nginx を手動でビルドできます。

どのモジュールを構築しますか? fedora の nginx.specでは、実行時にいくつかのモジュールが指定されconfigureています。これは、ここに行を追加するのと同じくらい簡単です。

./configure \
[snip...]
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_perl_module \
[snip...]

に変更を加えた後、最終的なものを次nginx.specのようにビルドできます。rpmrpmbuild

rpmbuild -ba nginx.spec

パッケージがエラーなしでビルドされると仮定すると、rpmbuild はそれをそのままにします。 /usr/src/redhat/RPMS/

更新:更新が利用可能になると、yum は nginx パッケージを置き換えます。上記と同じプロセスを使用して、新しいパッケージが利用可能になるたびに再構築することをお勧めします。ただし、セキュリティが問題にならない場合は、次を yum 構成に追加することで、更新リストから nginx を簡単に除外できます (おそらく/etc/yum.repos.d/${repo}.repo、または同様です。必ず正しいリポジトリに関連付けてください)。

exclude=nginx*

または --exclude オプションを指定して yum を実行する

yum --exclude=nginx*
于 2010-04-02T19:46:50.717 に答える