編集する:

編集する:

私たちのサーバーはCentOS 4.9を実行します。/etc/hostsインストール中にファイルがどのように生成されるかを知りたいです。

ここに関連する質問があります(/etc/hostsを生成するエントリ(RHEL 5.5)) は、対応するファイルが RHEL 5 の/etc/hostsアナコンダによって生成されたことを示します。

私たちは使用anaconda-10.1.1.46-4.x86_64.rpm。 RPMを抽出してファイルを見つけました/usr/lib/anaconda/network.py。このPythonファイルは/etc/hostsファイルを生成します。

localhost.localdomainこのPythonスクリプトを読んだ後、ドメインエイリアスをファイルに追加する必要があることがわかります/etc/hosts

/etc/hostsただし、インストール中にファイルが次のように作成されることがわかります。

127.0.0.1   loghost

次の内容でファイルをks.cfg生成するファイルもあります。/etc/hosts

127.0.0.1         localhost loghost

したがって、インストール後に再起動すると、/etc/hostsファイルに記載されているようにファイルが作成されますks.cfg

/etc/hostsインストール中にのみファイルを生成する方法は少し混乱しています127.0.0.1 loghost

編集する:

注:アプリケーションRPMをCentOS rpmとバンドルしてISOを構築します。

本当の問題は、CentOS 4.9から6.5に移行することです。 CentOS 6.5 setup-2.8.14-20 rpmで、次の内容でホストファイルを作成します。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

localhost.localdomainホストファイルに追加されました。

/etc/hostsしたがって、私たちはインストール中にCentOS 4.9と6.5ファイルの作成の違いを見つけようとしました。なぜなら、私たちのアプリケーションはファイルのエントリにしっかりとバインドされているからです/etc/hosts

ベストアンサー1

あなたが要求した質問に対する答えはわかりませんが、実際の問題を解決したと思います。

/etc/hosts単に新しいファイルを作成する代わりに(既存のファイルを上書きすることもできます)、目的の項目を最後に追加できます。 2つの間に機能的な違いはありません。

127.0.0.1 localhost loghost

そして

127.0.0.1 localhost
127.0.0.1 loghost

つまり、同じ行から127.0.0.1のすべての名前を収集する必要はありません。 1行にloghost必須項目を追加するだけです。後ろにAnacondaはストックバージョンを生成します。

作成したRPMでこれを行うということは、現在変更または作成した方法を/etc/hostsRPMスクリプト%postで次のように置き換えることを意味します。

if ! grep -q loghost /etc/hosts
then
    echo '127.0.0.1 loghost' >> /etc/hosts
fi

おすすめ記事