私たちのサーバーは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/hosts
RPMスクリプト%post
で次のように置き換えることを意味します。
if ! grep -q loghost /etc/hosts
then
echo '127.0.0.1 loghost' >> /etc/hosts
fi