个人工具

Quick HOWTO : Ap03 : Fedora Version Differences

来自Ubuntu中文

跳转至: 导航, 搜索


介绍

这篇文章主要涉及最新版本的Fedora Linux,尽管很多系统管理员仍然是用的是旧版本。在附录中列出了很多早期版本的Fedora/Redhat Linux系统的一些警告和配置文件的一些特点。

内核源码的差别

在Fedora Core 3中, 内核源码的来源是与当前运行内核版本所匹配的RPM源码包。在Fedora Core 2以及早期的版本中,内核源码来源于被称为kernel-source的普通RPM包。(关于下载和安装的细节,请参看第六章,“安装Linux软件”)

步骤:

1、启动具有标准内核的Linux系统。如果你仅仅是用RPMs或者yum工具来更新内核,这一步就更加重要。

 2、使用uname命令来确定你当前使用的内核版本,在这个实例中,我们正运行在2.6.5-1.358内核上。

[[email protected] tmp]# uname -r
2.6.5-1.358
[[email protected] tmp]#

3、使用rpm命令或者yum工具安装匹配的内核源码包。也许你还需要安装一个类似gcc32的"C"程序语言编译器工具包,用来将于代码转换成为可以执行的内核。

如果你的内核很新并且也不愿意等那么长时间来更新RPM源码包,或者你的系统不支持RPMs包,那么你也可以kernel.org网站直接下载最新的Linux内核代码。

MySQL的差别

和MySQL相比有很多众所周知的差别,这里也列出了一些。

恢复/修改你的MySQL Root密码

在Fedora Core 3及其以后的版本中,MySQL服务器root密码恢复过程不同。如果你忘记或者误修改了密码,这个任务就是非常重要的了。步骤如下:

1、停止MySQL

[[email protected] tmp]# service mysqld stop
Stopping MySQL: [ OK ]
[[email protected] tmp]#

2、使用safe_mysqld命令将MySQL启动到安全模式下,并且不能读取MySQL数据库中所有的grant table密码。

[[email protected] tmp]# safe_mysqld --skip-grant-tables &
[1] 4815
[[email protected] tmp]# Starting mysqld daemon with databases from /var/lib/mysql
[[email protected] tmp]#

3、使用mysqladmin命令重置root密码。在这个实例中,设置为ack33nsaltf1sh。

[[email protected] tmp]# mysqladmin -u root flush-privileges \
 password "ack33nsaltf1sh"
[[email protected] tmp]#

4、重新启动MySQL。

[[email protected] tmp]# service mysqld restart
Stopping MySQL: 040517 09:39:38 mysqld ended
[ OK ]
Starting MySQL: [ OK ]
[1]+ Done safe_mysqld --skip-grant-tables
[[email protected] tmp]#

现在,MySQL的root用户可以使用新的密码来管理MySQL数据库了。

FTP的差别

众所周知,Redhat/Fedora Linux系统的8.0版本VSFTPD包同以前版本的配置文件有很多不同。

一个就是,通过使用/etc/xinetd.d/vsftpd文件的xinetd来控制VSFTP的启动和停止。VSFTP默认情况是停止的,所以你需要编辑这个文件来启动程序。在下面的这个例子中,要确定disable选项被设置为no来接受连接。

service ftp
{
 disable = no
 socket_type = stream
 wait = no
 user = root
 server = /usr/sbin/vsftpd
 nice = 10
}

在Fedora Linux中,也可以使用chkconfig命令来自动的配置文件来配置VSFTPD或者重新启动xinetd。

[[email protected] tmp]# chkconfig vsftpd on
[[email protected] tmp]#

当然,你也可以使用chkconfig vsftpd off命令来disable VSFTPD。

DHCP的差别

从Redhat 7.3升级到8.0后使用同样的dhcpd.conf文件会导致一些问题。你也许会在启动DHCP服务的时候出现错误,这个启动错误是由于你的/etc/dhcpd.conf文件的开头缺少下面这一行而导致的。

ddns-update-style interim

错误的提示如下:

Starting dhcpd: Internet Software Consortium DHCP Server V3.0pl1
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
 
** You must add a ddns-update-style statement to /etc/dhcpd.conf.
To get the same behaviour as in 3.0b2pl11 and previous
versions, add a line that says "ddns-update-style ad-hoc;"
Please read the dhcpd.conf manual page for more information. **
...
...
...
exiting.
[FAILED]

DNS的差别

你可能会注意到运行BIND时同旧版本Redhat/Fedora Linux的一些差别。例如,Redhat 9无法干净的停止BIND;而在你重启动它的时候又会产生"named: already running"的错误。

[[email protected] tmp]# /etc/init.d/named restart
Stopping named:
named: already running[[email protected] tmp]#

pkill命令可以让你使用进程名称而不是进程的ID号来纱死一个进程。在这里,你就可以使用pkill named命令来强制停止named守护进程,然后再使用service named start命令来重新启动它。

[[email protected] tmp]# pkill named
pkill: 29988 - No such process
pkill: 29992 - No such process
[[email protected] tmp]# service named start
[[email protected] tmp]#

路由的差别

某些早期版本的Fedora Linux使用不同的方法来更新系统的路由表。例如,在RedHat 8和9下,系统使用/etc/sysconfig/static-routes来添加在重启后生效的静态路由。除了第一个参数代表网络接口,它的其它格式同route命令的格式相同。下面是一个通过192.168.1.254网关路由到10.0.0.0网段的例子:

wlan0 net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254

/etc/sysconfig/static-routes文件已经被声明在将来的新版本中不再支持,所以你也可以认为是新操作系统的一个可选解决方案。

Iptables的不同

在RedHat/Fedora 9和更早一些版本当中,iptables在防火墙被停掉之后给出不同的状态消息。与给出停止消息不同,在这些版本当中使用允许所有流量通过的策略。

[[email protected] tmp]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
target prot opt source destination
 
Chain FORWARD (policy ACCEPT)
target prot opt source destination
 
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
 
 [[email protected] tmp]

软件安装方面的不同

在某些旧版本的RedHat Linux版本当中,通过一些命令,源RPM文件首先被输出到/usr/src/redhat/SPECS目录当中。然后你必须重新运行rpm命令来把源文件编译成为一般的rpm文件,这个文件或者方总usr/src/packages/RPMS/i386或者/usr/src/redhat/RPMS/i386目录中,接着你必须从上面所述目录中安装新的RPM文件。

[[email protected] tmp]# rpm -Uvh filename.src.rpm
[[email protected] tmp]# cd /usr/src/redhat/SPECS
[[email protected] SPECS]# rpm -ba filename
[[email protected] SPECS]# cd /usr/src/redhat/RPM/i386
[[email protected] i386]# rpm -Uvh filename.rpm

无线网络的差别

在RedHat8.0下,我们看到kernel-wlan-ng-pcmcia RPM安装包给出错误提示,提示表明kernel-pcmcia-cs RPM 包之前并未完成安装,我们可以加上 --force和--nodeps参数来忽略依赖性的检查,但是要记住,一般情况下不要这么做,错误提示往往告诉我们失败的原因。

[[email protected] tmp]# rpm -Uvh kernel-wlan-ng-pcmcia-0.1.15-6.i686.rpm
error: Failed dependencies:
 kernel-pcmcia-cs is needed by kernel-wlan-ng-pcmcia-0.1.15-6
[[email protected] tmp]# rpm -Uvh --force --nodeps kernel-wlan-ng-pcmcia-0.1.15-6.i686.rpm
Preparing... ################################## [100%]
 1:kernel-wlan-ng-pcmcia ################################## [100%]

Adding prism2_cs alias to /etc/modules.conf file...
Shutting down PCMCIA services: cardmgr modules.
Starting PCMCIA services: modules cardmgr.
The default wlan0 network configuration is DHCP. Adjust accordingly.

ACHTUNG! ATTENTION! WARNING!
YOU MUST configure /etc/pcmcia/wlan-ng.opts to match WAP settings!!!
[[email protected] tmp]#

使用 RedHat 8.0 RPMs包定位Linux-WLAN文件

8.0版下主要的Linux-WLAN配置文件是/etc/wlan.conf (PCI 型网卡) 或者  /etc/pcmcia/wlan-ng.opts (PCMCIA 型网卡) 定位语句中包含 ssid=linux_wlan, 设置 SSID 为你决定使用无线网的任意一值. 下面是使用家庭网络的一个例子.

同样要修改IS_ADHOC选项 来确保你的网卡同时支持Ad-hoc模式(点对点网络) 和 Infrastructure 模式 (WAP).

以下是一个例子的片段

#=======SELECT STATION MODE===================
IS_ADHOC=n # y|n, y - adhoc, n - infrastructure

#=======INFRASTRUCTURE STATION START===================
# SSID is all we have for now
AuthType="opensystem" # opensystem | sharedkey (requires WEP)
# Use DesiredSSID="" to associate with any AP in range
DesiredSSID="homenet"

MRTG的差别

当你配置不同版本的Fedora和RedHat是,你需要考虑以下区别

文件定位

在RedHat9或者更老的版本中, MRTG 文件路径是 /var/www/html/mrtg/. 在Fedora Core中, 文件路径是 the /var/www/mrtg/。在两种情况下,  MRTG 图形界面可以通过Apache默认安装的的URL: http://server-ip-address/mrtg来访问

在RedHat 9 和 8.0中indexmaker的MRTG-LIB错误

当运行 indexmaker是RedHat8和9将给出错误提示

[[email protected] mrtg]# indexmaker --output=index.html \
 /etc/mrtg/mrtg.cfg
Can't locate package $VERSION for @MRTG_lib::ISA at /usr/bin/indexmaker line 49
main::BEGIN() called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
eval {...} called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
[[email protected] mrtg]#

这是由于当使用 MRTG来生成文件时,MRTG 和PERL 5.8的不兼容引起的, 。 MRTG 的官网宣称在2.9.22版中修正了这一错误。但这个版本似乎在RedHat下还是失败的

修正是很简单的,编辑文件/usr/lib/mrtg2/MRTG_lib.pm将下列行

@ISA = qw(Exporter $VERSION);

替代为

@ISA = qw(Exporter);

你必须重新运行indexmaker.

使用RedHat 9时的按位运算的优先级错误

indexmaker同样可能给出下面的错位提示,这可能是与桉位运算有关。这似乎并不影响MRTG的操作和HTML的目录页的输出,例如 :

Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601

Webalizer的差别

老版本的Webalizer, 尤其是那些RedHat8或更老版本的使用的,有可能在你的日志内产生如下信息

Error: Unable to open DNS cache file /var/lib/webalizer/dns_cache.db

根据Webalizer网站的文档,这不是一个关键的错误。你可以编辑的你配置文件,将Quiet参数设置为yes使你的软件运行在quiet模式下

Quiet yes