个人工具

Quick HOWTO : Ap03 : Fedora Version Differences

来自Ubuntu中文

Svista讨论 | 贡献2008年1月1日 (二) 15:15的版本

跳转至: 导航, 搜索


介绍

这篇文章主要涉及最新版本的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内核上。

[root@bigboy tmp]# uname -r
2.6.5-1.358
[root@bigboy tmp]#

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

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

MySQL的差别

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

恢复/修改你的MySQL Root密码

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

1、停止MySQL

[root@bigboy tmp]# service mysqld stop
Stopping MySQL: [ OK ]
[root@bigboy tmp]#

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

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

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

[root@bigboy tmp]# mysqladmin -u root flush-privileges \
 password "ack33nsaltf1sh"
[root@bigboy tmp]#

4、重新启动MySQL。

[root@bigboy tmp]# service mysqld restart
Stopping MySQL: 040517 09:39:38 mysqld ended
[ OK ]
Starting MySQL: [ OK ]
[1]+ Done safe_mysqld --skip-grant-tables
[root@bigboy 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。

[root@bigboy tmp]# chkconfig vsftpd on
[root@bigboy 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 Differences

You'll notice some differences running BIND running on older versions of RedHat/Fedora Linux. For example, RedHat 9 doesn't shutdown BIND cleanly and gives a "named: already running" error when you try to restart it.

[root@bigboy tmp]# /etc/init.d/named restart
Stopping named:
named: already running[root@bigboy tmp]#

The pkill command enables you to kill processes by referring to them by name instead of their process ID number. In this case, you can forcefully stop the named daemon and restart it by issuing the command pkill named followed by service named start.

[root@bigboy tmp]# pkill named
pkill: 29988 - No such process
pkill: 29992 - No such process
[root@bigboy tmp]# service named start
[root@bigboy tmp]#

Routing Differences

Some of the older versions the Fedora stream of Linux had different methods of updating their routes. For example, in RedHat versions 8 and 9, the file named /etc/sysconfig/static-routes was used to add permanent static routes that would be present after a reboot. The format is similar to that of the route command except that the interface comes first and the switches have no dashes in front of them. Here is a sample entry for a route to 10.0.0.0 via the 192.168.1.254 gateway:

wlan0 net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.254

The /etc/sysconfig/static-routes file is set to be deprecated in future releases and you should consider the alternative solutions for newer operating systems.

Iptables Differences

In RedHat/Fedora 9 and earlier, iptables gave different a different status message when the firewall was stopped. Instead of saying stopped, it presented a rule set that allowed all traffic through.

[root@bigboy 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
 
[root@bigboy tmp]#

Software Installation Differences

With some older RedHat Linux versions, source RPM files are first exported into the directory /usr/src/redhat/SPECS with the rpm command. You then have to run the rpm command again to compile the source files into a regular RPM file, which will be placed in either the /usr/src/packages/RPMS/i386/ or the /usr/src/redhat/RPMS/i386/ directories. You then have to install the new RPM file from this directory.

[root@bigboy tmp]# rpm -Uvh filename.src.rpm
[root@bigboy tmp]# cd /usr/src/redhat/SPECS
[root@bigboy SPECS]# rpm -ba filename
[root@bigboy SPECS]# cd /usr/src/redhat/RPM/i386
[root@bigboy i386]# rpm -Uvh filename.rpm

Wireless Networking Differences

Under version 8.0 of RedHat I have seen the kernel-wlan-ng-pcmcia RPM installation give errors stating that the kernel-pcmcia-cs RPM hadn't been previously installed even when it had been. Installing the RPM with --force and --nodeps switches does the trick by forcing the installation while not checking for dependencies. Always remember that under normal circumstances this wouldn't be a good idea, error messages are there for a reason.

[root@bigboy 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
[root@bigboy 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!!!
[root@bigboy tmp]#

Linux-WLAN File Locations Using RedHat 8.0 RPMs

The main Linux-WLAN configuration file for version 8.0 is the /etc/wlan.conf file (PCI type NIC) or your /etc/pcmcia/wlan-ng.opts (PCMCIA type NICs) configuration file. Locate the lines containing ssid=linux_wlan, and set the SSID to whatever value you've decided to use on your wireless LAN. This example uses homenet.

Also modify the IS_ADHOC option to make your NIC either support Ad-hoc mode for peer-to-peer networks or Infrastructure mode if you are using a WAP.

Here is a sample snippet.

#=======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 Differences

You will need to take the following differences into account when configuring MRTG for various versions of Fedora and RedHat.

File locations

In RedHat 9 and older, MRTG files are located in the /var/www/html/mrtg/. In Fedora Core, the files are located in the /var/www/mrtg/ directory. In both cases, the MRTG graphs can be accessed using a default Apache installation via the URL http://server-ip-address/mrtg.

Indexmaker MRTG_LIB Errors With RedHat 9 and 8.0

RedHat versions 8 and 9 give an error when running indexmaker.

[root@bigboy 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
[root@bigboy mrtg]#

This is caused by an incompatibility between MRTG and PERL 5.8, which MRTG uses to generate files. The MRTG site claims this was fixed in version 2.9.22, but this version of MRTG seems to fail under RedHat.

The fix is simple: edit the file /usr/lib/mrtg2/MRTG_lib.pm replacing the line

@ISA = qw(Exporter $VERSION);

with

@ISA = qw(Exporter);

You'll then have to run indexmaker again.

Precedence Bitwise Error With RedHat 9

indexmaker may also give an error like the one below related to a bitwise operation. It doesn't seem to affect the operation of MRTG or the HTML index page output. For example:

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

Webalizer Differences

Older versions of Webalizer, especially those found with RedHat 8.0 and earlier, have a tendency to create this message in your logs.

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

According to the documentation on Webalizer's Web site, this is not a critical error. You can make the software run in quiet mode by editing the configuration file and changing the Quiet parameter to yes.

Quiet           yes