Previous Page
Next Page

9.4. Running Rawhide

If you're interested in seeing the evolving future shape of Fedora Core and assisting with testing, you can run Rawhide, the constantly changing development version of Fedora Core.

9.4.1. How Do I Do That?

First, a warning is in order. As the original Rawhide announcement noted:

Raw Hide Can Be a Bit Tough to Chew on So Run at Your Own Risk (and Enjoyment)

These releases have not been quality tested by Red Hat's Quality Assurance team. They may not boot. If they boot, they may not install. If they install, they may not do anything other then waste CPU cycles. If anything breaks, you most assuredly own the many fragments which will be littered across your floor. 

It may not be possible to upgrade from Fedora Core to Raw Hide, from Raw Hide to Fedora Core, or from Raw Hide to Raw Hide! If a stable upgrade path is important to you, please do not use Raw Hide. 

DO NOT USE THESE RELEASES FOR ANY WORK WHERE YOU CARE ABOUT YOUR APPLICATION RUNNING, THE ACCURACY OF YOUR DATA, THE INTEGRITY OF YOUR NETWORK, OR ANY OTHER PURPOSE FOR WHICH A RESPONSIBLE HUMAN WOULD USE A COMPUTER. (But then again what would be the fun of hacking Linux if there wasn't some risk involved. ;-)....) 

In other words, you should run Rawhide only on a secondary computer dedicated to testing because it's far from stable.

Most Rawhide systems are updated daily. The nature of the development process ensures that features will break one day and then start working again a few days later. Menu options will shift around, and from time to time, your system will not boot normally. You may be frustrated, but you'll never be bored when running Rawhide!

There are two ways to install Rawhide: by upgrading from a released version of Fedora Core, or by installing Rawhide directly.

9.4.1.1. Updating Fedora Core to Rawhide

Rawhide is really just a yum repository of development packages. The repository information is distributed with Fedora Core but is disabled.

Edit the file /etc/yum.repos.d/fedora-development.repo to enable the development repository by editing the first enabled line under [development] (highlighted in bold here) to read enabled=1:

# These packages are untested and still under development. This
# repository is used for updates to test releases, and for
# development of new releases.
#
# This repository can see significant daily turnover and major
# functionality changes which cause unexpected problems with other
# development packages. Please use these packages if you want to work
# with the Fedora developers by testing these new development packages.
#
# fedora-test-list@redhat.com is available as a discussion forum for
# testing and troubleshooting for development packages in conjunction
# with new test releases.
#
# fedora-devel-list@redhat.com is available as a discussion forum for
# testing and troubleshooting for development packages in conjunction
# with developing new releases.
#
# More information is available at http://fedoraproject.org/wiki/Testing
#
# Reproducible and reportable issues should be filed at
# http://bugzilla.redhat.com/.
#
# Product: Fedora Core
# Version: devel

[development]
name=Fedora Core - Development
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide
enabled=1
gpgcheck=0

[development-debuginfo]
name=Fedora Core - Development - Debug
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/debug/
mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide-debug
enabled=0
gpgcheck=0

[development-source]
name=Fedora Core - Development - Source
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/
mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide-source
enabled=0
gpgcheck=0

You can optionally enable the development-debuginfo and development-source repositories as well, by setting enabled=1 there as well.

Next, disable all of the other repositories by setting enabled=0 in their respective /etc/yum.repos.d/*.repo files. When you're done, enter these commands to confirm that only the development repositories are enabled:

# cd /etc/yum.repos.d
# grep enabled *.repo | grep 1
fedora-development.repo:enabled=1

If you see other repository files listed, edit those files to disable the additional repositories.

Once you have set up the repositories, use yum to perform an update:

# yum update
Setting up Update Process
Setting up repositories
development               100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for newt-perl to pack into transaction set.
newt-perl-1.08-9.2.2.i386 100% |=========================| 9.2 kB    00:00
---> Package newt-perl.i386 0:1.08-9.2.2 set to be updated
---> Downloading header for words to pack into transaction set.
words-3.0-8.1.1.noarch.rp 100% |=========================| 4.0 kB    00:00
...(Lines snipped)...

Once you have completed the update, reboot the system. Update the system frequently (daily updates are recommended) by rerunning yum update.

9.4.1.2. Installing Rawhide directly

Rawhide can also be directly installed using the Fedora network installation method.

Using a browser, select a nearby Fedora mirror server from the list at http://fedora.redhat.com/Download/mirrors.html and verify that it contains the os/development directory for your architecture (not all mirrors carry Rawhide) and that the development tree is reasonably up-to-date (i.e., that some of the files in the os/Fedora/RPMS directory are timestamped within the last 48 hours).

From the images directory on the mirror, download the boot.iso file and burn it to a CD or DVD, or download the diskboot.img file and copy it to a USB flash drive (see Lab 10.3, "Preparing Alternate Installation Media").

Boot the target system from this disc or USB flash drive and perform a normal HTTP or FTP installation from the mirror that you selected (see Chapter 1).

When installed in this way, the development repository is automatically enabled. Use yum to update the system periodicallyusually on a daily basis:

# yum update
               

It's not uncommon to see the yum update fail due to dependency issues. Usually the issues will be solved by the next Rawhide update, and the yum command will succeed the next day. It's recommended that you run yum manually rather than using the yum daily update service so that you can see the error messages explaining any conflicts.

It's a good idea to periodically reinstall Rawhide from scratch to eliminate the "cruft" that accumulates with frequent unclean updates.


9.4.1.3. Creating a local Rawhide mirror

If you're using Rawhide heavilytesting it on several systems, for exampleand you have a broadband Internet connection, it's worthwhile maintaining your own local development mirror.

The rsync tool provides a convenient method of mirroring the development repository. To use it, select an rsync URI from the mirror list at http://fedora.redhat.com/Download/mirrors.html. Finding the correct directory within the rsync server may take a bit of experimentation because various mirror sites use different directory layouts. Use the rsync command to explore content on the mirror server:

$ rsync -v rsync://ftp.muug.mb.ca/
Welcome to MUUG Online Network Access, courtesy of the
Manitoba Unix User Group.

For any questions, problems, or concerns about this site,
please send e-mail to: <ftp@muug.mb.ca>.

Look under the /pub directory and subdirectories for files to download.

We are now also maintaining a mirror of selected sites (or a subset
thereof), in the /mirror directory.  Look at the README file there
for details on what is being mirrored.

ftp             MUUG Online FTP area (more Gigs than you want to download!)
pub             MUUG Online pub area (more Gigs than you want to download!)
mirror          Mirror of various sites (more Gigs than you want to download!)
redhat          ftp.redhat.com mirror (more Gigs than you want to download!)
redhat-contrib  ftp.redhat.com mirror, contrib directory
redhat-updates  updates.redhat.com mirror
fedora          fedora.redhat.com mirror, top-level directory
fedora-linux-core       fedora.redhat.com mirror, core directory
fedora-linux-core-updates       fedora.redhat.com mirror, updates directory
fedora-linux-core-development   fedora.redhat.com mirror, development directory
fedora-linux-core-test  fedora.redhat.com mirror, (beta) test directory
fedora-linux-extras     fedora.redhat.com mirror, extras directory

In this case, the introductory message indicates that fedora-linux-core-development contains the development tree. Use rsync again to view the contents of that directory:

$ rsync -v rsync://ftp.muug.mb.ca/fedora-linux-core-development/
Welcome to MUUG Online Network Access, courtesy of the
Manitoba Unix User Group.
...(Lines snipped)...

drwxrwsr-x        4096 2006/07/13 18:43:37 .
-rw-r--r--        3101 2003/11/04 12:23:24 README
drwxr-xr-x        4096 2006/07/13 15:21:37 i386
drwxrwsr-x        4096 2006/07/13 15:21:33 source

sent 117 bytes  received 544 bytes  440.67 bytes/sec
total size is 3101  speedup is 4.69

Don't omit the final / on the rsync URI.


The i386 directory is the one we're interested in (it looks like you'd have to use a different mirror for other architectures):

$ rsync -v rsync://ftp.muug.mb.ca/fedora-linux-core-development/i386/
Welcome to MUUG Online Network Access, courtesy of the
Manitoba Unix User Group.
...(Lines snipped)...

drwxr-xr-x        4096 2006/07/13 15:21:37 .
drwxr-xr-x       81920 2006/07/13 15:37:52 debug
drwxrwsr-x        4096 2006/07/12 08:09:49 iso
drwxrwsr-x        4096 2006/07/13 15:49:37 os

sent 123 bytes  received 530 bytes  145.11 bytes/sec
total size is 0  speedup is 0.00

The presence of the debug, iso, and os subdirectories indicates that this is the directory we're looking for.

Armed with that information, create a script, /usr/local/bin/rawhide-rsync, on a stable (non-Rawhide) system with 10 GB or more free storage space:

#!/bin/bash
#
# rawhide-rsync :: script to mirror the Fedora rawhide repo locally
# 

MAILTO= alert                         # Person/alias to receive reports
DIR= /var/www/html/rawhide          # Mirror directory
URI=rsync:// mirrorhost/directory /  # Rsync URI

if tty -s              # If being run interactively, show progress
then
        XCMD='tee /dev/tty'
else
        XCMD='cat'
fi

(
  cd $DIR || exit 2 # Abort if the cd fails (important!)

  rsync --recursive --delete -v $URI . 2>&1

  echo
)|$XCMD|mail $MAILTO -s "Rawhide Rsync Report"

Ensure that httpd and rsync are installed on the target system, and create a directory to hold the development mirror (replace user with the name of the non-root user account that you will be using to run the rawhide-repo script):

# mkdir -p /var/www/html/rawhide/
# chown user /var/www/html/rawhide
# chmod a+rx /var/www/html/rawhide
               

Finally, run the script:

$ rawhide-rsync
Welcome to MUUG Online Network Access, courtesy of the
Manitoba Unix User Group.

For any questions, problems, or concerns about this site,
please send e-mail to: <ftp@muug.mb.ca>.

Look under the /pub directory and subdirectories for files to download.

We are now also maintaining a mirror of selected sites (or a subset
thereof), in the /mirror directory.  Look at the README file there
for details on what is being mirrored.

receiving file list ... done
debug/ElectricFence-debuginfo-2.2.2-20.2.2.i386.rpm
debug/ElectricFence-debuginfo-2.2.2-20.2.i386.rpm
debug/GConf2-debuginfo-2.14.0-2.1.i386.rpm
...(Lines snipped)...
os/repodata/repoview/zsh-html-0-4.2.5-1.2.2.html
os/repodata/repoview/zulu-support.group.html

sent 15296418 bytes received 706808440 bytes 166633.17 bytes/sec
total size is 8112656832 speedup is 11.23

The server and the local rsync program will compare notes and modify the files and directories on the local system to match the server. The first time the script is run, it will transfer the entire repository, and the speedup value will be 1.0. In subsequent runs, the speedup value will indicate the amount of time saved over transferring the entire repository (the preceding example indicates that the transfer took 1/11.23 of the time that a full transfer would take).

There is a high rate of change in the development repository, and from time to time, most or all of the repository will be freshly rebuilt, resulting in very large transfers. If you have a transfer-limited or capped Internet account and run the rawhide-rsync script often, be careful that you don't accidentally exceed your transfer limits.


You can now automate the rsync process by adding a crontab entry. Using the non-root account that will be performing the mirroring, edit the crontab:

$ crontab -e
               

Modify the crontab file to start the rawhide-rsync script at a convenient time:

# Update the local rawhide repo
0 5 * * * /usr/local/bin/rawhide-rsync

The rawhide-rsync reports will be mailed to you on a daily basis.

The rawhide-rsync reports are each over half a megabyte! Consider deleting them after reviewing the end of each report for errors.


To verify that the local mirror is accessible through HTTP, connect with a browser. For example, if the host containing the mirror were bluesky, you'd point your browser to http://bluesky/rawhide, on which you would see the Fedora, iso, and image directories.

9.4.1.4. Using a local Rawhide mirror

To install from a local Rawhide mirror, simply specify that mirror during the installation process.

To use the local mirror for yum updates, edit /etc/yum.repos.d on the Rawhide system, commenting out the mirrorlist entry and adding a baseurl entry pointing to the local mirror:

[development]
name=Fedora Core - Development
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/

# This line is commented by the addition of # at the start
# of the line, which disables the use of repositories on the standard
# mirrorlist
#mirrorlist=http://fedora.redhat.com/Download/mirrors/fedora-core-rawhide

# This line directs yum to the local mirror
baseurl=http://
                     bluesky/fedora/os/

enabled=1
gpgcheck=0

9.4.1.5. Rawhide-related mailing lists

The fedora-devel-list and fedora-test-list discuss Rawhide-related developments and issues, and include automated reports describing changes that have been made to Rawhide packages.

9.4.2. How Does It Work?

Rawhide is a standard yum repository. Package maintainers submit package source to the Fedora build system, which builds the packages periodically and emails a report to the fedora-devel-list and fedora-test-list. The report looks like this:

Date:       Fri, 14 Jul 2006 09:28:29 -0400
From:       buildsys@redhat.com
Subject:    rawhide report: 20060714 changes
To:         fedora-devel-list@redhat.com, fedora-test-list@redhat.com
Message-ID: <200607141328.k6EDSTJ5031177@hs20-bc2-6.build.redhat.com>

New package xorg-x11-drv-amd
  Xorg X11 AMD Geode video driver


Updated Packages:

ImageMagick-6.2.8.0-1.1
-----------------------
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 6.2.8.0-1.1
- rebuild

anaconda-11.1.0.57-1
--------------------
* Thu Jul 13 2006 David Cantrell <dcantrell@redhat.com> - 11.1.0.57-1
- Fix unknown error on shadow file (#196705, clumens)
- Removed inet_calcGateway (clumens)
- Don't guess gateway address in text network UI (#197578, clumens)
- Change iutil.copyFile calls to shutil.copyfile (clumens)
- Removed DRI enable/disable code from xsetup (clumens)
- Removed copyFile, getArch, memInstalled, and rmrf from iutil (clumens)
- Don't pass command as first argument to subprocess calls (clumens)
- Added network debugging mode for readNetConfig(  ) in loader
- Removed "BOOTP" string from loader network config UI
- Added new dialog for network device config in stage2 (katzj)
- Write gateway address to correct struct in manualNetConfig
- Removed IP_STRLEN macro since that's moved to libdhcp
- Link and compile libisys with libdhcp
- Added back 'confignetdevice' and 'pumpnetdevice' in iutil
- Removed isys_calcNetmask and isys_calcNS (clumens)
- Added xkeyboard-config to fix VT switching (katzj)

...(Lines snipped)...

Broken deps for i386
----------------------------------------------------------
  anaconda-runtime - 11.1.0.57-1.i386 requires syslinux
  gnucash - 2.0.0-2.1.i386 requires libgsf-gnome-1.so.114
  mkbootdisk - 1.5.3-2.1.i386 requires syslinux
  perl-suidperl - 4:5.8.8-6.1.i386 requires perl = 4:5.8.8-6
  systemtap - 0.5.8-2.1.i386 requires libdw.so.1(ELFUTILS_0.120)

Broken deps for ia64
----------------------------------------------------------
  gnucash - 2.0.0-2.1.ia64 requires libgsf-gnome-1.so.114(  )(64bit)
  perl-suidperl - 4:5.8.8-6.1.ia64 requires perl = 4:5.8.8-6
  systemtap - 0.5.8-2.1.ia64 requires libdw.so.1(ELFUTILS_0.120)(64bit)

...(Lines snipped)...

The report lists new and removed packages, the latest changelog entries from updated packages, and a list of broken dependencies for each architecture. Developers, package maintainers, and testers review this report daily, discussing the results on the mailing lists.

The build system places the resulting RPMs on a master server, where they are periodically retrieved by the mirror servers and made accessible to the world. Individual systems use the standard yum client and transfer protocols (HTTP or FTP) to access files on the mirror servers.

The rsync tool works by comparing files and directories on the client and server systems and transferring only the files that have changed. This comparison can use combinations of file-modification timestamp, file size, and checksum, depending on the command-line options selected.

9.4.3. What About...

9.4.3.1. ...testing upcoming Fedora Core versions without performing a network installation or update?

The Fedora Core project produces at least three test releases before each Fedora Core release. These test releases are effectively clean snapshots of Rawhide released in ISO form; they can be installed from optical disc using the same method as Fedora Core releases (see Chapter 1 and Lab 10.3, "Preparing Alternate Installation Media").

You will find announcements of test releases on the Fedora web site and the fedora-announce-list. The test releases may be downloaded from test directories in the Fedora mirror servers; the releases are numbered in increments of 0.01 starting with a version number that is 0.1 less than the upcoming Fedora Core version numberso Fedora Core 7 test 1 will be found in the directory test/6.90, and FC7t2 will be in test/6.91.

9.4.3.2. ...using other repositories with the Rawhide development repository?

That's not usually recommended. Repositories such as Livna (and even Fedora Extras) do not update their packages to work with new Fedora Core releases until just before the official release of a new Fedora Core version.

9.4.4. Where Can I Learn More?


Previous Page
Next Page