Quick HOWTO : Ap03 : Fedora Version Differences

From Linux Home Networking
Jump to: navigation, search


The book primarily covers the latest versions of Fedora Linux, but many systems administrators still use older versions. This appendix lists a number of features in configuration files and quirks in the operation of some of the older versions of Fedora/Redhat Linux.

Kernel Sources Differences

As of Fedora Core 3, the kernel sources come as a source RPM package that matches the version of the kernel you are running. In Fedora Core 2 and earlier, the Kernel sources came as a generic RPM package called kernel-source. (See Chapter 6, "Installing Linux Software", for details on downloading and installing.).

Here is how to do it:

1. Start with a Linux system that has a standard kernel. This should be true if you have only used RPMs or the yum utility for kernel updates.

2. Determine what version of the kernel you are using with the uname command. In this case we are running version 2.6.5-1.358.

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

3. Install the matching kernel-source package using the rpm command from your CDs or by using the yum utility. You may also have to also install a "C" programming language compiler package such as gcc32 to convert the source text files into an executable kernel.

If your kernel is very new and can't wait for the updated sources RPM to be created, or your system doesn't support RPMs, then you can also consider downloading the latest Linux kernel code from the kernel.org website.

MySQL Differences

There are some well known differences in older versions of MySQL. Here are a few of them.

Recovering / Changing Your MySQL Root Password

In Fedora Core 3 and older, the MySQL server root password recovery procedure was different. This is an especially important task if it was either forgotten or misplaced. The steps you need are:

1. Stop MySQL

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

2. Start MySQL in Safe mode with the safe_mysqld command and tell it not to read the grant tables with all the MySQL database passwords.

[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. Use the mysqladmin command to reset the root password. In this case, you are setting it to ack33nsaltf1sh.

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

4. Restart MySQL normally.

[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]#

The MySQL root user will now be able to manage MySQL using this new password.

FTP Differences

There are some well known differences in the configuration of the VSFTPD package for version 8.0 and earlier of Redhat/Fedora Linux.

For one, the starting and stopping of VSFTP is controlled by xinetd via the /etc/xinetd.d/vsftpd file. VSFTP is deactivated by default, so you'll have to edit this file to start the program. Make sure the contents look like the example. The disable feature must be set to no to accept connections.

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

Fedora Linux will automatically edit this file to enable VSFTPD and restart xinetd with the chkconfig command.

[root@bigboy tmp]# chkconfig vsftpd on
[root@bigboy tmp]#

Naturally, to disable VSFTP once again, you'll use the chkconfig vsftpd off command.

DHCP Differences

There can be problems when upgrading from Redhat 7.3 to 8.0 while maintaining the same dhcpd.conf file. You might run into a DHCP server error. This startup error is caused by not having this line at the very top of your /etc/dhcpd.conf file:

ddns-update-style interim

The error might look like:

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. **

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 via the gateway:

wlan0 net netmask gw

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.

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

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 \
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);


@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