编辑:

编辑:

我们的服务器运行 CentOS 4.9。我想了解/etc/hosts安装过程中如何创建文件。

这里有一个相关问题(什么创建了 /etc/hosts (RHEL 5.5))表示在 RHEL 5 中/etc/hosts文件是由 ananconda 创建的。

我们用anaconda-10.1.1.46-4.x86_64.rpm。我提取了这个 RPM 并找到了一个文件/usr/lib/anaconda/network.py。此 Python 文件创建该/etc/hosts文件。

读完这个 python 脚本后,我可以看到localhost.localdomain应该在文件中添加域别名/etc/hosts

但在安装过程中我可以看到该/etc/hosts文件是用 only 创建的。

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添加到hosts文件中。

因此,我们试图找出/etc/hosts安装过程中 CentOS 4.9 和 6.5 文件创建之间的差异,因为我们的应用程序与文件中的条目紧密绑定/etc/hosts

答案1

我不确定您所问问题的答案,但我认为我已经解决了您真正的问题。

/etc/hosts您可以将所需的条目附加到末尾,而不是简单地写出一个新文件(可能会覆盖已经存在的文件)。两者之间没有功能差异:

127.0.0.1 localhost loghost

127.0.0.1 localhost
127.0.0.1 loghost

也就是说,您不需要收集同一行上 127.0.0.1 的所有名称。您只需在一行中添加loghost所需的条目即可Anaconda 创建库存版本。

由于您是从您创建的 RPM 执行此操作,因此这意味着您将当前修改或创建的方式替换/etc/hosts为 RPM%post脚本中类似的内容:

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

相关内容