下一步 上一步 目录

4. Red Hat 4.2 安装

对于任何与计算机相关的事物,3 个月前的产品就被认为是过时的,需要升级。由于我没有时间每次更新都更新本文档,我将尽力至少每隔一个版本更新一次。至于其他发行版,除非作者希望发送更新,否则它们将保持原样。

4.1 个人设置

对于我的安装,我拥有并使用了

4.2 软件包安装

当我第一次决定尝试在 ZIP 磁盘上安装 Red Hat 时,我认为使用 Red Hat 启动盘会更容易。然后我醒悟了。我差点就创建了一个启动盘,甚至通过电子邮件得到了 Red Hat 各位人士的帮助,但最终当我发现 rpm 的 --root 选项时,我开始放弃整个项目。

要获取哪些软件包

我通过浏览我在 Red Hat 的一个镜像站点上找到的文件,找到了要安装的软件包。可以在任何镜像站点的以下位置找到此文件

  redhat/redhat-4.2/i386/RedHat/base/comps

对于此安装,我想包含网络支持,但由于 Red Hat 的 X 网络配置,我将不得不手动配置,或者更确切地说,是手动尝试配置在 /etc/sysconfig/ 中找到的网络设置脚本(参见 4.3.3 节)。

我决定不安装任何开发软件包,因为 ZIP 驱动器,至少是未打补丁的内核版本,编译任何东西都相当慢。我还选择不安装 X,主要是出于磁盘空间问题。稍后,我可能会尝试挂载我的硬盘驱动器并创建一个与 /usr 的符号链接,看看是否可以让 X 工作。

以下是我安装的软件包列表,按安装顺序排列。标有 * 的软件包有来自 Red Hat 勘误表的更新。括号内是更新后的软件包编号;

e.g. NetKit-B-0.09-6 was updated to NetKit-B-0.09-8 so the entry
    would be: *91) NetKit-B-0.09-6 (-8)

      (List created by the command rpm --root /iomega -qa)

       1) setup-1.7-2                   2) pamconfig-0.51-2
       3) filesystem-1.3-1              4) MAKEDEV-2.2-9
       5) adduser-1.7-1                 6) libc-5.3.12-18
       7) SysVinit-2.64-8               8) ash-0.2-8
       9) at-2.9b-2                    10) libtermcap-2.0.8-4
      11) bash-1.14.7-1                12) bc-1.03-6
      13) bdflush-1.5-5                14) cpio-2.4.2-4
      15) cracklib-dicts-2.5-1         16) tmpwatch-1.2-1
      17) crontabs-1.5-1              *18) db-1.85-10 (-11)
      19) dev-2.5.1-1                  20) diffutils-2.7-5
      21) etcskel-1.3-1                22) file-3.22-5
      23) fileutils-3.16-1             24) findutils-4.1-11
      25) grep-2.0-5                   26) groff-1.10-8
     *27) ld.so-1.7.14-4 (-5)          28) getty_ps-2.0.7h-4
      29) gzip-1.2.4-7                 30) mingetty-0.9.4-3
     *31) initscripts-2.92-1 (93-1)    32) ed-0.2-5
      33) info-3.9-1                   34) ncurses-1.9.9e-4
      35) libg++-2.7.1.4-5            *36) pwdb-0.54-3 (-4)
      37) rootfiles-1.5-1             *38) pam-0.57-2 (-4)
      39) redhat-release-4.2-1         40) less-321-3
      41) mount-2.5l-2                 42) zlib-1.0.4-1
      43) rpm-2.3.11-1                 44) e2fsprogs-1.10-0
      45) sysklogd-1.3-15              46) tar-1.11.8-11
      47) passwd-0.50-7                48) gawk-3.0.2-1
      49) gdbm-1.7.3-8                 50) gpm-1.10-8
      51) hdparm-3.1-2                 52) kbd-0.91-9
      53) slang-0.99.37-2              54) newt-0.8-1
      55) kbdconfig-1.4-1              56) ncompress-4.2.4-7
     *57) sh-utils-1.16-4 (-5)         58) procinfo-0.9-1
     *59) logrotate-2.3-3 (4-1)        60) lilo-0.19-1
      61) losetup-2.5l-2               62) linuxthreads-0.5-1
     *63) mkinitrd-1.6-1 (7-1)         64) mailcap-1.0-3
     *65) man-1.4h-5 (j-1)             66) mt-st-0.4-2
      67) modules-2.0.0-5              68) mailx-5.5.kw-6
      69) net-tools-1.32.alpha-2       70) procmail-3.10-10
      71) procps-1.01-11               72) psmisc-11-4
      73) quota-1.55-4                 74) readline-2.0-10
      75) sed-2.05-6                   76) setconsole-1.0-1
      77) sendmail-8.8.5-4             78) shadow-utils-960530-6
      79) stat-1.5-5                   80) tcsh-6.06-10
      81) termcap-9.12.6-5             82) textutils-1.22-1
      83) time-1.7-1                   84) timeconfig-1.8-1
      85) util-linux-2.5-38            86) vim-4.5-2
      87) vixie-cron-3.0.1-14          88) which-1.0-5
      89) zoneinfo-96i-4               90) tcp_wrappers-7.5-1
     *91) NetKit-B-0.09-6 (-8)        *92) lpr-0.18-1 (19-1)
     *93) bind-4.9.5p1-2 (9.6-1)      *94) bind-utils-4.9.5p1-2 (9.6-1)
     *95) wu-ftpd-2.4.2b12-6 (b15-1)   96) anonftp-2.3-3
      97) zip-2.1-1                    98) unzip-5.12-5
      99) statserial-1.1-7            100) minicom-1.75-2
     101) lrzsz-0.12.14-1             102) dip-3.3.7o-9
     103) ppp-2.2.0f-3                104) portmap-4.0-3
     105) perl-5.003-8               *106) traceroute-1.0.4.4bsd-2 (1.4a5-1)
    *107) elm-2.4.25-7 (-8)           108) lynx-2.6-2 
     109) ncftp-2.3.0-5               110) pine-3.95-2
     111) rdate-0.960923-1            112) apache-1.1.3-3
    *113) nfs-server-2.2beta16-7     *114) nfs-server-clients-2.2beta16-7
          (2.2beta16-8)                    (2.2beta16-8)

安装了以上所有软件包后,我仍然剩下 32MB 的空间!

更新;勘误表

正如许多 Red Hat 用户所知,我希望如此,某些软件包可能会被发现存在一些安全漏洞或任何其他可能引起问题的东西。因此,Red Hat 发布了此类软件包的更新。我已经更新了我拥有的软件包,这些软件包有更新,并在上面的列表中标记。请参阅 Red Hat 关于更新软件包的网页,网址为

https://#/support/docs/rhl/rh42-errata-general.html


   NOTE: Before you can update the packages, you'll have to
         run the ldconfig as described in section 3.3.1.1.

如何使用 rpm 安装软件包;不使用 glint

使用 rpm 时,使用 --root 选项将挂载目录指定为安装的根目录。我发现许多软件包无法安装,因为由于不同的根目录,预安装或后安装脚本未正确执行,因此,请使用 --noscripts 选项

==> rpm --root /iomega -i --noscripts PACKAGE.i386.rpm

我相信很多人会注意到,您应该会收到类似以下的错误消息


  failed to open /iomega/var/lib/rpm/packages.rpm

  error: cannot open /iomega/var/lib/rpm/packages.rpm

所以,只需创建 var/lib/rpm 目录即可 :)

==> mkdir /iomega/var; mkdir /iomega/var/lib; mkdir /iomega/var/lib/rpm

哪个先出现,pamconfig 还是 pam?

如果有人尝试安装 pamconfig,它会抱怨 pam 的依赖关系失败;当您尝试安装 pam 时,pam 会抱怨 pamconfig 的依赖关系失败!这个鸡和蛋的问题困扰了我一段时间,但由于有了 --nodeps 标志,我们可以强制安装 pamconfig;此外,pam 的依赖关系失败不仅仅是 pamconfig。

==> rpm --root /iomega -i --nodeps --noscripts pamconfig-0.51-2

4.3 软件包安装后的问题

一旦所有东西都安装好了,不幸的是,磁盘并没有完全可操作,如果“可操作”是一个词的话。我的意思是说,如果您现在尝试使用软盘启动,您将不会走得很远。一旦 init 尝试启动,您将收到两个可爱的错误;两者都抱怨某些文件未找到,这些文件本应在脚本运行时创建。

/etc/ld.so.cache 和 libc.so.5 丢失的情况

如果您尝试启动,您将收到两条错误消息,第一条是缺少 /etc/ld.so.cache 文件。第二条抱怨缺少 libc.so.5。

/etc/ld.so.cache

正如许多读者提到的,我之前的说明并没有完全按所述工作。为了创建此文件,您必须在 ZIP 磁盘仍然挂载时运行 ldconfig

==> chroot /iomega /sbin/ldconfig

感谢 Javier Rodriguez 提供此解决方案。

libc.so.5

要解决缺少 lib 的情况,您必须创建一个符号链接,该链接本应由安装脚本创建。

==> cd /iomega/lib; ln -s libc.so.5.3.12 libc.so.5

感谢 Darcy Boese 提供此解决方案。

设置 root 密码

正如在 4.3.1.1 中运行 ldconfig 一样,您不妨为此新系统更改/创建 root 密码

==> chroot /iomega passwd root

安装程序创建的内容


       NOTE: This is just a very brief setup, one which I haven't
             been able to test to see if it works.  In theory it
             should, but please do not send me complaints saying
             that this didn't work.

在浏览我的 Red Hat 4.2 CD-ROM 时,我偶然发现了一些非常有趣的东西;安装程序的源代码。我在 /misc/src/install 下找到了它,我发现其中一个有用的东西是 net.c 文件。在其中,我找到了如果运行安装程序将创建的其他文件。其中大多数只是提供网络支持(因此得名 net.c),但即使您没有网卡,您仍然可以使用 localhost 进行联网(此外,apache 会抱怨无法确定主机名。)这些文件包括

      /etc/hosts
      /etc/HOSTNAME
      /etc/resolv.conf
      /etc/sysconfig/network
      /etc/sysconfig/network-scripts/ifcfg-eth0
      (or any other network device you may have.)

网络设置

对于本文档,我希望为我的 3Com 3c595 快速以太网卡提供网络支持(在过去的几个月里,它一直用于另一台机器)。

首先我需要一个名称,由于我运行了自己的名称服务器(这是另一个漫长的故事),我给自己起了个名字:dash-dot.wig.org(我只是喜欢这个名字的发音)。没有 IP 地址的名称有点毫无意义,所以我使用了保留的非互联网可用网络 192.168.10.0,我的名称服务器也使用它。即使主机名通常存储在 /etc/HOSTNAME 中,Red Hat 也会检查 /etc/sysconfig/network 中的这个名称;所以让我们从那里开始。我的 /etc/sysconfig/network 示例


  NETWORKING=yes
  HOSTNAME=dash-dot
  DOMAINNAME=wig.org
  GATEWAY=
  GATEWAYDEV=eth0
  NS1=192.168.10.7

接下来,基本上在此处复制相同的信息,用于 /etc/HOSTNAME、/etc/resolv.conf 和 /etc/hosts

/etc/HOSTNAME


dash-dot.wig.org

/etc/resolv.conf


search wig.org
nameserver ns.wig.org

/etc/hosts


127.0.0.1 localhost
192.168.10.99 dash-dot.wig.org dash-dot
192.168.10.7  ns.wig.org ns

Red Hat 从 /etc/sysconfig/network-scripts 中的脚本配置所有网络设备。任何网络设备的配置通常首先通过安装程序创建,所以我必须手动创建这些配置文件。它们都以 ifcfg-XXX 开头,其中 XXX 是 ifconfig 启动的网络接口;例如 ppp0、eth0 等。对于此示例,我必须创建一个名为 ifcfg-eth0 的文件,其中包含以下内容

  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=none
  BROADCAST=192.168.10.255
  NETWORK=192.168.10.0
  NETMASK=255.255.255.0
  IPADDR=192.168.10.99

最后但并非最不重要的一点,为了现在启动并运行,在 /etc/sysconfig/network-scripts 目录中,只需运行

==> ./ifup ifcfg-eth0 boot

这将启动脚本,如果该接口设置为在“启动”时启动,则该脚本会配置网络接口。

有关更多信息,请参阅 NET-3-HOWTO 文档。


下一步 上一步 目录